FWIW, I have two more test results from Windows machines with Intel CPUs:

   - i7 8750h
   - i9 10980KK
   
Both are AVX-capable and produce the encrypted sha 
6FBEE484EE64A2AB02235DDF29CA0B61EE3B811D227C2729836D3BD6161C9B18.


On Friday, September 17, 2021 at 11:31:48 AM UTC-7 austin clifton wrote:

> Hey Jeff, thanks for the fast response!
>
> Yes, the encrypted sha from your AMD CPUs matches what I get on my Ryzen 7 
> 3700X.
>
> The encrypted sha from the i7 is 
> 8F16077454F8477594CAD4304126B0A6F30C8C4D2536E2441FFFD320656E1DF1. That's 
> also the sha I get if I disable AVX on my Ryzen when compiling cryptopp.
>
> I'm not sure which sha is "correct" but we are seeing the same behavior 
> across the AMD CPUs. Would it make sense to disable assembly altogether to 
> get a reference encrypted sha256?
>
> We are seeing the same behavior from MSVC and GCC compilers. I can try 
> master with GCC here too but sounds like that fix is unrelated?
>
> I'll try to glean more useful data from logs I have here. We distribute 
> encrypted assets to lots of machines (all running Windows) but I have to 
> dig around some.
>
> On Friday, September 17, 2021 at 12:23:55 AM UTC-7 Jeffrey Walton wrote:
>
>> On Thu, Sep 16, 2021 at 8:42 PM austin clifton <austin....@otoy.com> 
>> wrote: 
>> > 
>> > I have an issue which I believe may be a bug. I followed the 
>> instructions from the "Bug Report" page on the cryptopp wiki and all tests 
>> in cryptest.exe are passing, so figured I should post here first and make 
>> sure it isn't a build related issue. 
>> > 
>> > I built cryptopp 8.5.0 as a static library, x64 multi-threaded debug 
>> (\MTd) using Visual Studio 2019 v16.10.0, on Windows 10 Pro v10.0.19043, 
>> using the .sln file provided with the cryptopp source code. 
>> > 
>> > I used two different machines for this test. One is the machine I built 
>> the cryptopp library with. Both are running the same version of Windows 10. 
>> One machine has a Ryzen 3700X, the other has an i7-990X. The Ryzen supports 
>> AVX, the i7 does not. 
>> > 
>> > I am VERY rarely finding that files encrypted with the chacha cipher by 
>> these two machines have differing sha256 hashes. If I do a hex diff against 
>> the files, there is a single flipped bit at 0x1EBB4 (0xD8 vs 0xD9). 
>> > 
>> > I am able to reproduce this consistently with a specific key, nonce, 
>> and input file, after test encrypting ~50GB of 1MB garbage files on each 
>> machine. 
>> > 
>> > If I disable AVX when building cryptlib by defining 
>> CRYPTOPP_DISABLE_AVX and CRYPTOPP_DISABLE_AVX2, the machine with the Ryzen 
>> will encrypt the file the same as the i7. 
>> > 
>> > Source code for a minimal reproducible example is here: 
>> > 
>> https://github.com/austin-clifton/cryptopp-chacha-asm-test/blob/main/src/main.cpp#L208
>>  
>> > 
>> > That repository includes a ready-to-build test case with Visual Studio, 
>> minus a built cryptlib.lib which should be added to libs/debug/ before 
>> building. 
>>
>> Austin, 
>>
>> I fetched main.cpp and run_459_file_76.bin from your GitHub. I 
>> compiled the library with: 
>>
>> CXXFLAGS="-DNDEBUG -g2 -O3 -std=c++17" make 
>>
>> I compiled/linked main.cpp with: 
>>
>> g++ -DNDEBUG -g2 -O3 -fPIC -pthread -std=c++17 -I. main.cxx 
>> ./libcryptopp.a -o main.exe 
>>
>> Running the program on a AMD Ryzen 3 3200U and AMD A6-9220e, this is the 
>> result. 
>>
>> $ ./main.exe 
>> sha256: 0FC0FADCDF82770086C9DA8513A16FC785620D7B1C187CDD828E433EB0979847 
>> encsha: 6FBEE484EE64A2AB02235DDF29CA0B61EE3B811D227C2729836D3BD6161C9B18 
>>
>> Is this correct? 
>>
>> I have one Windows machine for testing. It is a Core i5. Sorry I don't 
>> have a good test environment. 
>>
>> Jeff 
>>
>

-- 
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 cryptopp-users+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/cryptopp-users/e542e5a0-a842-4cad-b30b-699805cd8a81n%40googlegroups.com.

Reply via email to