aboutsummaryrefslogtreecommitdiff
path: root/src/crypto/sha256.cpp
Commit message (Collapse)AuthorAgeFilesLines
* scripted-diff: Bump copyright of files changed in 2019MarcoFalke2019-12-301-1/+1
| | | | | | -BEGIN VERIFY SCRIPT- ./contrib/devtools/copyright_header.py update ./ -END VERIFY SCRIPT-
* [MOVEONLY] Move cpuid code from random & sha256 to compat/cpuidPieter Wuille2019-11-121-15/+5
|
* Remove unused includespracticalswift2019-10-151-1/+0
|
* Update copyright headers to 2018DrahtBot2018-07-271-1/+1
|
* Merge #13386: SHA256 implementations based on Intel SHA ExtensionsWladimir J. van der Laan2018-07-091-16/+74
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 66b2cf1ccfad545a8ec3f2a854e23f647322bf30 Use immintrin.h everywhere for intrinsics (Pieter Wuille) 4c935e2eee456ff66cdfb908b0edffdd1e8a6c04 Add SHA256 implementation using using Intel SHA intrinsics (Pieter Wuille) 268400d3188200c9e3dcd3482c4853354388a721 [Refactor] CPU feature detection logic for SHA256 (Pieter Wuille) Pull request description: Based on #13191. This adds SHA256 implementations that use Intel's SHA Extension instructions (using intrinsics). This needs GCC 4.9 or Clang 3.4. In addition to #13191, two extra implementations are provided: * (a) A variable-length SHA256 implementation using SHA extensions. * (b) A 2-way 64-byte input double-SHA256 implementation using SHA extensions. Benchmarks for 9001-element Merkle tree root computation on an AMD Ryzen 1800X system: * Using generic C++ code (pre-#10821): 6.1ms * Using SSE4 (master, #10821): 4.6ms * Using 4-way SSE4 specialized for 64-byte inputs (#13191): 2.8ms * Using 8-way AVX2 specialized for 64-byte inputs (#13191): 2.1ms * Using 2-way SHA-NI specialized for 64-byte inputs (this PR): 0.56ms Benchmarks for 32-byte SHA256 on the same system: * Using SSE4 (master, #10821): 190ns * Using SHA-NI (this PR): 53ns Benchmarks for 1000000-byte SHA256 on the same system: * Using SSE4 (master, #10821): 2.5ms * Using SHA-NI (this PR): 0.51ms Tree-SHA512: 2b319e33b22579f815d91f9daf7994a5e1e799c4f73c13e15070dd54ba71f3f6438ccf77ae9cbd1ce76f972d9cbeb5f0edfea3d86f101bbc1055db70e42743b7
| * Add SHA256 implementation using using Intel SHA intrinsicsPieter Wuille2018-06-261-0/+40
| |
| * [Refactor] CPU feature detection logic for SHA256Pieter Wuille2018-06-241-16/+34
| |
* | Use __cpuid_count for gnu C to avoid gitian build fail.Chun Kuan Lee2018-07-071-1/+5
|/
* Merge #13471: For AVX2 code, also check for AVX, XSAVE, and OS supportWladimir J. van der Laan2018-06-241-4/+17
|\ | | | | | | | | | | | | | | | | | | 32d153fa360f73b4999701b97d55b12318fd2659 For AVX2 code, also check for AVX, XSAVE, and OS support (Pieter Wuille) Pull request description: Fixes #12903. Tree-SHA512: 01e71efb5d3a43c49a145a5b1dc4fe7d0a491e1e78479e7df830a2aaac57c3dcfc316e28984c695206c76f93b68e4350fc037ca36756ca579b7070e39c835da2
| * For AVX2 code, also check for AVX, XSAVE, and OS supportPieter Wuille2018-06-181-4/+17
| |
* | Improve coverage of SHA256 SelfTest codePieter Wuille2018-06-121-28/+80
|/
* Enable double-SHA256-for-64-byte code on 32-bit x86Pieter Wuille2018-06-041-2/+4
|
* 8-way AVX2 implementation for double SHA256 on 64-byte inputsPieter Wuille2018-05-291-1/+32
|
* 4-way SSE4.1 implementation for double SHA256 on 64-byte inputsPieter Wuille2018-05-291-3/+22
|
* Specialized double sha256 for 64 byte inputsPieter Wuille2018-05-291-1/+303
|
* Refactor SHA256 codePieter Wuille2018-05-081-69/+69
|
* Increment MIT Licence copyright header year on files modified in 2017Akira Takizawa2018-01-031-1/+1
|
* scripted-diff: Replace #include "" with #include <> (ryanofsky)MeshCollider2017-11-161-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | -BEGIN VERIFY SCRIPT- for f in \ src/*.cpp \ src/*.h \ src/bench/*.cpp \ src/bench/*.h \ src/compat/*.cpp \ src/compat/*.h \ src/consensus/*.cpp \ src/consensus/*.h \ src/crypto/*.cpp \ src/crypto/*.h \ src/crypto/ctaes/*.h \ src/policy/*.cpp \ src/policy/*.h \ src/primitives/*.cpp \ src/primitives/*.h \ src/qt/*.cpp \ src/qt/*.h \ src/qt/test/*.cpp \ src/qt/test/*.h \ src/rpc/*.cpp \ src/rpc/*.h \ src/script/*.cpp \ src/script/*.h \ src/support/*.cpp \ src/support/*.h \ src/support/allocators/*.h \ src/test/*.cpp \ src/test/*.h \ src/wallet/*.cpp \ src/wallet/*.h \ src/wallet/test/*.cpp \ src/wallet/test/*.h \ src/zmq/*.cpp \ src/zmq/*.h do base=${f%/*}/ relbase=${base#src/} sed -i "s:#include \"\(.*\)\"\(.*\):if test -e \$base'\\1'; then echo \"#include <\"\$relbase\"\\1>\\2\"; else echo \"#include <\\1>\\2\"; fi:e" $f done -END VERIFY SCRIPT-
* build: Rename --enable-experimental-asm to --enable-asm and enable by defaultWladimir J. van der Laan2017-08-281-2/+2
| | | | Now that 0.15 is branched off, enable assembler SHA256 optimizations by default.
* Protect SSE4 code behind a compile-time flagPieter Wuille2017-07-201-1/+3
|
* Add selftest for SHA256 transformPieter Wuille2017-07-201-1/+33
|
* Add SSE4 based SHA256Pieter Wuille2017-07-201-2/+16
|
* Add SHA256 dispatcherPieter Wuille2017-07-201-2/+11
|
* Support multi-block SHA256 transformsPieter Wuille2017-07-201-87/+90
| | | | Extracted from a patch by Wladimir van der Laan.
* Added "Core" to copyright headerssandakersmann2014-12-191-1/+1
| | | | | Github-Pull: #5494 Rebased-From: 15de949bb9277e442302bdd8dee299a8d6deee60
* Split up crypto/sha2Pieter Wuille2014-11-201-0/+189