okpasswd.c 690 B

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