Don't worry 'bout it too much. Could you please create that as a .diff file and attach it to an email to [email protected]? The rt system creates a case that can be tracked.
-Kyle H On Mon, Jul 27, 2009 at 3:26 PM, Ben Nason<[email protected]> wrote: > Hi, > > I am new to the list, so apologies if I fail to follow any of the ground > rules. > > I just ran into a bug where SHA384/512 were not being calculated > correctly on the Cell processor. I tracked it down to the definition of > the ROTR macro, which is assuming a 64 bit long, but in this case the > compiler is using the LP32 model so long is 32 bits and the values were > being truncated. Here is the patch I did that fixes the problem: > > --- sha512.c 2009-07-27 15:04:52.546574000 -0700 > +++ sha512.c 2009-07-27 15:08:07.373452100 -0700 > @@ -344,7 +344,7 @@ > ((SHA_LONG64)hi)<<32|lo; }) > # endif > # elif (defined(_ARCH_PPC) && defined(__64BIT__)) || > defined(_ARCH_PPC64) > -# define ROTR(a,n) ({ unsigned long ret; \ > +# define ROTR(a,n) ({ SHA_LONG64 ret; \ > asm ("rotrdi %0,%1,%2" \ > : "=r"(ret) \ > : "r"(a),"K"(n)); ret; }) > > If it is desirable to not use SHA_LONG64 in the macro, another option > would be to test for the __LP32__ preprocessor symbol and use "unsigned > long long" when that is defined. > > I am using OpenSSL 0.9.8k, but looking at the latest snapshot it seems > this problem has not been fixed yet. > > Questions or feedback welcome. > > Thanks, > Benbuck Nason > ______________________________________________________________________ > OpenSSL Project http://www.openssl.org > Development Mailing List [email protected] > Automated List Manager [email protected] > ______________________________________________________________________ OpenSSL Project http://www.openssl.org Development Mailing List [email protected] Automated List Manager [email protected]
