Blame


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