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 21int 22authusekey( 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