Lines Matching refs:fbp

146 void fb64_init(struct fb *fbp)  in fb64_init()  argument
148 memset(fbp,0, sizeof(*fbp)); in fb64_init()
149 fbp->state[0] = fbp->state[1] = FAILED; in fb64_init()
150 fbp->fb_feed[0] = IAC; in fb64_init()
151 fbp->fb_feed[1] = SB; in fb64_init()
152 fbp->fb_feed[2] = TELOPT_ENCRYPT; in fb64_init()
153 fbp->fb_feed[3] = ENCRYPT_IS; in fb64_init()
174 static int fb64_start(struct fb *fbp, int dir, int server) in fb64_start() argument
187 state = fbp->state[dir-1]; in fb64_start()
193 state = fbp->state[dir-1]; in fb64_start()
200 if (!VALIDKEY(fbp->krbdes_key)) { in fb64_start()
201 fbp->need_start = 1; in fb64_start()
213 if (RAND_bytes(fbp->temp_feed, in fb64_start()
214 sizeof(*fbp->temp_feed)) != 1) in fb64_start()
216 DES_set_odd_parity(&fbp->temp_feed); in fb64_start()
217 } while(DES_is_weak_key(&fbp->temp_feed)); in fb64_start()
219 p = fbp->fb_feed + 3; in fb64_start()
224 if ((*p++ = fbp->temp_feed[x]) == IAC) in fb64_start()
229 printsub('>', &fbp->fb_feed[2], p - &fbp->fb_feed[2]); in fb64_start()
230 telnet_net_write(fbp->fb_feed, p - fbp->fb_feed); in fb64_start()
235 return(fbp->state[dir-1] = state); in fb64_start()
256 int fb64_is(unsigned char *data, int cnt, struct fb *fbp) in fb64_is() argument
259 int state = fbp->state[DIR_DECRYPT-1]; in fb64_is()
279 fb64_stream_iv(data, &fbp->streams[DIR_DECRYPT-1]); in fb64_is()
281 p = fbp->fb_feed + 3; in fb64_is()
287 printsub('>', &fbp->fb_feed[2], p - &fbp->fb_feed[2]); in fb64_is()
288 telnet_net_write(fbp->fb_feed, p - fbp->fb_feed); in fb64_is()
290 state = fbp->state[DIR_DECRYPT-1] = IN_PROGRESS; in fb64_is()
306 p = fbp->fb_feed + 3; in fb64_is()
312 printsub('>', &fbp->fb_feed[2], p - &fbp->fb_feed[2]); in fb64_is()
313 telnet_net_write(fbp->fb_feed, p - fbp->fb_feed); in fb64_is()
317 return(fbp->state[DIR_DECRYPT-1] = state); in fb64_is()
338 int fb64_reply(unsigned char *data, int cnt, struct fb *fbp) in fb64_reply() argument
340 int state = fbp->state[DIR_ENCRYPT-1]; in fb64_reply()
347 fb64_stream_iv(fbp->temp_feed, &fbp->streams[DIR_ENCRYPT-1]); in fb64_reply()
355 memset(fbp->temp_feed, 0, sizeof(DES_cblock)); in fb64_reply()
356 fb64_stream_iv(fbp->temp_feed, &fbp->streams[DIR_ENCRYPT-1]); in fb64_reply()
371 return(fbp->state[DIR_ENCRYPT-1] = state); in fb64_reply()
384 static void fb64_session(Session_Key *key, int server, struct fb *fbp) in fb64_session() argument
393 memcpy(fbp->krbdes_key, key->data, sizeof(DES_cblock)); in fb64_session()
395 fb64_stream_key(fbp->krbdes_key, &fbp->streams[DIR_ENCRYPT-1]); in fb64_session()
396 fb64_stream_key(fbp->krbdes_key, &fbp->streams[DIR_DECRYPT-1]); in fb64_session()
400 DES_set_key_checked((DES_cblock *)&fbp->krbdes_key, in fb64_session()
401 &fbp->krbdes_sched); in fb64_session()
406 if (fbp->need_start) { in fb64_session()
407 fbp->need_start = 0; in fb64_session()
408 fb64_start(fbp, DIR_ENCRYPT, server); in fb64_session()
427 int fb64_keyid(int dir, unsigned char *kp, int *lenp, struct fb *fbp) in fb64_keyid() argument
429 int state = fbp->state[dir-1]; in fb64_keyid()
441 return(fbp->state[dir-1] = state); in fb64_keyid()