Simple test and benchmark for various SHA1 and AES implementations
The goal is to compare and benchmark various implementations of the SHA1 hash algorithm and the AES cipher
Frameworks/APIs tested:
-
Qt 5.15 / QCryptoGraphicHash; plain C/C++
-
libtomcrypt; plain C (some ASM but disabled); as used currently in https://github.com/status-im/go-sqlcipher
-
OpenSSL; C/ASM/intrinsics
-
git-sha1; plain C; (as used in Linux kernel)
-
nayuki; highly optimized C and ASM
-
intrinsics - using Intel SHA/ARM Neon extensions; C/ASM, highly optimized
-
and finally, libtomcrypt_new which replaces the C-based
sha1_compress
subroutine with optimized versions fromintrinsics
(SHA/Neon) plus a fallback fromnayuki
For AES:
- libtomcrypt; plain C (some ASM but disabled); as used currently in https://github.com/status-im/go-sqlcipher
- OpenSSL; C/ASM/intrinsics
status-sha-bench/bench_results.csv
Lines 1 to 15 in b7cdcbf