aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Update newsJack Lloyd2017-10-131-0/+4
| | | | [ci skip]
* OCB optimizationsJack Lloyd2017-10-132-58/+90
| | | | | | With fast AES-NI, gets down to about 2 cycles per byte which is pretty good compared to the ~5.5 cpb of 2.3, still a long way off the best stiched impls which run at ~0.6 cpb.
* Somewhat faster xor_bufJack Lloyd2017-10-121-18/+15
| | | | Avoids the cast alignment problems of yesteryear
* Remove needless mutableJack Lloyd2017-10-121-2/+2
| | | | [ci skip]
* Swapped encrypt and decrypt in BlockCipher _xex functionsJack Lloyd2017-10-121-2/+2
| | | | | Missed by everything but the OCB wide tests because most ciphers have fixed width and get the override.
* Add some additional CPU aliases for x86-64Jack Lloyd2017-10-121-5/+8
|
* Interleave SM3 message expansionJack Lloyd2017-10-121-141/+142
| | | | Reduces stack usage and a bit faster
* Use SIMD for in ThreefishJack Lloyd2017-10-121-2/+2
| | | | GCC 7 can actually vectorize this for AVX2
* OCB optimizationsJack Lloyd2017-10-127-124/+163
| | | | From ~5 cbp to ~2.5 cbp on Skylake
* Merge GH #1247 Improve bit rotation functionsJack Lloyd2017-10-1236-661/+739
|\
| * Ugh, the GCC/Clang trick triggers C4146 under MSVCJack Lloyd2017-10-121-8/+25
| | | | | | | | | | | | And rotate.h is a visible header. Blerg. Inline asm it is.
| * Add compile-time rotation functionsJack Lloyd2017-10-1236-677/+716
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The problem with asm rol/ror is the compiler can't schedule effectively. But we only need asm in the case when the rotation is variable, so distinguish the two cases. If a compile time constant, then static_assert that the rotation is in the correct range and do the straightforward expression knowing the compiler will probably do the right thing. Otherwise do a tricky expression that both GCC and Clang happen to have recognize. Avoid the reduction case; instead require that the rotation be in range (this reverts 2b37c13dcf). Remove the asm rotations (making this branch illnamed), because now both Clang and GCC will create a roll without any extra help. Remove the reduction/mask by the word size for the variable case. The compiler can't optimize that it out well, but it's easy to ensure it is valid in the callers, especially now that the variable input cases are easy to grep for.
| * Use rol/ror x86 instructions on GCC/ClangJack Lloyd2017-10-111-2/+24
| | | | | | | | | | | | | | Neither is very good at recognizing rotate sequences. For cases where the rotation value is a constant they do fine, but for variable rotations they do horribly. Using inline asm here improved performance of both CAST-128 and CAST-256 by ~20% on my system with both GCC and Clang.
* | Merge GH #1251 Fix CMakeJack Lloyd2017-10-121-3/+5
|\ \
| * | Prevent a lint complaint.Frank Schoenmann2017-10-121-1/+2
| | |
| * | Repair generation of CMakeLists.txt after some files have been moved.Frank Schoenmann2017-10-121-3/+4
| |/
* | Avoid std::count to skip a signed overflow warningJack Lloyd2017-10-122-3/+13
| | | | | | | | | | | | Couldn't figure out a way to silence this otherwise. Deprecate replace_char, erase_chars, replace_chars
* | Merge GH #1245 Restructure Barrier/Semaphore to avoid signed overflow warningsJack Lloyd2017-10-122-11/+9
|\ \ | |/ |/|
| * #1220 - fixed fixes of integer overflowHubert Bugaj2017-10-102-7/+3
| |
| * #1220 - fixed signed overflow warningsHubert Bugaj2017-10-092-10/+12
| |
* | Merge GH #1248 Unroll SM3 compression loopJack Lloyd2017-10-111-56/+94
|\ \
| * | Unroll SM3 compression functionJack Lloyd2017-10-101-56/+94
| | |
* | | Merge GH #1249 Add Eclipse configJack Lloyd2017-10-111-0/+167
|\ \ \
| * | | Add Eclipse code formatting template [ci skip]René Korthaus2017-10-111-0/+167
| | | |
* | | | Avoid <thread>Jack Lloyd2017-10-111-2/+6
| | | | | | | | | | | | | | | | Not needed here
* | | | Helpful commentJack Lloyd2017-10-111-1/+2
| | | |
* | | | Update test for new error returnJack Lloyd2017-10-111-1/+1
| | | |
* | | | Remove SSE2 bswap_4Jack Lloyd2017-10-111-24/+0
| | | | | | | | | | | | | | | | | | | | It was disabled anyway (bad macro check) and with recent GCC turned out to be slower than just using bswap.
* | | | Optimize CFB modeJack Lloyd2017-10-112-39/+97
| | | | | | | | | | | | | | | | Still slower but notably faster at least with AES-NI
* | | | Add missing headerJack Lloyd2017-10-111-0/+1
| | | | | | | | | | | | | | | | Error under filesystem-free builds
* | | | Deprecate anon DH/ECDH TLS ciphersuitesJack Lloyd2017-10-111-0/+2
| | | |
* | | | Simplify ffi call overheadJack Lloyd2017-10-115-45/+22
|/ / / | | | | | | | | | Notable reductions in code size, stack size and function call overhead.
* | | getenv is in standard C++Jack Lloyd2017-10-091-1/+1
| | |
* | | Merge GH #1246 OpenBSD/clang build fixJack Lloyd2017-10-091-0/+2
|\ \ \ | |_|/ |/| |
| * | Include cstdlib to make os_utils compile with clang.Alexander Bluhm2017-10-091-0/+2
|/ /
* | Merge GH #1244 Avoid deprecation warnings inside the library resolves #1243Jack Lloyd2017-10-093-7/+32
|\ \
| * | Add comments explaining why its ok to rely on deprecated features here.Jack Lloyd2017-10-092-0/+8
| | | | | | | | | | | | [ci skip]
| * | Add a special Compat_Callbacks constructor to silence deprecation warnings.Jack Lloyd2017-10-093-7/+24
| | | | | | | | | | | | | | | | | | That way we avoid the warning internally even in amalgamation mode. GH #1243
* | | Merge GH #1241 Add ability to disable SSE 4Jack Lloyd2017-10-081-1/+1
|\ \ \ | |/ / |/| |
| * | Make it possible to disable SSE4.1 and SSE4.2Simon Warta2017-10-081-1/+1
|/ /
* | Forward declare BigInt in mp_core.hJack Lloyd2017-10-062-1/+3
| | | | | | | | Only needed in one source file here.
* | Remove needless variableJack Lloyd2017-10-061-2/+0
| |
* | Address some bool/int conversion warnings from SonarJack Lloyd2017-10-064-5/+12
| | | | | | | | Nothing major but probably good to clean these up.
* | Address various GCC warningsJack Lloyd2017-10-068-24/+26
| | | | | | | | | | Things like -Wconversion and -Wuseless-cast that are noisy and not on by default.
* | Add mod_inverse cmdletJack Lloyd2017-10-061-0/+16
| | | | | | | | I needed it ;)
* | Restart state in Text_Based_Test after test is overJack Lloyd2017-10-061-0/+2
| | | | | | | | This allows --test-runs= to work as expected
* | Update news to mention RIPEMD-160 OIDJack Lloyd2017-10-061-0/+2
| |
* | Correct the SHA-3 PKCSv1.5 IDsJack Lloyd2017-10-055-5/+112
| | | | | | | | | | | | | | Thanks to @noloader for pointing me at draft-jivsov-openpgp-sha3-01 which has the correct values. Adds a test so this can't happen again.
* | Mark some functions of MDx_HashFunction finalJack Lloyd2017-10-051-3/+3
| | | | | | | | | | The class itself can't be final but we can final the overrides from HashFunction, which helps the compiler devirtualize.
* | Add missing `override`Jack Lloyd2017-10-051-1/+1
| | | | | | | | | | Redundant with `final` but GCC -Wsuggest-override complains. (This is already a bug filed for this in GCC upstream.)