The problem appears to occur on older hardware that does not have the AES-NI instruction set, at least for me.
I was able to trigger similar failures on machines with AES-NI by defining CRYPTOPP_DISABLE_AESNI, forcing the code to take the code path that would be taken on machines without AES-NI. Disabling optimization (/Od) allowed the tests to pass. Daniel On Sat, Apr 28, 2018 at 6:35 PM, Jeffrey Walton <[email protected]> wrote: > > > On Thursday, April 26, 2018 at 1:03:41 PM UTC-4, [email protected] > wrote: >> >> Hello, >> >> I have recently updated one of my projects to Visual Studio 2017 and the >> v141 toolset. After the update, Crypto++ no longer correctly encrypted or >> decrypted my data. To determine whether this was an error in my code or >> the library itself, I downloaded a fresh copy of the source for crypto++ 7 >> and built cryptest. Cryptest also fails under Visual Studio v141. It >> appears that 12 of the 36 tests in the Rijndael (AES) validation suite are >> failing. But, if I change the project settings and disable optimization >> (/Od instead of /O2), all the tests appear to pass. Also, if I disable ASM >> and leave optimizations turned on (/O2), the tests also pass... >> > > This is unusual. I don't have the full-blown VS2017 IDE, but I do have the > VS2017 Build Tools v15.6.7 (https://www.visualstudio.com/ > downloads/#build-tools-for-visual-studio-2017). Following the > instructions at https://www.cryptopp.com/wiki/MSBuild_(Command_Line) I > cannot reproduce the failure. > > Here are the steps I used: > > 1. Open VS2017 x64 Developer Prompt > 2. cd to cryptopp > 3. msbuild /p:Configuration=Release;Platform=x64 cryptlib.vcxproj > 4. msbuild /p:Configuration=Release;Platform=x64 cryptest.vcxproj > 5. msbuild /p:Configuration=Release;Platform=x64 /t:CopyCryptestToRoot > cryptest.vcxproj > > Then: > > c:\Users\Test\Desktop\cryptopp>.\cryptest.exe v > Using seed: 1524960895 > > Testing Settings... > > passed: Your machine is little endian. > passed: Aligned data access (no CRYPTOPP_ALLOW_UNALIGNED_DATA_ACCESS). > passed: sizeof(byte) == 1 > passed: sizeof(word16) == 2 > passed: sizeof(word32) == 4 > passed: sizeof(word64) == 8 > passed: sizeof(hword) == 4, sizeof(word) == 8 > passed: cacheLineSize == 64 > ... > > All tests passed! > > Seed used was 1524960895 > Test started at Sat Apr 28 20:14:55 2018 > Test ended at Sat Apr 28 20:15:02 2018 > > The Core i5-750 looks a tad bit unusual: https://ark.intel.com/ > products/42915/Intel-Core-i5-750-Processor-8M-Cache-2_66-GHz . Based on > the ARK specification, the CPU provides SSE4.2, so it should look like a > run-of-the-mill Core Solo or Core2 Duo. > > I don't know how to test the 14.1 toolset. Do you know how to do it using > msbuild? > > It sounds like there's something different but it is not obvious (to me) > at the moment. > > Jeff > > -- > You received this message because you are subscribed to "Crypto++ Users". > More information about Crypto++ and this group is available at > http://www.cryptopp.com and http://groups.google.com/ > forum/#!forum/cryptopp-users. > --- > You received this message because you are subscribed to the Google Groups > "Crypto++ Users" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to [email protected]. > For more options, visit https://groups.google.com/d/optout. > -- You received this message because you are subscribed to "Crypto++ Users". More information about Crypto++ and this group is available at http://www.cryptopp.com and http://groups.google.com/forum/#!forum/cryptopp-users. --- You received this message because you are subscribed to the Google Groups "Crypto++ Users" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. For more options, visit https://groups.google.com/d/optout.
