okpasswd.c 707 B

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. #include <u.h>
  2. #include <libc.h>
  3. #include <authsrv.h>
  4. #include <bio.h>
  5. #include "authcmdlib.h"
  6. char *trivial[] = {
  7. "login",
  8. "guest",
  9. "change me",
  10. "passwd",
  11. "no passwd",
  12. "anonymous",
  13. 0
  14. };
  15. char*
  16. okpasswd(char *p)
  17. {
  18. char passwd[ANAMELEN];
  19. char back[ANAMELEN];
  20. int i, n;
  21. strncpy(passwd, p, sizeof passwd - 1);
  22. passwd[sizeof passwd - 1] = '\0';
  23. n = strlen(passwd);
  24. while(passwd[n - 1] == ' ')
  25. n--;
  26. passwd[n] = '\0';
  27. for(i = 0; i < n; i++)
  28. back[i] = passwd[n - 1 - i];
  29. back[n] = '\0';
  30. if(n < 8)
  31. return "password must be at least 8 chars";
  32. for(i = 0; trivial[i]; i++)
  33. if(strcmp(passwd, trivial[i]) == 0
  34. || strcmp(back, trivial[i]) == 0)
  35. return "trivial password";
  36. return 0;
  37. }