Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | 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 |
| | |||||
* | 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). | ||||
* | Deconstify PK_Ops. It's quite reasonable that some op will want to | lloyd | 2010-03-09 | 1 | -1/+1 |
| | | | | | | | | | | | | | precompute only as needed, or will want to access some other expensive resource or etc. Change how the secret for generating blinding is done in cases where a PRNG isn't available. Use the operations public op to hide the secret, for instance the seed for a DH blinding variable is 2^x mod p. Make use of being able to mutate internal structures in the RW signer, since that does have access to a PRNG, so use it to initialize the blinder on first call to sign(). | ||||
* | Consolidate code for choosing a window size for fixed width window | lloyd | 2010-03-09 | 4 | -72/+41 |
| | | | | exponentiation algorithms. | ||||
* | Add back in blinding to RSA, RW, ElGamal, and DH. | lloyd | 2010-03-08 | 3 | -85/+0 |
| | | | | | | | | | | | | | | | | There are multiple unsatisfactory elements to the current solution, as compared to how blinding was previously done: Firstly, blinding is only used in the baseline implementations; the code using OpenSSL and GMP is not protected by blinding at all. Secondly, at the point we need to set up blinding, there is no access to a PRNG. Currently I am going with a quite nasty solution, of using a private key parameter to seed a simple PRNG constructed as: SHA-512(TS1 || private_key_param || public_key_param || TS2) I really want to fix both of these elements but I'm not sure how to do so easily. | ||||
* | Inline Engine_Core::mod_exp into singler caller, and delete | lloyd | 2010-03-05 | 1 | -2/+19 |
| | |||||
* | Make the modulus visible in Modular_Reducer | lloyd | 2010-03-05 | 1 | -0/+2 |
| | |||||
* | Force high bit in random_prime as well (done by randomize currently, but ↵ | lloyd | 2010-03-05 | 1 | -0/+3 |
| | | | | might not be later) | ||||
* | Clarify exception text on get_affine when point is zero | lloyd | 2010-03-05 | 1 | -2/+2 |
| | |||||
* | Make two variants of OS2ECP, one taking pointer + length, and other | lloyd | 2010-03-02 | 2 | -13/+19 |
| | | | | | (inlined) taking a MemoryRegion& that just forwards. This makes it possible to avoid an extra copy in ECDH::derive_key. | ||||
* | Inline some simple PointGFp functions | lloyd | 2010-03-02 | 2 | -51/+35 |
| | |||||
* | Rename PointGFp::get_jac_proj_{x,y,z} simply get_{x,y,z} | lloyd | 2010-03-02 | 1 | -3/+3 |
| | |||||
* | Allow creating uninitialized PointGFp and CurveGFps | lloyd | 2010-03-01 | 2 | -0/+10 |
| | |||||
* | Rename mult2_in_place just mult2 (double would be better but is a keyword...) | lloyd | 2010-03-01 | 2 | -6/+6 |
| | |||||
* | Simplify mult2_in_place slightly | lloyd | 2010-02-25 | 1 | -7/+3 |
| | |||||
* | Move contents of gfpmath to numbertheory. Adjust dependencies. | lloyd | 2010-02-25 | 5 | -15/+3 |
| | |||||
* | Delete gfp_element.h and remove the gfpmath tests | lloyd | 2010-02-25 | 2 | -250/+0 |
| | |||||
* | Hide MillerRabin_Test class (only used in numthry.cpp) | lloyd | 2010-02-25 | 6 | -84/+84 |
| | | | | | | Inline simple functions in Modular_Reducer Add Modular_Reducer::cube convenience function | ||||
* | Cache the Modular_Reducer of p in CurveGFp; speedup of 3-4x | lloyd | 2010-02-25 | 2 | -8/+11 |
| | |||||
* | Remove GFpElement from check_invariants, remove include | lloyd | 2010-02-25 | 1 | -20/+15 |
| | |||||
* | create_random_point was not used anywhere, so remove it | lloyd | 2010-02-25 | 2 | -28/+0 |
| | |||||
* | s/GFpElement/Modular_Reducer/ in get_affine_{x,y} | lloyd | 2010-02-25 | 1 | -14/+6 |
| | |||||
* | Convert PointGFp::operator+= to using BigInt + Modular_Reducer instead of | lloyd | 2010-02-25 | 1 | -34/+18 |
| | | | | GFpElement | ||||
* | Make PointGFp::mult2_in_place private | lloyd | 2010-02-25 | 2 | -20/+25 |
| | |||||
* | Use Modular_Reducer instead of GFpElement in operator*= | lloyd | 2010-02-25 | 1 | -13/+8 |
| | |||||
* | Inline PointGFp constructors | lloyd | 2010-02-25 | 2 | -51/+13 |
| | |||||
* | In PointGFp::operator==, compare coordinates first, then the curve | lloyd | 2010-02-25 | 1 | -4/+2 |
| | |||||
* | There was only one caller of set_z_to_one (which was get_z_to_one) and | lloyd | 2010-02-25 | 2 | -60/+24 |
| | | | | | only one caller of get_z_to_one (in operator*=). Inline into operator*= and remove. | ||||
* | Rewrite PointGFp::mult2_in_place to use plain BigInt plus a Modular_Reducer | lloyd | 2010-02-25 | 1 | -47/+29 |
| | | | | Clean up PointGFp::operator*= | ||||
* | Hide PointGFp funcs set_z_to_one and get_z_to_one | lloyd | 2010-02-25 | 1 | -15/+15 |
| | |||||
* | Name vars in Modular_Reducer decl | lloyd | 2010-02-25 | 1 | -4/+4 |
| | |||||
* | Inline GFpElement | lloyd | 2010-02-25 | 3 | -172/+121 |
| | |||||
* | Remove include of unused headers | lloyd | 2010-02-25 | 1 | -3/+0 |
| | |||||
* | Inline some simple GFpElement functions. Remove ostream << operator | lloyd | 2010-02-25 | 2 | -65/+15 |
| | |||||
* | Move Illegal_Transformation | lloyd | 2010-02-25 | 2 | -7/+7 |
| | |||||
* | Remove point_{x,y,z} funcs, hide GFpElement entirely | lloyd | 2010-02-25 | 3 | -33/+56 |
| |