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