aboutsummaryrefslogtreecommitdiffstats
path: root/src
Commit message (Collapse)AuthorAgeFilesLines
* Fix a bug in OneAndZeros unpaddingJack Lloyd2018-11-304-24/+54
| | | | | | | Introduced in b13c0cc8590199d, it could only trigger if the block size was more than 256 bytes. In that case an invalid padding could be accepted. OSS-Fuzz 11608 (https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=11608)
* Fix debug asserts, and add it to CIJack Lloyd2018-11-292-2/+4
|
* Add CT::Mask typeJack Lloyd2018-11-2820-317/+519
|
* Fix typo [ci skip]Jack Lloyd2018-11-271-1/+1
|
* Need to ensure minimum size hereJack Lloyd2018-11-271-0/+1
| | | | Previously handled by the early exit
* Optimizations for NIST reductionJack Lloyd2018-11-261-22/+20
| | | | Also avoid an early exit in P-521
* Make more BigInt functions const-timeJack Lloyd2018-11-267-135/+328
| | | | In particular comparisons, calc sig words, and mod_sub are const time now.
* Merge GH #1744 Make exception throws easier to debugJack Lloyd2018-11-2381-359/+655
|\
| * Make exceptions easier to translate to error codesJack Lloyd2018-11-2381-359/+655
| | | | | | | | | | | | | | | | | | | | | | Avoid throwing base Botan::Exception type, as it is difficult to determine what the error is in that case. Add Exception::error_code and Exception::error_type which allows (for error code) more information about the error and (for error type) allows knowing the error type without requiring a sequence of catches. See GH #1742
* | Implement const time select based on xor-swapJack Lloyd2018-11-231-1/+2
| | | | | | | | | | For some compilers this may make the difference between compiling using bitmasks as intendeded, and compiling with a conditional jump.
* | In operator>> avoid testing for zero unless requiredJack Lloyd2018-11-231-1/+1
|/
* Simplify Salsa20 xor loopJack Lloyd2018-11-211-4/+7
|
* Build docs last in makefile targetJack Lloyd2018-11-211-1/+1
| | | | Closes #1746
* Fix type errorJack Lloyd2018-11-211-1/+1
| | | | Closes #1747
* Slight simplification to ChaCha loopJack Lloyd2018-11-211-7/+13
|
* When available use RDRAND for Stateful_RNG additional dataJack Lloyd2018-11-211-4/+19
|
* Use builtin_bswap16 when availableJack Lloyd2018-11-201-0/+4
|
* Merge GH #1743 Avoid memset/memcpy in library codeJack Lloyd2018-11-1920-58/+84
|\
| * Add typecast_copyJack Lloyd2018-11-173-30/+48
| | | | | | | | | | Wraps memcpy in the cases where we really are doing a type conversion using memcpy
| * Avoid calling memset, memcpy within library codeJack Lloyd2018-11-1717-27/+36
| | | | | | | | | | | | | | | | | | Prefer using wrappers in mem_utils for this. Current exception is where memcpy is being used to convert between two different types, since copy_mem requires input and output pointers have the same type. There should be a new function to handle conversion-via-memcpy operation.
| * Remove needless memset operationJack Lloyd2018-11-171-1/+0
| |
* | Avoid a crank from Sonar [ci skip]Jack Lloyd2018-11-171-1/+1
|/
* Disable Sonar buildJack Lloyd2018-11-171-5/+5
| | | | | | | | | | | | It is suddenly 5x slower for an unknown reason https://community.sonarsource.com/t/sonar-analysis-step-suddenly-much-5x-slower-on-travis-ci/4364 Now it either times out or else completely dominates the runtime for Travis, either is not acceptable. Leave the framework for using Sonar in CI for now so it is easy to test if things have improved later. If things are still broken in a month or two I'll probably just drop support for Sonar.
* Fix Sonar warningJack Lloyd2018-11-171-1/+1
|
* Attempt to fix Sonar build problemJack Lloyd2018-11-172-1/+8
| | | | | | The build is timing out. Use -Os instead of -O3 in an attempt to speed up the build step, and enable multithreaded analysis as that step is also quite slow.
* Use vzeroupper/vzeroall to transition between AVX and SSE states.Jack Lloyd2018-11-104-0/+32
| | | | | | | | Otherwise some CPUs suffer serious stalls. Using vzeroall on exit also has the nice effect that we don't have to worry about register contents leaking. HT to @noloader for doing the background research on this.
* Avoid an implausible integer overflow flagged by Coverity [ci skip]Jack Lloyd2018-11-101-1/+6
|
* Avoid branching in the NIST prime reduction codeJack Lloyd2018-11-092-59/+58
| | | | | This is still vulnerable to a cache-based side channel since the multiple chosen leaks the final carry.
* Merge GH #1737 Inline mp_coreJack Lloyd2018-11-094-604/+439
|\
| * Use resize instead of shrink_to_fitJack Lloyd2018-11-092-3/+10
| | | | | | | | Avoid recalculating significant words which slows down reduction
| * Inline the contents of mp_core.cppJack Lloyd2018-11-092-601/+429
| |
* | Bump ABI versionJack Lloyd2018-11-091-1/+1
| | | | | | | | BigInt has changed size
* | Cleanups in Poly1305Jack Lloyd2018-11-091-23/+23
|/
* Merge GH #1734 Refactor BigInt data model, add sig_words cacheJack Lloyd2018-11-093-107/+253
|\
| * Optimize mod_subJack Lloyd2018-11-091-10/+21
| | | | | | | | | | We already assumed the args are < modulus so we can avoid the call to sig_words. This provides a noticable speedup for ECDSA overall.
| * Add a cache of sig words to BigIntJack Lloyd2018-11-093-97/+232
| |
* | Rename get_uint32_t to get_uint32Jack Lloyd2018-11-091-67/+67
| |
* | Run RSA blinding tests only with base providerAlexander Bluhm2018-11-081-2/+9
|/ | | | | Only the base provider uses blinding for RSA. So the test should run exclusively for this provider. Also use base provider explicitly.
* Add some missing includesJack Lloyd2018-11-088-0/+9
| | | | This is not exhaustive. See GH #1733
* Switch LibreSSL provider to OpenSSL 1.1 APIAlexander Bluhm2018-11-073-6/+6
| | | | | | | LibreSSL 2.7 has added parts of the OpenSSL 1.1 API. Remove the defined(LIBRESSL_VERSION_NUMBER) as it is not necessary anymore. Switch to the newer API unconditionally, older LibreSSL version are not supported.
* Compile fixJack Lloyd2018-11-072-1/+2
|
* Avoid throwing std:: exceptionsJack Lloyd2018-11-073-2/+3
| | | | | Also include <new> in mem_ops.cpp as apparently that header is where bad_alloc is defined.
* Avoid using std::invalid_argumentJack Lloyd2018-11-073-4/+4
| | | | See #1726
* Add missing <stdexcept> <string> necessaryLarry-Hu2018-11-072-2/+2
|
* Simplify BigInt::is_zeroJack Lloyd2018-11-061-6/+1
| | | | | | The definition of return value of sig_words() means the integer is zero iff sig_words() returns zero, so there is no reason to scan over the data twice.
* Merge GH #1730 Optimize AVX2 ChaChaJack Lloyd2018-11-062-238/+209
|\
| * Optimize AVX2 ChaChaJack Lloyd2018-11-052-238/+209
| | | | | | | | | | | | Using the same transposition trick used for SSE2 in #1728 On my Skylake desktop about 5-10% faster depending on buffer sizes.
* | Merge GH #1729 Optimize SIMD_4x32 for NEONJack Lloyd2018-11-061-33/+32
|\ \
| * | Fix for 32-bit ARMJack Lloyd2018-11-051-0/+9
| | |
| * | Some optimizations for NEON in SIMD_4x32Jack Lloyd2018-11-051-35/+25
| |/