Lines Matching refs:ad

157 	struct ad_private *ad;
168 ad = ALLOC(struct ad_private);
169 if (ad == NULL) {
173 ad->ad_fullname = ad->ad_servername = NULL; /* Sanity reasons */
174 ad->ad_timehost = NULL;
175 ad->ad_netid = NULL;
176 ad->ad_uaddr = NULL;
177 ad->ad_nis_srvr = NULL;
178 ad->ad_timediff.tv_sec = 0;
179 ad->ad_timediff.tv_usec = 0;
180 memcpy(ad->ad_pkey, pkey->n_bytes, pkey->n_len);
183 ad->ad_fullnamelen = RNDUP((u_int) strlen(namebuf));
184 ad->ad_fullname = (char *)mem_alloc(ad->ad_fullnamelen + 1);
185 ad->ad_servernamelen = strlen(servername);
186 ad->ad_servername = (char *)mem_alloc(ad->ad_servernamelen + 1);
188 if (ad->ad_fullname == NULL || ad->ad_servername == NULL) {
193 ad->ad_timehost = (char *)mem_alloc(strlen(timehost) + 1);
194 if (ad->ad_timehost == NULL) {
198 memcpy(ad->ad_timehost, timehost, strlen(timehost) + 1);
199 ad->ad_dosync = TRUE;
201 ad->ad_nis_srvr = srvr; /* transient */
202 ad->ad_dosync = TRUE;
204 ad->ad_dosync = FALSE;
206 memcpy(ad->ad_fullname, namebuf, ad->ad_fullnamelen + 1);
207 memcpy(ad->ad_servername, servername, ad->ad_servernamelen + 1);
208 ad->ad_window = window;
225 auth->ah_private = (caddr_t)ad;
230 ad->ad_nis_srvr = NULL; /* not needed any longer */
236 if (ad) {
237 if (ad->ad_fullname)
238 FREE(ad->ad_fullname, ad->ad_fullnamelen + 1);
239 if (ad->ad_servername)
240 FREE(ad->ad_servername, ad->ad_servernamelen + 1);
241 if (ad->ad_timehost)
242 FREE(ad->ad_timehost, strlen(ad->ad_timehost) + 1);
243 if (ad->ad_netid)
244 FREE(ad->ad_netid, strlen(ad->ad_netid) + 1);
245 if (ad->ad_uaddr)
246 FREE(ad->ad_uaddr, strlen(ad->ad_uaddr) + 1);
247 FREE(ad, sizeof (struct ad_private));
275 struct ad_private *ad = AUTH_PRIVATE(auth);
276 struct authdes_cred *cred = &ad->ad_cred;
277 struct authdes_verf *verf = &ad->ad_verf;
288 (void)gettimeofday(&ad->ad_timestamp, NULL);
289 ad->ad_timestamp.tv_sec += ad->ad_timediff.tv_sec;
290 ad->ad_timestamp.tv_usec += ad->ad_timediff.tv_usec;
291 while (ad->ad_timestamp.tv_usec >= USEC_PER_SEC) {
292 ad->ad_timestamp.tv_usec -= USEC_PER_SEC;
293 ad->ad_timestamp.tv_sec++;
301 IXDR_PUT_INT32(ixdr, ad->ad_timestamp.tv_sec);
302 IXDR_PUT_INT32(ixdr, ad->ad_timestamp.tv_usec);
303 if (ad->ad_cred.adc_namekind == ADN_FULLNAME) {
304 IXDR_PUT_U_INT32(ixdr, ad->ad_window);
305 IXDR_PUT_U_INT32(ixdr, ad->ad_window - 1);
319 ad->ad_verf.adv_xtimestamp = cryptbuf[0];
320 if (ad->ad_cred.adc_namekind == ADN_FULLNAME) {
321 ad->ad_cred.adc_fullname.window = cryptbuf[1].key.high;
322 ad->ad_verf.adv_winverf = cryptbuf[1].key.low;
324 ad->ad_cred.adc_nickname = ad->ad_nickname;
325 ad->ad_verf.adv_winverf = 0;
332 if (ad->ad_cred.adc_namekind == ADN_FULLNAME) {
333 len = ((1 + 1 + 2 + 1)*BYTES_PER_XDR_UNIT + ad->ad_fullnamelen);
367 struct ad_private *ad = AUTH_PRIVATE(auth);
404 if (bcmp((char *)&ad->ad_timestamp, (char *)&verf.adv_timestamp,
413 ad->ad_nickname = verf.adv_nickname;
414 ad->ad_cred.adc_namekind = ADN_NICKNAME;
426 struct ad_private *ad = AUTH_PRIVATE(auth);
427 struct authdes_cred *cred = &ad->ad_cred;
431 if (ad->ad_dosync) {
432 ok = __rpc_get_time_offset(&ad->ad_timediff, ad->ad_nis_srvr,
433 ad->ad_timehost, &(ad->ad_uaddr),
434 &(ad->ad_netid));
439 ad->ad_dosync = 0;
444 ad->ad_xkey = auth->ah_key;
445 pkey.n_bytes = (char *)(ad->ad_pkey);
446 pkey.n_len = (u_int)strlen((char *)ad->ad_pkey) + 1;
447 if (key_encryptsession_pk(ad->ad_servername, &pkey, &ad->ad_xkey) < 0) {
452 cred->adc_fullname.key = ad->ad_xkey;
454 cred->adc_fullname.name = ad->ad_fullname;
466 struct ad_private *ad = AUTH_PRIVATE(auth);
468 FREE(ad->ad_fullname, ad->ad_fullnamelen + 1);
469 FREE(ad->ad_servername, ad->ad_servernamelen + 1);
470 if (ad->ad_timehost)
471 FREE(ad->ad_timehost, strlen(ad->ad_timehost) + 1);
472 if (ad->ad_netid)
473 FREE(ad->ad_netid, strlen(ad->ad_netid) + 1);
474 if (ad->ad_uaddr)
475 FREE(ad->ad_uaddr, strlen(ad->ad_uaddr) + 1);
476 FREE(ad, sizeof (struct ad_private));