1 #include <u.h> 2 #include <libc.h> 3 #include <authsrv.h> 4 #include <bio.h> 5 #include "authcmdlib.h" 6 7 8 void 9 usage(void) 10 { 11 fprint(2, "usage: netkey\n"); 12 exits("usage"); 13 } 14 15 void 16 main(int argc, char *argv[]) 17 { 18 char buf[32], pass[32], key[DESKEYLEN]; 19 char *s; 20 int n; 21 22 ARGBEGIN{ 23 default: 24 usage(); 25 }ARGEND 26 if(argc) 27 usage(); 28 29 s = getenv("service"); 30 if(s && strcmp(s, "cpu") == 0){ 31 fprint(2, "netkey must not be run on the cpu server\n"); 32 exits("boofhead"); 33 } 34 35 readln("Password: ", pass, sizeof pass, 1); 36 passtokey(key, pass); 37 38 for(;;){ 39 print("challenge: "); 40 n = read(0, buf, sizeof buf - 1); 41 if(n <= 0) 42 exits(0); 43 buf[n] = '\0'; 44 n = strtol(buf, 0, 10); 45 snprint(buf, sizeof buf, "%d", n); 46 netcrypt(key, buf); 47 print("response: %s\n", buf); 48 } 49 } 50