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]

Reply via email to