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.