1*219b2ee8SDavid du Colombier #include <u.h> 2*219b2ee8SDavid du Colombier #include <libc.h> 3*219b2ee8SDavid du Colombier #include <auth.h> 4*219b2ee8SDavid du Colombier #include "authsrv.h" 5*219b2ee8SDavid du Colombier 6*219b2ee8SDavid du Colombier static int 7*219b2ee8SDavid du Colombier getkey(char *authkey) 8*219b2ee8SDavid du Colombier { 9*219b2ee8SDavid du Colombier int fd; 10*219b2ee8SDavid du Colombier int n; 11*219b2ee8SDavid du Colombier 12*219b2ee8SDavid du Colombier fd = open("/dev/key", OREAD); 13*219b2ee8SDavid du Colombier if(fd < 0) 14*219b2ee8SDavid du Colombier return -1; 15*219b2ee8SDavid du Colombier n = read(fd, authkey, DESKEYLEN); 16*219b2ee8SDavid du Colombier close(fd); 17*219b2ee8SDavid du Colombier return n != DESKEYLEN ? -1 : 0; 18*219b2ee8SDavid du Colombier } 19*219b2ee8SDavid du Colombier 20*219b2ee8SDavid du Colombier int 21*219b2ee8SDavid du Colombier getauthkey(char *authkey) 22*219b2ee8SDavid du Colombier { 23*219b2ee8SDavid du Colombier if(getkey(authkey) == 0) 24*219b2ee8SDavid du Colombier return 1; 25*219b2ee8SDavid du Colombier print("can't read /dev/key, please enter machine key\n"); 26*219b2ee8SDavid du Colombier getpass(authkey, 0); 27*219b2ee8SDavid du Colombier return 1; 28*219b2ee8SDavid du Colombier } 29