Blob


1 #include <u.h>
2 #include <libc.h>
3 #include <libsec.h>
4 #include <authsrv.h>
6 void
7 usage(void)
8 {
9 fprint(2, "usage: netkey\n");
10 exits("usage");
11 }
13 void
14 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 }ARGEND
24 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 }