1 /* 2 * authusekey - decode a key from ascii and use it 3 */ 4 #include <stdio.h> 5 #include <ctype.h> 6 7 #include "ntp_types.h" 8 #include "ntp_string.h" 9 #include "ntp_stdlib.h" 10 11 /* 12 * Types of ascii representations for keys. "Standard" means a 64 bit 13 * hex number in NBS format, i.e. with the low order bit of each byte 14 * a parity bit. "NTP" means a 64 bit key in NTP format, with the 15 * high order bit of each byte a parity bit. "Ascii" means a 1-to-8 16 * character string whose ascii representation is used as the key. 17 */ 18 19 #define KEY_TYPE_MD5 4 20 21 int 22 authusekey( 23 keyid_t keyno, 24 int keytype, 25 const u_char *str 26 ) 27 { 28 const u_char *cp; 29 int len; 30 31 cp = str; 32 len = strlen((const char *)cp); 33 if (len == 0) 34 return 0; 35 36 switch(keytype) { 37 case KEY_TYPE_MD5: 38 MD5auth_setkey(keyno, str, (int)strlen((const char *)str)); 39 break; 40 41 default: 42 /* Oh, well */ 43 return 0; 44 } 45 46 return 1; 47 } 48