Blob
1 #include <u.h>2 #include <libc.h>3 #include <libsec.h>4 #include <authsrv.h>6 void7 usage(void)8 {9 fprint(2, "usage: netkey\n");10 exits("usage");11 }13 void14 main(int argc, char *argv[])15 {16 char *chal, *pass, buf[32], key[DESKEYLEN];17 char *s;18 int n;20 ARGBEGIN{21 default:22 usage();23 }ARGEND24 if(argc)25 usage();27 s = getenv("service");28 if(s && strcmp(s, "cpu") == 0){29 fprint(2, "netkey must not be run on the cpu server\n");30 exits("boofhead");31 }33 pass = readcons("password", nil, 1);34 if(pass == nil)35 sysfatal("reading password: %r");36 passtokey(key, pass);38 for(;;){39 chal = readcons("challenge", nil, 0);40 if(chal == nil || *chal == 0)41 exits(nil);42 n = strtol(chal, 0, 10);43 sprint(buf, "%d", n);44 netcrypt(key, buf);45 print("response: %s\n", buf);46 }47 }