Thanks for the sample program. I've checked in the fix to sha.cpp.
The cause of the bug, if anyone is curious, was that I assumed a certain
pointer would be word-aligned, and used its least significant bit to store
whether or not the CPU supports SSE2. It turns out that I forgot that
pointer isn't necessarily word-aligned, so when that happens, the code would
incorrectly use the SSE2 code path. And for some reason, the SSE2
instructions didn't cause an exception on non-SSE2 CPUs.
--------------------------------------------------
From: "midnightmagic" <
fravidia@...>
Sent: Friday, July 03, 2009 1:55 PM
To: "Crypto++ Users" <
cryptopp-users@...>
Subject: Re: wrong SHA-256 result with optimized assembly on i386
([pycryptopp] #24: SHA256 failure on NetBSD with multiple segments)
>
>
> Oh, Hey Zooko. :-)
>
> I just posted my sample program in here too. I guess I should've
> included more information including a link to the pycryptopp/tahoe
> trac tickets.
>
> >
>
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the "Crypto++ Users" Google Group.
To unsubscribe, send an email to
cryptopp-users-unsubscribe@....
More information about Crypto++ and this group is available at
http://www.cryptopp.com.
-~----------~----~----~----~------~----~------~--~---