At 07:34 AM 5/27/2004, Geoffrey Young wrote: >> I beg your pardon, gentlemen. Would you be so kind to decide first >> between yourself whether this is a bug or not? According to Ryan it's >> not a bug, according to your comment above, Bill, it is. > >while I've been up most of the night, so I might not be thinking clearly, it >seems as though if someone were to move a unix-generated crypt .htpasswd >file to win32,
Whoa - nobody every promised file compatibility, only functionality on the same machine. That is not a problem. In apache 2.0 we went to md5 hashes for *exactly* this reason, across all platforms, by default. Even Un*x'es don't have consistent implementations of crypt()!!! Some are 16 and some are 32 bit seeds, etc. The @bug should not say "Win32 yadda yadda" - but it should spell out that different platforms will support different password storage formats. >mod_auth's call to apr_password_validate would end up simply >comparing the two values for equality. That's wrong, IIRC we test md5's/sha1 first (???). If you want to drop support for plaintext storage in APR 1.0 - I'd strongly back that move. Bill > meaning that passing the actual hash >as cleartext would succeed. at least that's what I see when I boil down the >logic. > >APU_DECLARE(apr_status_t) apr_password_validate(const char *passwd, > const char *hash) >{ >... > else { > /* > * It's not our algorithm, so feed it to crypt() if possible. > */ >#if defined(WIN32) || defined(BEOS) || defined(NETWARE) > apr_cpystrn(sample, passwd, sizeof(sample) - 1); >... > return (strcmp(sample, hash) == 0) ? APR_SUCCESS : APR_EMISMATCH; >} > >--Geoff