Hi Everyone, SHA1 and SHA256 were updated to use Intel's SHA extensions when available. The implementations are intrinsic based. The code was based on Intel's https://software.intel.com/en-us/articles/intel-sha-extensions; and Sean Gulley code available on GitHub. Gulley's code was very helpful since it filled in a few missing pieces.
The commits of interest are: * Feature detection: http://github.com/weidai11/cryptopp/commit/ac01277d93636cd7cb9163555e2d929c39849371 * SHA1: http://github.com/weidai11/cryptopp/commit/7ab9b00f909b823f41abed023f40f4957e4cb20a * SHA256: http://github.com/weidai11/cryptopp/commit/cce56d3f79f739339e17746c3c4cdcba7297483b There were other miscellaneous check-ins. They include adding all of NIST's CAVP test vectors; supplementing the test script to verify code generation, supplementing the test script to pair old hardware with a new compiler and SHA, etc. Throughput improved for both SHA1 and SHA256. I don't have a good accounting of cycles per byte due to TurboBoost on the Celeron J3455 test machine, but relative measurements look good: Baseline ========================== * SHA1, CXX: 9.7 cpb * SHA256, SSE2 ASM: 19.5 cpb SHA Exensions ========================== * SHA1, Clang: 2.7 cpb * SHA1, GCC: 3.0 cpb * SHA256, Clang: 3.9 cpb * SHA256, GCC: 4.0 cpb You will need GCC 5, Clang 3.7, or Visual Studio 2015. GCC and Clang tested OK under Debian 8.6. I was able to test the compile under Visual Studio, but I don't have a Windows test machine with a capable cpu, so its untested at runtime. Jeff -- -- You received this message because you are subscribed to the "Crypto++ Users" Google Group. To unsubscribe, send an email to cryptopp-users-unsubscr...@googlegroups.com. More information about Crypto++ and this group is available at http://www.cryptopp.com. --- 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. For more options, visit https://groups.google.com/d/optout.