xref: /plan9/sys/src/cmd/auth/lib/getauthkey.c (revision 4727cc49fce24ba84abe29b3bce2810b82f17507)
1219b2ee8SDavid du Colombier #include <u.h>
2219b2ee8SDavid du Colombier #include <libc.h>
39a747e4fSDavid du Colombier #include <authsrv.h>
45979f962SDavid du Colombier #include <bio.h>
59a747e4fSDavid du Colombier #include "authcmdlib.h"
6219b2ee8SDavid du Colombier 
7219b2ee8SDavid du Colombier static int
getkey(char * authkey)8219b2ee8SDavid du Colombier getkey(char *authkey)
9219b2ee8SDavid du Colombier {
109a747e4fSDavid du Colombier 	Nvrsafe safe;
11219b2ee8SDavid du Colombier 
129a747e4fSDavid du Colombier 	if(readnvram(&safe, 0) < 0)
13219b2ee8SDavid du Colombier 		return -1;
149a747e4fSDavid du Colombier 	memmove(authkey, safe.machkey, DESKEYLEN);
159a747e4fSDavid du Colombier 	memset(&safe, 0, sizeof safe);
169a747e4fSDavid du Colombier 	return 0;
17219b2ee8SDavid du Colombier }
18219b2ee8SDavid du Colombier 
19219b2ee8SDavid du Colombier int
getauthkey(char * authkey)20219b2ee8SDavid du Colombier getauthkey(char *authkey)
21219b2ee8SDavid du Colombier {
22219b2ee8SDavid du Colombier 	if(getkey(authkey) == 0)
23219b2ee8SDavid du Colombier 		return 1;
24*4727cc49SDavid du Colombier 	print("can't read NVRAM, please enter machine key\n");
2580ee5cbfSDavid du Colombier 	getpass(authkey, nil, 0, 1);
26219b2ee8SDavid du Colombier 	return 1;
27219b2ee8SDavid du Colombier }
28