2 ** Copyright 2001 Double Precision, Inc.
3 ** See COPYING for distribution information.
19 #if TIME_WITH_SYS_TIME
45 #if NEED_CRYPT_PROTOTYPE
46 extern char *crypt(const char *, const char *);
50 char userdb_hex64
[]="./0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
53 void userdb_get_random(char *buf
, unsigned n
)
55 int f
=open(RANDOM
, O_RDONLY
);
79 char *userdb_mkmd5pw(const char *buf
)
86 userdb_get_random(salt
, 8);
88 salt
[i
] = userdb_hex64
[salt
[i
] & 63 ];
103 #if HAVE_GETTIMEOFDAY
106 gettimeofday(&s
.tv
, &tz
);
112 md5_digest(&s
, sizeof(s
), d
);
114 salt
[i
]=userdb_hex64
[ ((unsigned char *)d
)[i
] ];
117 return (md5_crypt(buf
, salt
));