Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | Don't call get_eme or get_kdf with name "Raw" (returns NULL); ideally | lloyd | 2010-03-19 | 1 | -3/+3 |
| | | | | | | would like to replace these functions with generic engine code instead of hardcoded lookup, and NULL return value would be impossible to disambiguate. | ||||
* | Initialize m_pk to null in constructor | lloyd | 2010-03-17 | 1 | -0/+2 |
| | |||||
* | The logic PointGFp::operator*= was basically doing | lloyd | 2010-03-16 | 2 | -29/+31 |
| | | | | | | | | | *this = scalar * *this; And operator* was doing a needless copy. Instead make operator* a real multiplication operation, define *= in terms of it. | ||||
* | Shuffle functions for easier reading | lloyd | 2010-03-16 | 2 | -74/+75 |
| | |||||
* | Disable VC++ 4275 entirely; it also causes warnings when building the | lloyd | 2010-03-16 | 1 | -2/+2 |
| | | | | test app... | ||||
* | Fix include. <botan/mp_core.h> was picking up the system installed version, | lloyd | 2010-03-16 | 1 | -1/+1 |
| | | | | which happened to be compatible enough to work. | ||||
* | Add a couple of verification tests for GOST 34.10 | lloyd | 2010-03-16 | 1 | -3/+16 |
| | | | | | | | | | | | Generating the test vectors found yet another inane (and, of course, undocumented) behavior in the GOST implementation included in OpenSSL; it treats the hash inputs as little endian. Just out of curiousity, I checked RFC 5832, which supposedly specifies this algorithm; not a peep about endian conversions. The more I deal with standards coming out of the CryptoPro people, the less confidence I have in them. | ||||
* | Add a special handler for the case of doing a subtraction as in: | lloyd | 2010-03-16 | 7 | -391/+470 |
| | | | | | | | | x -= y; where abs(x) < abs(y). This change alone increases ECDSA performance by 5 to 15% | ||||
* | Name other params. Remove decls of functions that don't exist | lloyd | 2010-03-15 | 1 | -14/+36 |
| | |||||
* | Name params | lloyd | 2010-03-15 | 1 | -16/+25 |
| | |||||
* | Various microoptimizations, 5-12% improvement | lloyd | 2010-03-15 | 1 | -8/+15 |
| | |||||
* | Use a 4-bit wide window for point multiplication | lloyd | 2010-03-15 | 1 | -14/+21 |
| | |||||
* | Rewrite point mult to make larger windows easier | lloyd | 2010-03-15 | 1 | -7/+14 |
| | |||||
* | Strength reduce on multiplies in PointGFp | lloyd | 2010-03-15 | 1 | -4/+5 |
| | |||||
* | Cache memory used for operations in point | lloyd | 2010-03-15 | 1 | -16/+18 |
| | |||||
* | Modify to allow better memory caching | lloyd | 2010-03-15 | 2 | -21/+52 |
| | |||||
* | Cache p.sig_words() in curve object | lloyd | 2010-03-15 | 3 | -27/+68 |
| | | | | Avoid using Barett reduction in core operations; seems to help perf. | ||||
* | Use bigint_{mul,sqr} in PointGFp monty ops | lloyd | 2010-03-15 | 2 | -9/+8 |
| | |||||
* | Remove unneeded includes | lloyd | 2010-03-15 | 2 | -23/+4 |
| | |||||
* | If workspace is NULL, skip Karatsuba mul/sqr | lloyd | 2010-03-15 | 1 | -2/+6 |
| | |||||
* | Add PointGFp::monty_sqr | lloyd | 2010-03-15 | 2 | -10/+44 |
| | |||||
* | Remove stdio include | lloyd | 2010-03-13 | 1 | -2/+0 |
| | |||||
* | Remove iostream/stdio includes | lloyd | 2010-03-13 | 1 | -3/+0 |
| | |||||
* | Fix GOST 34.10 pub key loading (uses little endian format, what the fsck?) | lloyd | 2010-03-13 | 1 | -6/+25 |
| | |||||
* | Fix GOST, wasn't getting found in engine | lloyd | 2010-03-13 | 3 | -7/+7 |
| | |||||
* | Use a Modular_Reducer in ECDSA op | lloyd | 2010-03-13 | 2 | -6/+8 |
| | |||||
* | At startup, test if lock_mem() at least seems to work. If it doesn't, | lloyd | 2010-03-13 | 3 | -1/+16 |
| | | | | | immediately fall back the the plain malloc-based allocator, which is typically quite a bit faster. | ||||
* | Cache BigInts as well. Kind of like the old scheme, but created inside | lloyd | 2010-03-13 | 2 | -27/+74 |
| | | | | operator+= and operator*= instead of being class var, so no thread issues. | ||||
* | Always keep coord_{x,y,z} < p, so don't ever have to copy or use reducer | lloyd | 2010-03-13 | 1 | -22/+10 |
| | | | | in monty_mult() | ||||
* | Save workspace for addition calls inside operator*= | lloyd | 2010-03-13 | 2 | -20/+28 |
| | |||||
* | Share workspace among calls to mult2 | lloyd | 2010-03-13 | 2 | -10/+9 |
| | |||||
* | Cache a workspace; much faster | lloyd | 2010-03-13 | 2 | -31/+43 |
| | |||||
* | Correct Doxygen comment | lloyd | 2010-03-13 | 1 | -3/+3 |
| | |||||
* | Small optimizations | lloyd | 2010-03-13 | 1 | -6/+13 |
| | | | | | Especially try to keep the size of inputs down, so it doesn't have to do an extra reduction step. Ideally this should be eliminated entirely. | ||||
* | Kill stdio include | lloyd | 2010-03-13 | 1 | -2/+0 |
| | |||||
* | Unroll point multiply to look at two bits of scalar each iteration. | lloyd | 2010-03-13 | 1 | -2/+24 |
| | | | | Helps out quite a bit. | ||||
* | Precompute a*r | lloyd | 2010-03-13 | 2 | -2/+9 |
| | |||||
* | More monty_mult cleanups | lloyd | 2010-03-13 | 1 | -6/+4 |
| | |||||
* | Small monty_mult cleanup | lloyd | 2010-03-13 | 1 | -10/+8 |
| | |||||
* | Inline/simplifiy monty mult | lloyd | 2010-03-13 | 1 | -31/+15 |
| | |||||
* | Single word p-dash | lloyd | 2010-03-13 | 1 | -3/+4 |
| | |||||
* | Only need a single word from p_dash, so only save that single word. | lloyd | 2010-03-13 | 1 | -94/+9 |
| | | | | Remove hand-coded montgomery reduction, use bigint_mont_redc() instead | ||||
* | Use Montgomery reduction for the important parts of PointGFp, using | lloyd | 2010-03-13 | 2 | -74/+78 |
| | | | | | code cobbled together from 1.8/InSiTo. Faster than it was in 1.9.4, but still quite slow. | ||||
* | Name args to bigint_{mul,sqr} in header | lloyd | 2010-03-13 | 1 | -5/+5 |
| | |||||
* | Give PK_Signer users the option of disabling fault protection | lloyd | 2010-03-13 | 2 | -6/+17 |
| | |||||
* | Move monty params to curve, since only depend on the prime | lloyd | 2010-03-13 | 1 | -4/+37 |
| | |||||
* | Add back code for montgomery PointGFp mult (not used atm) | lloyd | 2010-03-13 | 2 | -14/+165 |
| | |||||
* | Hide PointGFp constructors | lloyd | 2010-03-13 | 2 | -7/+14 |
| | |||||
* | Remove access to the Jacobian coordinate getters get_{x,y,z}, as well | lloyd | 2010-03-13 | 2 | -33/+9 |
| | | | | | | | | | | | | | | as the 4-argument constructor. Define operator==() in terms of the affine coordinates. Rewrite tests that assumed access to the Jacobian coodinates in terms of the affine coordinates. This change allows for using arbitrary coordinate systems in PointGFp, as long as it can convert to the normal affine coordinates (which are what is used by all ECC algorithms implemented currently, and probably all interesting ECC algorithms in general). | ||||
* | Include <netinet/in.h>; needed on FreeBSD at least | lloyd | 2010-03-10 | 1 | -1/+2 |
| |