Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | Rename mp_amd64_msvc to mp_msvc64 since it supports both AMD64 and | lloyd | 2010-08-25 | 3 | -2/+2 |
| | | | | | IA-64 (and, hypothetically, any other 64 bit CPU Visual C++ might target in the future). | ||||
* | Also allow clang with 32-bit assembly code, everything seems to work | lloyd | 2010-08-08 | 1 | -0/+1 |
| | | | | fine with latest SVN. | ||||
* | Clang understands at least some GCC inline asm syntax as well as what | lloyd | 2010-08-08 | 1 | -0/+1 |
| | | | | an .S file is, so allow it for x86-64. Tested/works with Clang SVN. | ||||
* | Make round_up and round_down templates instead of fixed to use u32bits | lloyd | 2010-06-29 | 2 | -6/+6 |
| | |||||
* | Doxygen | lloyd | 2010-06-22 | 1 | -5/+17 |
| | |||||
* | Doxygen | lloyd | 2010-06-21 | 1 | -3/+7 |
| | |||||
* | Doxygen | lloyd | 2010-06-21 | 1 | -13/+92 |
| | |||||
* | Use mode(TI) operations to get access to MIPS 64-bit multiply. | lloyd | 2010-06-17 | 1 | -1/+4 |
| | | | | Required after GCC 4.4 | ||||
* | More Doxygen | lloyd | 2010-06-16 | 1 | -2/+9 |
| | |||||
* | Doxygen for divide.h | lloyd | 2010-06-16 | 1 | -1/+11 |
| | |||||
* | More Doxygen updates. Also, don't expose divide() in numthry.h | lloyd | 2010-06-16 | 2 | -38/+75 |
| | | | | anymore, only in divide.h | ||||
* | More BigInt Doxygen comment updates | lloyd | 2010-06-16 | 1 | -19/+20 |
| | |||||
* | Cleanup some BigInt doxygen comments | lloyd | 2010-06-16 | 1 | -31/+44 |
| | |||||
* | Replace "@return a blah" and "@return the blah" with just "@return blah" | lloyd | 2010-06-16 | 1 | -2/+2 |
| | |||||
* | More Doxygen updates/fixes | lloyd | 2010-06-15 | 4 | -7/+21 |
| | |||||
* | Fix a few hundred Doxygen warnings | lloyd | 2010-06-15 | 1 | -4/+11 |
| | |||||
* | Include generic mp_asmi.h for MSVC | lloyd | 2010-06-11 | 2 | -0/+2 |
| | | | | | | | Don't use /EHc; it says "C" functions are nothrow, which is not true for bigint_sub2_rev. Include needed <intrin.h> for mp_asm.h | ||||
* | Have to add it as explicit dep in bigint | lloyd | 2010-06-11 | 1 | -1/+1 |
| | |||||
* | Add (untested) support for VC++'s _umul128 intrinsic, which apparently | lloyd | 2010-06-11 | 2 | -0/+76 |
| | | | | works on both x86-64 and ia64. Will allow using 64-bit limbs on Windows. | ||||
* | In BigInt::bits, cache sig_words() result instead of calling twice | lloyd | 2010-06-07 | 1 | -2/+4 |
| | |||||
* | Replace PointGFp::check_invaraints, which would either return silently | lloyd | 2010-03-19 | 2 | -13/+17 |
| | | | | | | | | | | | or throw an exception, with PointGFp::on_the_curve, which returns a bool. Update callers. This showed several cases where check_invaraints was being called multiple times, for instance when decoding a point with OS2ECP, check_invaraints was called; many callers of OS2ECP would then call check_invaraints again on the same object. | ||||
* | A number of changes to primality tests: | lloyd | 2010-03-19 | 5 | -167/+45 |
| | | | | | | | | | | | | | | Use 64 bit nonces in the Miller-Rabin test, instead of 40 bits. Rename check_prime to quick_check_prime and is_prime to check_prime Remove some internal functions which weren't used outside the primality test code, along with the prime products table. For quick checking, instead of doing Miller-Rabin with fixed base 2, do a small number of randomized tests. Always use random bases instead of the first n primes. | ||||
* | 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 |
| | |||||
* | 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 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 |
| | |||||
* | 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 |
| | |||||
* | 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 |
| |