| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
| |
|
| |
|
|
|
|
|
|
| |
* Fix build on FreeBSD 10.3 x86 with clang++ v. 3.4.1. The x64 build (also clang++ 3.4.1) doesn't require CRYPTOPP_DISABLE_SHA_ASM. It seems to be a bug specific to the x86 version of clang++.
* Based on suggestion from @noloader, don't split x86/x64 clang++ version detection. Just wait until clang++ is consistently working in both x86/x64.
|
|
|
|
| |
Currently the CRYPTOPP_BOOL_XXX macros set the macro value to 0 or 1. If we remove setting the 0 value (the #else part of the expression), then the self tests speed up by about 0.3 seconds. I can't explain it, but I have observed it repeatedly.
This check-in prepares for the removal in Upstream master
|
|
|
|
|
| |
#461)
Split source files to support Base Implementation + SIMD implementation
|
|
|
|
| |
Update comments and use class constants when available
|
|
|
|
|
|
|
|
| |
Reworked SHA class internals to align all the implementations. Formerly all hashes were software based, IterHashBase handled endian conversions, IterHashBase repeatedly called the single block SHA{N}::Transform. The rework added SHA{N}::HashMultipleBlocks, and the SHA classes attempt to always use it.
Now SHA{N}::Transform calls into SHA{N}_HashMultipleBlocks, which is a free standing function. An added wrinkle is hardware wants little endian data and software presents big endian data, so HashMultipleBlocks accepts a ByteOrder for the incoming data. Hardware based SHA{N}_HashMultipleBlocks can often perform the endian swap much easier by setting an EPI mask so it was profitable to defer to hardware when available.
The rework also removed the hacked-in pointers to implementations. The class now looks more like AES, GCM, etc.
|
|
|
|
| |
Updated documentation
|
|
|
|
| |
This gains about 0.6 cpb. SHA-1 is down to 1.7 to 1.9 cpb. SHA-256 is not affected
|
|
|
|
| |
This reverts commit 3b56ba118f34. It broke Tiger and SEAL. Arg...
|
|
|
|
| |
This gains about 0.6 cpb. SHA-1 is down to 1.9 cpb. SHA-256 is not affected
|
|
|
|
| |
This reverts commit 72d8cbe9177bade320b51c149aac1c67c4dd13ec.
|
|
|
|
|
|
| |
Initially we performed a 32-bit word-size ByteReverse() on the entire 64-byte buffer being hashed. Then we performed another fix-up when loading each 16-byte portion of the buffer into the SSE2 registers for SHA processing. The [undesired] consequence was byte swapping and reversals happened twice. Worse, the call to ByteReverse() produced 16 bswaps instead of 1 call pshufb, so it was orders of magnitude slower than it needed to be.
This check-in takes the sane approach to byte reversals and swapping. It performs it once when the message is loaded for SSE processing. The result is SHA1 calculations drop from about 3.0 cpb to about 2.5 cpb.
|
|
|
|
|
| |
Fixes for "invalid address alignment" errors. See https://groups.google.com/d/topic/cryptopp-users/OYaByDEbSI0/discussion for details.
Changed config.h in accordance to Jeffrey Walton's request;
|
| |
|
|
|
|
| |
Also see http://github.com/weidai11/cryptopp/commit/d3bb0e13def80a4bf59ea324eed80becdf0045ce#commitcomment-20482554
|
| |
|
| |
|
|
|
|
| |
Benchmarking on ARMv8/Aarch64 dev-board shows SHA-1 speeds up by 2.5x
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
| |
due to bad interaction with '-march=x86-64'. Disgorge SSE2 implementation from CXX implementation
|
|
|
|
| |
CRYPTOPP_DISABLE_ASM
|
| |
|
| |
|
| |
|
|
|
|
| |
trap.h and CRYPTOPP_ASSERT has existed for over a year in Master. We deferred on the cut-over waiting for a minor version bump (5.7). We have to use it now due to CVE-2016-7420
|
|
|
|
| |
This is Wei's original code. It was commented out, but it might be useful to some since IoT gadgets are becoming more popular
|
|
|
|
|
|
| |
members
Solaris is showing unusual signs with SunCC 5.13 and 5.14. One user is experiencing a SIGBUS in SHA512::Transform due to data alignment of 'data', which was only 2-byte aligned. The project experienced an exception "Coneable not implemented" during the hashing test after building with Cmake. Its not clear how much Cmake influenced the project's results.
|
| |
|
| |
|
| |
|
| |
|
|
|
|
| |
(Coverity rollup)
|
| |
|
|
|
|
| |
the syntax string
|
|
|
|
| |
defines are WORKAROUND_LLVM_BUG_18916 and CRYPTOPP_USING_CLANG_INTEGRATED_ASSEMBLER. Once the 18916 bug is fixed, the other issues around the integrated assembler will remain
|
|
|
|
| |
default since integrated-as is default behavior and the bug is active). GNU_ATT_SYNTAX → GNU_AS_ATT_SYNTAX and GNUINTEL_SYNTAX → GNU_AS_INTEL_SYNTAX
|
|
|
|
| |
Bug 18916 (https://llvm.org/bugs/show_bug.cgi?id=18916)
|
| |
|
|
|
|
| |
enabled
|
| |
|
|
|
|
|
|
| |
input (reported by
pycryptopp project)
|
| |
|
| |
|
| |
|