netkey.c 741 B

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