Lines Matching +full:s +full:- +full:mode
1 /*-
75 int EncryptType(char *type, char *mode);
76 int EncryptStart(char *mode);
77 int EncryptStop(char *mode);
93 #define typemask(x) ((x) > 0 ? 1 << ((x)-1) : 0)
147 while (ep->type && ep->type != type) in findencryption()
149 return(ep->type ? ep : 0); in findencryption()
159 while (ep->type && ep->type != type) in finddecryption()
161 return(ep->type ? ep : 0); in finddecryption()
195 while (ep->type) { in encrypt_init()
197 printf(">>>%s: I will support %s\r\n", in encrypt_init()
198 Name, ENCTYPE_NAME(ep->type)); in encrypt_init()
199 i_support_encrypt |= typemask(ep->type); in encrypt_init()
200 i_support_decrypt |= typemask(ep->type); in encrypt_init()
201 if ((i_wont_support_decrypt & typemask(ep->type)) == 0) in encrypt_init()
202 if ((str_send[str_suplen++] = ep->type) == IAC) in encrypt_init()
204 if (ep->init) in encrypt_init()
205 (*ep->init)(Server); in encrypt_init()
218 while (ep->type) { in encrypt_list_types()
219 printf("\t%s (%d)\r\n", ENCTYPE_NAME(ep->type), ep->type); in encrypt_list_types()
225 EncryptEnable(char *type, char *mode) in EncryptEnable() argument
232 if (EncryptType(type, mode)) in EncryptEnable()
233 return(EncryptStart(mode)); in EncryptEnable()
238 EncryptDisable(char *type, char *mode) in EncryptDisable() argument
248 printf("%s: invalid encryption type\n", type); in EncryptDisable()
250 printf("Ambiguous type '%s'\n", type); in EncryptDisable()
252 if ((mode == 0) || (isprefix(mode, "input") ? 1 : 0)) { in EncryptDisable()
253 if (decrypt_mode == ep->type) in EncryptDisable()
255 i_wont_support_decrypt |= typemask(ep->type); in EncryptDisable()
258 if ((mode == 0) || (isprefix(mode, "output"))) { in EncryptDisable()
259 if (encrypt_mode == ep->type) in EncryptDisable()
261 i_wont_support_encrypt |= typemask(ep->type); in EncryptDisable()
265 printf("%s: invalid encryption mode\n", mode); in EncryptDisable()
271 EncryptType(char *type, char *mode) in EncryptType() argument
281 printf("%s: invalid encryption type\n", type); in EncryptType()
283 printf("Ambiguous type '%s'\n", type); in EncryptType()
285 if ((mode == 0) || isprefix(mode, "input")) { in EncryptType()
286 decrypt_mode = ep->type; in EncryptType()
287 i_wont_support_decrypt &= ~typemask(ep->type); in EncryptType()
290 if ((mode == 0) || isprefix(mode, "output")) { in EncryptType()
291 encrypt_mode = ep->type; in EncryptType()
292 i_wont_support_encrypt &= ~typemask(ep->type); in EncryptType()
296 printf("%s: invalid encryption mode\n", mode); in EncryptType()
302 EncryptStart(char *mode) in EncryptStart() argument
305 if (mode) { in EncryptStart()
306 if (isprefix(mode, "input")) in EncryptStart()
308 if (isprefix(mode, "output")) in EncryptStart()
310 if (isprefix(mode, "help") || isprefix(mode, "?")) { in EncryptStart()
314 printf("%s: invalid encryption mode 'encrypt start ?' for help\n", mode); in EncryptStart()
329 printf("No previous decryption mode, decryption not enabled\r\n"); in EncryptStartInput()
340 printf("No previous encryption mode, encryption not enabled\r\n"); in EncryptStartOutput()
345 EncryptStop(char *mode) in EncryptStop() argument
348 if (mode) { in EncryptStop()
349 if (isprefix(mode, "input")) in EncryptStop()
351 if (isprefix(mode, "output")) in EncryptStop()
353 if (isprefix(mode, "help") || isprefix(mode, "?")) { in EncryptStop()
357 printf("%s: invalid encryption mode 'encrypt stop ?' for help\n", mode); in EncryptStop()
383 printf("Currently encrypting output with %s\r\n", in encrypt_display()
386 printf("Currently decrypting input with %s\r\n", in encrypt_display()
394 printf("Currently encrypting output with %s\r\n", in EncryptStatus()
398 printf("Last encryption mode was %s\r\n", in EncryptStatus()
402 printf("Currently decrypting input with %s\r\n", in EncryptStatus()
406 printf("Last decryption mode was %s\r\n", in EncryptStatus()
424 printsub('>', &str_send[2], str_suplen - 2); in encrypt_send_support()
436 printf("Encryption debugging %s\r\n", in EncryptDebug()
448 printf("Encryption %s verbose\r\n", in EncryptVerbose()
457 printf("Automatic encryption of output is %s\r\n", in EncryptAutoEnc()
466 printf("Automatic decryption of input is %s\r\n", in EncryptAutoDec()
485 while (cnt-- > 0) { in encrypt_support()
488 printf(">>>%s: He is supporting %s (%d)\r\n", in encrypt_support()
502 type = ep->start ? (*ep->start)(DIR_ENCRYPT, Server) : 0; in encrypt_support()
504 printf(">>>%s: (*ep->start)() returned %d\r\n", in encrypt_support()
520 if (--cnt < 0) in encrypt_is()
527 printf(">>>%s: Can't find type %s (%d) for initial negotiation\r\n", in encrypt_is()
534 if (!ep->is) { in encrypt_is()
536 printf(">>>%s: No initial negotiation needed for type %s (%d)\r\n", in encrypt_is()
543 ret = (*ep->is)(data, cnt); in encrypt_is()
545 printf("(*ep->is)(%p, %d) returned %s(%d)\n", data, cnt, in encrypt_is()
564 if (--cnt < 0) in encrypt_reply()
569 printf(">>>%s: Can't find type %s (%d) for initial negotiation\r\n", in encrypt_reply()
576 if (!ep->reply) { in encrypt_reply()
578 printf(">>>%s: No initial negotiation needed for type %s (%d)\r\n", in encrypt_reply()
585 ret = (*ep->reply)(data, cnt); in encrypt_reply()
587 printf("(*ep->reply)(%p, %d) returned %s(%d)\n", in encrypt_reply()
593 printf(">>>%s: encrypt_reply returned %d\n", Name, ret); in encrypt_reply()
615 * decryption scheme. Send a REQUEST-END to in encrypt_start()
618 printf("%s: Warning, Cannot decrypt input stream!!!\r\n", Name); in encrypt_start()
624 decrypt_input = ep->input; in encrypt_start()
626 printf("[ Input is now decrypted with type %s ]\r\n", in encrypt_start()
629 printf(">>>%s: Start to decrypt input with type %s\r\n", in encrypt_start()
632 printf("%s: Warning, Cannot decrypt type %s (%d)!!!\r\n", in encrypt_start()
649 while (ep->type) { in encrypt_session_key()
650 if (ep->session) in encrypt_session_key()
651 (*ep->session)(key, server); in encrypt_session_key()
664 printf(">>>%s: Input is back to clear text\r\n", Name); in encrypt_end()
670 * Called when ENCRYPT REQUEST-END is received.
679 * Called when ENCRYPT REQUEST-START is received. If we receive
713 int dir = kp->dir; in encrypt_keyid()
719 if (!(ep = (*kp->getcrypt)(*kp->modep))) { in encrypt_keyid()
722 kp->keylen = 0; in encrypt_keyid()
727 if (kp->keylen == 0) in encrypt_keyid()
729 kp->keylen = 0; in encrypt_keyid()
730 if (ep->keyid) in encrypt_keyid()
731 (void)(*ep->keyid)(dir, kp->keyid, &kp->keylen); in encrypt_keyid()
733 } else if ((len != kp->keylen) || in encrypt_keyid()
734 (memcmp(keyid, kp->keyid, len) != 0)) { in encrypt_keyid()
738 kp->keylen = len; in encrypt_keyid()
739 memmove(kp->keyid, keyid, len); in encrypt_keyid()
740 if (ep->keyid) in encrypt_keyid()
741 (void)(*ep->keyid)(dir, kp->keyid, &kp->keylen); in encrypt_keyid()
743 if (ep->keyid) in encrypt_keyid()
744 ret = (*ep->keyid)(dir, kp->keyid, &kp->keylen); in encrypt_keyid()
746 encrypt_start_output(*kp->modep); in encrypt_keyid()
750 encrypt_send_keyid(dir, kp->keyid, kp->keylen, 0); in encrypt_keyid()
762 memmove(kp->keyid, keyid, keylen); in encrypt_send_keyid()
763 kp->keylen = keylen; in encrypt_send_keyid()
766 for (strp = &str_keyid[4]; keylen > 0; --keylen) { in encrypt_send_keyid()
772 net_write(str_keyid, strp - str_keyid); in encrypt_send_keyid()
773 printsub('>', &str_keyid[2], strp - str_keyid - 2); in encrypt_send_keyid()
803 printf(">>>%s: Can't encrypt with type %s (%d)\r\n", in encrypt_start_output()
811 if (ep->start) { in encrypt_start_output()
812 i = (*ep->start)(DIR_ENCRYPT, Server); in encrypt_start_output()
814 printf(">>>%s: Encrypt start: %s (%d) %s\r\n", in encrypt_start_output()
831 net_write(str_start, p - str_start); in encrypt_start_output()
833 printsub('>', &str_start[2], p - &str_start[2]); in encrypt_start_output()
835 * If we are already encrypting in some mode, then in encrypt_start_output()
837 * the old mode, mark it all as "clear text" and then in encrypt_start_output()
838 * switch to the new mode. in encrypt_start_output()
840 encrypt_output = ep->output; in encrypt_start_output()
843 printf(">>>%s: Started to encrypt output with type %s\r\n", in encrypt_start_output()
846 printf("[ Output is now encrypted with type %s ]\r\n", in encrypt_start_output()
859 printsub('>', &str_end[2], sizeof(str_end) - 2); in encrypt_send_end()
866 printf(">>>%s: Output is back to clear text\r\n", Name); in encrypt_send_end()
885 net_write(str_start, p - str_start); in encrypt_send_request_start()
886 printsub('>', &str_start[2], p - &str_start[2]); in encrypt_send_request_start()
888 printf(">>>%s: Request input to be encrypted\r\n", Name); in encrypt_send_request_start()
896 printsub('>', &str_end[2], sizeof(str_end) - 2); in encrypt_send_request_end()
899 printf(">>>%s: Request input to be clear text\r\n", Name); in encrypt_send_request_end()
906 printf(">>>%s: in encrypt_wait\r\n", Name); in encrypt_wait()
919 cnt -= 2; in encrypt_gen_printsub()
921 buf[buflen-1] = '\0'; in encrypt_gen_printsub()
922 buf[buflen-2] = '*'; in encrypt_gen_printsub()
923 buflen -= 2;; in encrypt_gen_printsub()
924 for (; cnt > 0; cnt--, data++) { in encrypt_gen_printsub()
926 for (cp = tbuf; *cp && buflen > 0; --buflen) in encrypt_gen_printsub()
940 for (ep = encryptions; ep->type && ep->type != type; ep++) in encrypt_printsub()
943 if (ep->printsub) in encrypt_printsub()
944 (*ep->printsub)(data, cnt, buf, buflen); in encrypt_printsub()