Re: [openssl.org #2837] BN_nist_mod_384 inconsistency when compiling with the Windows DDK

2012-06-26 Thread Andy Polyakov via RT
For legacy and compatibility reasons I have to use an older version of the Windows DDK to compile certain libraries, including OpenSSL. I am compiling it with version 3790.1830. In other words compiler version 13.x. I spent the morning tracing a crash in BN_nist_mod_384 which I believe is

Re: [openssl.org #2837] BN_nist_mod_384 inconsistency when compiling with the Windows DDK

2012-06-26 Thread Paul Belanger via RT
You make it sound like the fact that c_d is a stack array is an excuse for doing wrong:-) I mean it's clearly a compiler bug and reasoning as above does not make it understandable/justifiable/excusable. Formally it's not OpenSSL bug and shouldn't be reported as one... I thought I'd made it

Re: [openssl.org #2837] BN_nist_mod_384 inconsistency when compiling with the Windows DDK

2012-06-26 Thread Andy Polyakov via RT
You make it sound like the fact that c_d is a stack array is an excuse for doing wrong:-) I mean it's clearly a compiler bug and reasoning as above does not make it understandable/justifiable/excusable. Formally it's not OpenSSL bug and shouldn't be reported as one... I thought I'd made

Re: [openssl.org #2837] BN_nist_mod_384 inconsistency when compiling with the Windows DDK

2012-06-26 Thread Paul Belanger via RT
It works. The new assembler is: LEA eax,[c_d] MOV DWORD PTR [res],eax MOV ecx,DWORD PTR [mask] NOT ecx AND ecx,DWORD PTR [res] MOV edx,DWORD PTR [r_d] AND edx,DWORD PTR [mask] OR ecx,edx MOV DWORD PTR [res],ecx The addition of the LEA instruction gets the pointer value from c_d instead of its

Re: [openssl.org #2837] BN_nist_mod_384 inconsistency when compiling with the Windows DDK

2012-06-26 Thread Andy Polyakov via RT
It works. In all subroutines? Could you double-check? The reason for being overparticular is that when it comes to compiles bugs, one can expect *anything*. Note that you forgot to add it to the BN_nist_mod_521() function, probably because the variable is named t_d in that function instead of

[openssl.org #2837] BN_nist_mod_384 inconsistency when compiling with the Windows DDK

2012-06-25 Thread Paul Belanger via RT
For legacy and compatibility reasons I have to use an older version of the Windows DDK to compile certain libraries, including OpenSSL. I am compiling it with version 3790.1830. My main project (the one that links against OpenSSL) is compiled in Visual Studio 2010. I spent the morning tracing a