PageRenderTime 16ms CodeModel.GetById 12ms app.highlight 2ms RepoModel.GetById 1ms app.codeStats 0ms

/contrib/ntp/libntp/authusekey.c

https://bitbucket.org/freebsd/freebsd-head/
C | 47 lines | 28 code | 8 blank | 11 comment | 2 complexity | 8dbb899a657f5ab15fe59c5b6f7eb409 MD5 | raw file
 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}