aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Attempt to verify decoded ECC groups are using prime fieldsJack Lloyd2018-06-202-5/+57
| | | | | | | Otherwise ressol (part of point decompression) can end up in very long loop. OSS-Fuzz 9011
* Add todoJack Lloyd2018-06-201-0/+1
| | | | GH #1612
* Avoid an unncecessary mallocJack Lloyd2018-06-201-1/+1
|
* Use masked table lookups for variable point scalar multJack Lloyd2018-06-202-16/+36
|
* Changes to allow masked lookups for variable point multJack Lloyd2018-06-208-146/+174
|
* Fix SM2 encryption testsJack Lloyd2018-06-201-3/+4
| | | | Broken in 5f26125d
* Update side channel docJack Lloyd2018-06-201-9/+25
|
* Remove build time toggle for ECC coordinate maskingJack Lloyd2018-06-203-23/+16
| | | | | | | | | This is not a decision we should leave to end users. And always use a random mask equal in size to the underlying field. It was never quite clear if 80 bits was sufficient or not. But taking a random field element is clearly the best possible situation, and has very little additional cost.
* Perform ECC mult starting from top bit of the exponentJack Lloyd2018-06-201-17/+16
| | | | | | | Since we know the top bit is 1, then R will always be a point other than point at infinity after the very first addition regardless of the scalar or mask, so then coordinate randomization is guaranteed to work.
* Avoid a small timing channel in Barrett reductionJack Lloyd2018-06-202-25/+31
| | | | No known exploit for this but no point taking chances.
* More cli testsJack Lloyd2018-06-191-0/+27
|
* Ensure that trying to add points from different groups fails.Jack Lloyd2018-06-193-13/+35
| | | | Producing garbage instead is asking for trouble.
* Use masked table lookup in ECC base point multiplicationJack Lloyd2018-06-192-9/+42
|
* Avoid a special case in Barrett reduction for x < modJack Lloyd2018-06-181-8/+3
| | | | This would have prevented CVE-2018-12435
* Avoid unnecessary realloc in BigInt::mod_subJack Lloyd2018-06-171-2/+7
|
* Add some todo comments wrt side channels in ECC scalar multJack Lloyd2018-06-171-0/+5
|
* Merge GH #1610 Make exponentiation loop independent of exponent sizeJack Lloyd2018-06-1711-51/+119
|\
| * Avoid leaking size of exponentJack Lloyd2018-06-1711-51/+119
|/ | | | See #1606 for discussion
* Merge GH #1609 Avoid small side channel in ECC field mulJack Lloyd2018-06-151-22/+15
|\
| * In ECC avoid using significant words to dispatch the mult algoJack Lloyd2018-06-151-22/+15
| | | | | | | | | | | | Normally all elements will be exact number of limbs as the field. Any situation with short elements is rare and not worth optimizing for, and likely leads to some unfortunate side channel.
* | Merge GH #1608 Fix TLS when x25519 is disabledJack Lloyd2018-06-156-8/+18
|\ \
| * | TLS would try to negotiate x25519 even if disabledJack Lloyd2018-06-156-8/+18
| |/ | | | | | | | | | | | | | | Also reorder ECC groups to actually match performance characteristics. I'm not sure when P-384 was slower than P-521 but it certainly isn't anymore. Fixes #1607
* / Use Botan specific CVE for ECDSA side channel [ci skip]Jack Lloyd2018-06-152-4/+3
|/
* Update newsJack Lloyd2018-06-151-0/+2
|
* Merge GH #1606 Make Montgomery exponentation const timeJack Lloyd2018-06-157-60/+124
|\
| * Document leak of exponent sizeJack Lloyd2018-06-141-2/+4
| |
| * Add combined conditional add-or-subtractJack Lloyd2018-06-143-5/+41
| |
| * Remove CT annotations from Montgomery reductionJack Lloyd2018-06-141-8/+0
| | | | | | | | | | The poisons don't stack so the unpoison hid conditional jumps we want to find.
| * In Montgomery mul, avoid branching based on sig words of integersJack Lloyd2018-06-141-13/+21
| | | | | | | | Instead just assume they are the same size as the prime
| * Make Karatsuba multiply completely const timeJack Lloyd2018-06-145-36/+62
|/
* Fix CLI testJack Lloyd2018-06-141-0/+1
|
* Avoid overallocation of memory for EC base point multiplesJack Lloyd2018-06-141-1/+1
| | | | | | | The size is rounded up to next 8 words so there was substantial slack here. No noticable perf difference.
* Merge GH #1605 Add 192-bit Suite B TLS policyJack Lloyd2018-06-147-8/+74
|\
| * Add 192-bit Suite B policyJack Lloyd2018-06-147-8/+74
| | | | | | | | Since 128-bit policy is actually not even allowed since 2015.
* | Output order with ec_group_infoJack Lloyd2018-06-141-0/+1
| |
* | Update news [ci skip]Jack Lloyd2018-06-141-0/+4
|/
* Merge GH #1604 Resolve ECDSA/DSA side channelJack Lloyd2018-06-135-17/+88
|\
| * Address DSA/ECDSA side channelJack Lloyd2018-06-135-17/+88
|/
* Merge GH #1603 Unroll Montgomery reduction for specific sizesJack Lloyd2018-06-117-26/+2784
|\
| * Unroll bigint_monty_redc for various sizesJack Lloyd2018-06-117-26/+2784
| | | | | | | | Speedup of 10 to 30% depending on algo
* | Merge GH #1602 Support GCC --sysroot option for embedded cross compilesJack Lloyd2018-06-115-1/+20
|\ \ | |/ |/|
| * Corrected error messageHegedüs Márton Csaba2018-06-111-1/+1
| |
| * Required changes according to the code reviewHegedüs Márton Csaba2018-06-114-5/+16
| |
| * Updated news.rstHegedüs Márton Csaba2018-06-081-0/+2
| |
| * Add support for GCC's --sysroot option to configure.pyHegedüs Márton Csaba2018-06-082-2/+8
|/
* Merge GH #1601 Fix typos in configure script [ci skip]Jack Lloyd2018-06-081-2/+2
|\
| * Fix some typos in configure.pyFelix Yan2018-06-091-2/+2
|/
* Add missing statementJack Lloyd2018-06-081-0/+1
|
* Merge GH #1600 Optimizations in BER decodingJack Lloyd2018-06-089-102/+252
|\
| * Attempt at MSVC 2013 workaroundJack Lloyd2018-06-081-2/+4
| |