lists.openwall.net | lists / announce owl-users owl-dev john-users john-dev passwdqc-users yescrypt popa3d-users / oss-security kernel-hardening musl sabotage tlsify passwords / crypt-dev xvendor / Bugtraq Full-Disclosure linux-kernel linux-netdev linux-ext4 linux-hardening linux-cve-announce PHC | |
Open Source and information security mailing list archives
| ||
|
Date: Mon, 10 Nov 2014 14:02:05 -0800 From: epixoip <epixoip@...dshell.nl> To: discussions@...sword-hashing.net Subject: Re: [PHC] Another PHC candidates "mechanical" tests On 11/10/2014 11:09 AM, Milan Broz wrote: > On 11/10/2014 07:15 PM, epixoip wrote: >> Just for clarification, there is no requirement for PHS() to return raw >> output, and you created the bug & subsequent buffer overflow in PHS() >> with a half-baked patch. > Well, that's why I am tracking all my changes separately. The patch is here > https://github.com/mbroz/PHCtest/blob/master/hash_libs/pufferfish/patches/fix-raw-output.patch > > What exactly is half-baked? > > To the overflow: just send small buffer of outlen size and see what strlen() will do in memmove > (without the patch). Sorry, the way it is worded on the website made it sound to me like you changed pufferfish() to raw output in PHS() and THEN receiving a buffer overflow due to calling strlen() on the raw output. I see now what you mean about strlen(hash) > outlen due to the prepended setting string, that would certainly cause a buffer overflow if the output buffer is only outlen bytes. >> Furthermore, PHS() is merely the wrapper for the sake of this contest. >> The 'official' interface for the reference implemenation is pufferfish(). > Shrug... Yes. I can just say that PHS() simply produces non-random output > (because ASCII has high bits set to zero) and crashes because it is not > respecting outlen parameter and move along. > > But I think it would be pity to remove nice algorithm from testing just because > of this small mistake... (And the first sentence in my tests says that > I am testing PHS() function only). I'm not saying that, I'm saying don't judge the quality of the algorithm by the quality of PHS() since PHS() is only used in this contest, and not anywhere else.
Powered by blists - more mailing lists