xref: /plan9/sys/src/cmd/auth/lib/getauthkey.c (revision 9a747e4fd48b9f4522c70c07e8f882a15030f964)
1219b2ee8SDavid du Colombier #include <u.h>
2219b2ee8SDavid du Colombier #include <libc.h>
3*9a747e4fSDavid du Colombier #include <authsrv.h>
4*9a747e4fSDavid du Colombier #include "authcmdlib.h"
5219b2ee8SDavid du Colombier 
6219b2ee8SDavid du Colombier static int
7219b2ee8SDavid du Colombier getkey(char *authkey)
8219b2ee8SDavid du Colombier {
9*9a747e4fSDavid du Colombier 	Nvrsafe safe;
10219b2ee8SDavid du Colombier 
11*9a747e4fSDavid du Colombier 	if(readnvram(&safe, 0) < 0)
12219b2ee8SDavid du Colombier 		return -1;
13*9a747e4fSDavid du Colombier 	memmove(authkey, safe.machkey, DESKEYLEN);
14*9a747e4fSDavid du Colombier 	memset(&safe, 0, sizeof safe);
15*9a747e4fSDavid du Colombier 	return 0;
16219b2ee8SDavid du Colombier }
17219b2ee8SDavid du Colombier 
18219b2ee8SDavid du Colombier int
19219b2ee8SDavid du Colombier getauthkey(char *authkey)
20219b2ee8SDavid du Colombier {
21219b2ee8SDavid du Colombier 	if(getkey(authkey) == 0)
22219b2ee8SDavid du Colombier 		return 1;
23219b2ee8SDavid du Colombier 	print("can't read /dev/key, please enter machine key\n");
2480ee5cbfSDavid du Colombier 	getpass(authkey, nil, 0, 1);
25219b2ee8SDavid du Colombier 	return 1;
26219b2ee8SDavid du Colombier }
27