Commit message (Collapse) | Author | Age | Files | Lines | ||
---|---|---|---|---|---|---|
... | ||||||
* | Store base point multiplies in a single std::vector | Jack Lloyd | 2018-03-20 | 8 | -30/+175 | |
| | | | | | | | | | | | Since the point is public all the values are also, so this reduces pressure on the mlock allocator and may (slightly) help perf through cache read-ahead. Downside is cache based side channels are slightly easier (vs the data being stored in discontigious vectors). But we shouldn't rely on that in any case. And having it be in an array makes a masked table lookup easier to arrange. | |||||
* | Nudge users to EC_Group::OS2ECP | Jack Lloyd | 2018-03-20 | 1 | -4/+10 | |
| | ||||||
* | Support multiple DNS names through the command line interface | Jack Lloyd | 2018-03-19 | 2 | -0/+5 | |
| | ||||||
* | Remove use of ;; to end lines | Jack Lloyd | 2018-03-19 | 5 | -5/+5 | |
| | ||||||
* | Add EC_Group::clear_registered_curve_data | Jack Lloyd | 2018-03-19 | 2 | -0/+16 | |
| | | | | | | Needed for OSS-Fuzz (OOMing a lot) and maybe very occasionally useful in some weird application that has to deal with 100s of different curves. | |||||
* | Cache additional values for PointGFp multi-exponentiation | Jack Lloyd | 2018-03-19 | 5 | -64/+103 | |
| | | | | Improves ECDSA verification by ~10% | |||||
* | Avoid needless computation in base point multiply | Jack Lloyd | 2018-03-19 | 3 | -33/+6 | |
| | | | | We computed twice as many values as were used. | |||||
* | Use a better algorithm for base point multiplies | Jack Lloyd | 2018-03-19 | 2 | -10/+24 | |
| | | | | | | | Nothing very clever, just store P^i,2*P^i,3*P^i in a table so we can do two bits of the scalar at a time. Improves ECDSA sign by 20-30% | |||||
* | Avoid code that triggers problems under GCC 8 | Jack Lloyd | 2018-03-18 | 1 | -1/+1 | |
| | | | | GH #1498 | |||||
* | Fix CPUID::has_cpuid_bit | Jack Lloyd | 2018-03-17 | 1 | -1/+3 | |
| | | | | | | It would return true if any bits were set instead of if all the bits were set. It is only currently called with a single bit but that might change in the future. | |||||
* | Avoid creating stringstream unless needed in version check | Jack Lloyd | 2018-03-17 | 1 | -3/+3 | |
| | ||||||
* | Avoid unused arg warning in PowerPC CPUID code | Jack Lloyd | 2018-03-17 | 1 | -0/+2 | |
| | ||||||
* | Avoid a problematic construct for AltiVec byteswap | Jack Lloyd | 2018-03-16 | 1 | -3/+8 | |
| | | | | Seems to cause problems with GCC 8 on ppc64le. GH #1498 | |||||
* | Catch exceptions by reference not value | Jack Lloyd | 2018-03-16 | 4 | -20/+14 | |
| | | | | Fixes a new warning in GCC 8 | |||||
* | Add basecase_sqr function | Jack Lloyd | 2018-03-16 | 1 | -3/+29 | |
| | | | | | | Just a simple adaption of the n^2 multiply algorithm, so no performance impact. However makes the difference between squaring and multiply easier to see when profiling. | |||||
* | Avoid using threads in DSA operations | Jack Lloyd | 2018-03-15 | 1 | -25/+3 | |
| | | | | | | | | | For DSA signing using a thread turned out to be purely a pessimization. The single threaded code is faster even on a 4-core machine running Linux (which has very fast thread creation). It would likely be much worse on a single core machine or an OS with slower thread primitives. For DSA verification, use Montgomery multi-exponentiation instead. | |||||
* | Add multiexponentation interface to DL_Group | Jack Lloyd | 2018-03-15 | 2 | -3/+17 | |
| | ||||||
* | Add Montgomery multiexponentiation | Jack Lloyd | 2018-03-15 | 4 | -0/+95 | |
| | ||||||
* | Merge GH #1494 Use RtlGenRandom instead of CryptoAPI/CryptoNG | Jack Lloyd | 2018-03-14 | 3 | -80/+24 | |
|\ | ||||||
| * | Use RtlGenRandom instead of CryptoAPI | Jack Lloyd | 2018-03-14 | 3 | -80/+24 | |
| | | ||||||
* | | Some additional operations on Montgomery_Int | Jack Lloyd | 2018-03-14 | 2 | -0/+45 | |
|/ | | | | Needed for #1432 | |||||
* | Merge GH #1492 Support custom DN entries | Jack Lloyd | 2018-03-14 | 3 | -67/+61 | |
|\ | ||||||
| * | Address review comments | Jack Lloyd | 2018-03-14 | 1 | -2/+2 | |
| | | ||||||
| * | Support custom DN entries | Jack Lloyd | 2018-03-14 | 3 | -67/+61 | |
| | | | | | | | | GH #1490 | |||||
* | | Allow the caller to specify the serial number of a generated cert | Jack Lloyd | 2018-03-14 | 2 | -12/+96 | |
|/ | | | | GH #1489 | |||||
* | Add a facility for debug-mode assertions | Jack Lloyd | 2018-03-14 | 5 | -11/+33 | |
| | | | | | When we want to check something but it is to expensive to do so in normal builds. | |||||
* | Assume CurveGFp inputs are at most p words long | Jack Lloyd | 2018-03-14 | 1 | -13/+27 | |
| | | | | Lets us avoid calling sig_words much of the time. Improves ECDSA 5-7% | |||||
* | Avoid creating a temp here | Jack Lloyd | 2018-03-14 | 1 | -4/+4 | |
| | ||||||
* | Improve memory handling for PointGFp | Jack Lloyd | 2018-03-14 | 8 | -69/+86 | |
| | ||||||
* | Allow passing workspace to Montgomery_Int | Jack Lloyd | 2018-03-13 | 3 | -34/+140 | |
| | | | | | | | Improves DH and RSA by 5-15% depending on param sizes. At larger sizes (3072+) doesn't make much difference since the cost of allocation is relatively small compared to the work. | |||||
* | Tweaks to force_all_affine | Jack Lloyd | 2018-03-12 | 1 | -7/+5 | |
| | ||||||
* | Remove bogus comment | Jack Lloyd | 2018-03-11 | 1 | -3/+0 | |
| | | | | GH #500 | |||||
* | Fix error in FPE_FE1 | Jack Lloyd | 2018-03-10 | 2 | -18/+52 | |
| | | | | | | | | | An implementation mistake led to choosing a >= b when the original paper assumes a <= b. Add a boolean to control which version is used. Increase the default FE1 rounds to 5 for a safety factor. GH #500 | |||||
* | Minor tweaks for coverage | Jack Lloyd | 2018-03-10 | 2 | -6/+6 | |
| | ||||||
* | Reduce exponent size here | Jack Lloyd | 2018-03-10 | 1 | -1/+1 | |
| | | | | Triggers for RSA exponents which improves RSA verify time by ~10% | |||||
* | Merge GH #1483 Use uncompressed points for ECC by default | Jack Lloyd | 2018-03-10 | 11 | -50/+78 | |
|\ | ||||||
| * | Rename point_format to point_encoding | Jack Lloyd | 2018-03-10 | 2 | -2/+2 | |
| | | | | | | | | Matches setter | |||||
| * | Add PointGFp::encode as replacement for EC2OSP | Jack Lloyd | 2018-03-10 | 10 | -51/+54 | |
| | | | | | | | | | | | | Literally every single call to EC2OSP is converting the returned secure_vector to a std::vector. Which makes sense since private points are not really a thing in any protocol I know of. | |||||
| * | Default to encoding ECC public keys as uncompressed. GH #1480 | Jack Lloyd | 2018-03-10 | 2 | -1/+26 | |
| | | ||||||
* | | Add some helper functions for checking for Comba sizes | Jack Lloyd | 2018-03-10 | 1 | -15/+27 | |
| | | ||||||
* | | Revert "Use move to avoid needless some needless copies" | Jack Lloyd | 2018-03-10 | 1 | -16/+16 | |
| | | | | | | | | | | | | | | | | This reverts commit 5185c2aaa8bf9556556e4507869042a71eaba6c0. Clang says warning: moving a temporary object prevents copy elision [-Wpessimizing-move] | |||||
* | | Avoid warning in threefish.h | Jack Lloyd | 2018-03-10 | 1 | -6/+0 | |
|/ | | | | Causes a warning in amalgamation which is bad news | |||||
* | Add missing overrides [ci skip] | Jack Lloyd | 2018-03-10 | 1 | -2/+2 | |
| | ||||||
* | Fix header for getentropy on macOS | Jack Lloyd | 2018-03-09 | 1 | -1/+5 | |
| | | | | Re #1481 | |||||
* | Split out the memory pool logic | Jack Lloyd | 2018-03-09 | 6 | -161/+282 | |
| | | | | | | Making a clear seperation between the OS specific code to get the pool, the singleton mlock allocator, and the general allocator logic. | |||||
* | Add OS::system_page_size | Jack Lloyd | 2018-03-09 | 2 | -4/+25 | |
| | ||||||
* | Use move to avoid needless some needless copies | Jack Lloyd | 2018-03-09 | 1 | -16/+16 | |
| | ||||||
* | Cleanup comments | Jack Lloyd | 2018-03-09 | 1 | -10/+7 | |
| | ||||||
* | Use blinded_base_point_multiply_x in the various signature schemes | Jack Lloyd | 2018-03-08 | 5 | -14/+17 | |
| | ||||||
* | Small fiddly optimizations in locking_allocator | Jack Lloyd | 2018-03-08 | 1 | -5/+6 | |
| |