1219b2ee8SDavid du Colombier #include <u.h>
2219b2ee8SDavid du Colombier #include <libc.h>
39a747e4fSDavid du Colombier #include <authsrv.h>
45979f962SDavid du Colombier #include <bio.h>
59a747e4fSDavid du Colombier #include "authcmdlib.h"
6219b2ee8SDavid du Colombier
7219b2ee8SDavid du Colombier
8219b2ee8SDavid du Colombier void
usage(void)9219b2ee8SDavid du Colombier usage(void)
10219b2ee8SDavid du Colombier {
11219b2ee8SDavid du Colombier fprint(2, "usage: netkey\n");
12219b2ee8SDavid du Colombier exits("usage");
13219b2ee8SDavid du Colombier }
14219b2ee8SDavid du Colombier
15219b2ee8SDavid du Colombier void
main(int argc,char * argv[])16219b2ee8SDavid du Colombier main(int argc, char *argv[])
17219b2ee8SDavid du Colombier {
18219b2ee8SDavid du Colombier char buf[32], pass[32], key[DESKEYLEN];
19219b2ee8SDavid du Colombier char *s;
20219b2ee8SDavid du Colombier int n;
21219b2ee8SDavid du Colombier
22219b2ee8SDavid du Colombier ARGBEGIN{
23219b2ee8SDavid du Colombier default:
24219b2ee8SDavid du Colombier usage();
25219b2ee8SDavid du Colombier }ARGEND
26219b2ee8SDavid du Colombier if(argc)
27219b2ee8SDavid du Colombier usage();
28219b2ee8SDavid du Colombier
29219b2ee8SDavid du Colombier s = getenv("service");
30219b2ee8SDavid du Colombier if(s && strcmp(s, "cpu") == 0){
31219b2ee8SDavid du Colombier fprint(2, "netkey must not be run on the cpu server\n");
32219b2ee8SDavid du Colombier exits("boofhead");
33219b2ee8SDavid du Colombier }
34219b2ee8SDavid du Colombier
359a747e4fSDavid du Colombier readln("Password: ", pass, sizeof pass, 1);
36219b2ee8SDavid du Colombier passtokey(key, pass);
37219b2ee8SDavid du Colombier
38219b2ee8SDavid du Colombier for(;;){
39219b2ee8SDavid du Colombier print("challenge: ");
40219b2ee8SDavid du Colombier n = read(0, buf, sizeof buf - 1);
41219b2ee8SDavid du Colombier if(n <= 0)
42219b2ee8SDavid du Colombier exits(0);
43219b2ee8SDavid du Colombier buf[n] = '\0';
44219b2ee8SDavid du Colombier n = strtol(buf, 0, 10);
45*f54edc78SDavid du Colombier snprint(buf, sizeof buf, "%d", n);
46219b2ee8SDavid du Colombier netcrypt(key, buf);
47219b2ee8SDavid du Colombier print("response: %s\n", buf);
48219b2ee8SDavid du Colombier }
49219b2ee8SDavid du Colombier }
50