patch-Wnn_etc_pwd_c 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. --- Wnn/etc/pwd.c.orig
  2. +++ Wnn/etc/pwd.c
  3. @@ -57,36 +57,20 @@
  4. #include "jslib.h"
  5. #include "wnn_os.h"
  6. #endif
  7. +#include <unistd.h>
  8. +#include <string.h>
  9. extern char *crypt();
  10. +#define salt "$2a$08$bonjourcommentcavatoie"
  11. +
  12. #ifdef JS
  13. static
  14. #endif
  15. void
  16. -new_pwd(src, encd)
  17. -char *src, *encd;
  18. +new_pwd(char *src, char *encd)
  19. {
  20. - int i, x,c;
  21. - char xx[2];
  22. - char *cr;
  23. -
  24. - if(encd == NULL)encd = src;
  25. - if(strcmp(src, "") == 0){ bzero(encd, WNN_PASSWD_LEN);return;}
  26. - x = time(NULL);
  27. - xx[0] = x & 0x3f;
  28. - xx[1] = (x & 0x3f00) >> 8;
  29. - for (i = 0; i < 2; i++) {
  30. - c = xx[i] + '.';
  31. - if (c > '9')
  32. - c += 7;
  33. - if (c > 'Z')
  34. - c += 6;
  35. - xx[i] = c;
  36. - }
  37. - cr = crypt(src, xx);
  38. - bzero(encd, WNN_PASSWD_LEN);
  39. - strncpy(encd, cr, WNN_PASSWD_LEN);
  40. + crypt_newhash(src, NULL, encd, WNN_PASSWD_LEN);
  41. }
  42. #ifdef JS
  43. @@ -97,5 +81,5 @@ check_pwd(src, encd)
  44. char *src, *encd;
  45. {
  46. if(strcmp(encd, "") == 0) return(1); /* No passwd */
  47. - return(!strncmp(encd, crypt(src, encd),WNN_PASSWD_LEN));
  48. + return crypt_checkpass(src, encd) == 0;
  49. }