Commit message (Collapse) | Author | Age | Files | Lines | ||
---|---|---|---|---|---|---|
... | ||||||
* | Add MultiplyAddToExt method to fields | Peter Dettman | 2014-03-10 | 6 | -2/+71 | |
| | ||||||
* | Refactor temporary variables in reductions | Peter Dettman | 2014-03-10 | 3 | -28/+30 | |
| | ||||||
* | Inline Reduce32 calls and registerize some values to avoid extra writes | Peter Dettman | 2014-03-10 | 2 | -12/+53 | |
| | ||||||
* | Use more specific Nat methods | Peter Dettman | 2014-03-10 | 1 | -2/+2 | |
| | ||||||
* | Minor improvement to reduction release-1.8.0-beta.2 | Peter Dettman | 2014-03-06 | 3 | -9/+15 | |
| | ||||||
* | Improved reduction | Peter Dettman | 2014-03-05 | 4 | -63/+101 | |
| | ||||||
* | Reduction optimization for secp256r1 | Peter Dettman | 2014-03-05 | 1 | -5/+73 | |
| | ||||||
* | Use Nat methods instead of specific Nat*.*Ext methods | Peter Dettman | 2014-03-05 | 10 | -84/+44 | |
| | | | | Reduction improvements in curve25519 and secp256r1 | |||||
* | Fix infinite loop issue when there is no sqrt | Peter Dettman | 2014-03-04 | 1 | -30/+55 | |
| | | | | Add test case to check that Sqrt returns null for non-squares | |||||
* | Remove some length-specific methods in favour of the Nat class | Peter Dettman | 2014-03-04 | 12 | -558/+487 | |
| | | | | | Add more method variations to Nat Use customized reductions in various fields | |||||
* | Just use shift methods from Nat class evverywhere | Peter Dettman | 2014-03-04 | 10 | -271/+25 | |
| | ||||||
* | Refactoring in the Nat* classes and some new method variations | Peter Dettman | 2014-03-03 | 15 | -187/+634 | |
| | | | | Improved reduction in some fields | |||||
* | Share single temp variable across calls in Sqrt() | Peter Dettman | 2014-03-03 | 1 | -10/+9 | |
| | ||||||
* | Refactor reduction methods and change scope of PExt fields | Peter Dettman | 2014-03-03 | 7 | -115/+103 | |
| | ||||||
* | Add/rename MulAddTo variations | Peter Dettman | 2014-03-03 | 3 | -2/+167 | |
| | ||||||
* | Allow for (very rare) cases where the Sqrt() algorithm needs to retry | Peter Dettman | 2014-03-02 | 1 | -36/+40 | |
| | ||||||
* | Avoid a few negations in Sqrt() | Peter Dettman | 2014-02-28 | 1 | -7/+8 | |
| | ||||||
* | Optimized Sqrt() for custom secp224r1 | Peter Dettman | 2014-02-27 | 2 | -2/+112 | |
| | ||||||
* | Equality/hashcode should ignore "excess" words | Peter Dettman | 2014-02-27 | 11 | -23/+53 | |
| | ||||||
* | Optimize Sqrt() for custom secp384r1 | Peter Dettman | 2014-02-27 | 1 | -2/+56 | |
| | ||||||
* | Optimize final adjustments in Reduce() | Peter Dettman | 2014-02-27 | 1 | -13/+4 | |
| | ||||||
* | Simplify Twice() | Peter Dettman | 2014-02-27 | 1 | -7/+3 | |
| | ||||||
* | Add custom curve for secp384r1 (P-384) | Peter Dettman | 2014-02-27 | 5 | -0/+810 | |
| | ||||||
* | Optimize final adjustments in Reduce() | Peter Dettman | 2014-02-27 | 1 | -11/+8 | |
| | ||||||
* | Round out the Nat192 methods | Peter Dettman | 2014-02-26 | 7 | -20/+275 | |
| | | | | Use Nat*.Copy methods in fields | |||||
* | Add extra arg to AddWord() and add variant of Copy() | Peter Dettman | 2014-02-26 | 2 | -6/+12 | |
| | ||||||
* | Optimization for custom curve reduction when only a few bits need reducing; ↵ | Peter Dettman | 2014-02-26 | 15 | -30/+205 | |
| | | | | used to delay reduction in point doubling. | |||||
* | Optimize Sqrt() for custom curve secp224k1 | Peter Dettman | 2014-02-26 | 1 | -2/+87 | |
| | ||||||
* | Refactoring in Sqrt() | Peter Dettman | 2014-02-26 | 1 | -14/+6 | |
| | ||||||
* | Add custom curve for secp224k1 | Peter Dettman | 2014-02-26 | 4 | -0/+675 | |
| | ||||||
* | Special handling for zero-valued scalars | Peter Dettman | 2014-02-26 | 1 | -20/+38 | |
| | | | | Some optimizations for NAF generation | |||||
* | Refactoring in Sqrt() | Peter Dettman | 2014-02-25 | 1 | -13/+12 | |
| | ||||||
* | Add custom curve for secp224r1 (P-224) | Peter Dettman | 2014-02-25 | 5 | -0/+1980 | |
| | ||||||
* | Implement the 8m + 5 case from Pocklington's sqrt algorithm (seems to be ↵ | Peter Dettman | 2014-02-25 | 1 | -7/+45 | |
| | | | | only used by secp224k1) | |||||
* | Refactoring in Nat* classes | Peter Dettman | 2014-02-24 | 6 | -101/+99 | |
| | ||||||
* | Use ToBigInteger() for A/B comparison in curve equality | Peter Dettman | 2014-02-19 | 1 | -4/+4 | |
| | ||||||
* | Delete old commented-out code | Peter Dettman | 2014-02-09 | 1 | -476/+0 | |
| | ||||||
* | Provide SumOfMultiplies as an arbitrary-length generalization of ↵ | Peter Dettman | 2014-02-09 | 1 | -0/+91 | |
| | | | | SumOfTwoMultiplies | |||||
* | Fix casts to satisfy .NET 1.1 | Peter Dettman | 2014-02-07 | 1 | -2/+2 | |
| | ||||||
* | Use parallel wNAF for sumOfTwoMultiplies | Peter Dettman | 2014-02-07 | 1 | -4/+69 | |
| | ||||||
* | Small optimization for width 4 | Peter Dettman | 2014-02-07 | 1 | -17/+19 | |
| | ||||||
* | Index precomputation info by name | Peter Dettman | 2014-02-07 | 5 | -14/+36 | |
| | ||||||
* | Fix incomplete port | Peter Dettman | 2014-02-06 | 1 | -1/+1 | |
| | ||||||
* | A few improvements to the fixed-point comb | Peter Dettman | 2014-02-06 | 2 | -10/+28 | |
| | ||||||
* | Initial work on the Curve25519 field implementation | Peter Dettman | 2014-02-06 | 3 | -19/+299 | |
| | ||||||
* | Initial work on a fixed-point comb multiplier | Peter Dettman | 2014-02-04 | 3 | -0/+126 | |
| | ||||||
* | For repeated doublings, use jacobian-modified coordinates internally ↵ | Peter Dettman | 2014-02-04 | 1 | -1/+83 | |
| | | | | irrespective of curve coordinates | |||||
* | Implement Karatsuba multiply/square on 512-bit numbers and use as basis for ↵ | Peter Dettman | 2014-02-03 | 4 | -63/+577 | |
| | | | | P-521 multiply/square | |||||
* | Minor optimization for secp521r1 point doubling | Peter Dettman | 2014-02-02 | 3 | -5/+48 | |
| | ||||||
* | Add custom curve for secp521r1 (P-521) | Peter Dettman | 2014-02-01 | 7 | -109/+734 | |
| | ||||||
* | Add support for delayed modular reduction | Peter Dettman | 2014-02-01 | 3 | -35/+314 | |
| | ||||||
* | Reformatting | Peter Dettman | 2014-02-01 | 1 | -2/+0 | |
| | ||||||
* | Reformat | Peter Dettman | 2014-02-01 | 3 | -6/+0 | |
| | ||||||
* | Fix IncExt | Peter Dettman | 2014-02-01 | 1 | -1/+1 | |
| | ||||||
* | Rename locals in Reduce() methods | Peter Dettman | 2014-02-01 | 2 | -33/+33 | |
| | ||||||
* | Optimize Reduce() method | Peter Dettman | 2014-02-01 | 1 | -8/+16 | |
| | ||||||
* | Optimize Reduce() method | Peter Dettman | 2014-02-01 | 1 | -6/+17 | |
| | ||||||
* | Fix Nat*.Gte methods | Peter Dettman | 2014-02-01 | 3 | -6/+6 | |
| | ||||||
* | Make Dec/Inc/IncExt methods work at the full length and change assertions ↵ | Peter Dettman | 2014-01-31 | 3 | -57/+55 | |
| | | | | accordingly | |||||
* | Avoid modifying the input to the Reduce() methods | Peter Dettman | 2014-01-31 | 4 | -50/+48 | |
| | ||||||
* | Improve reduction speed for secp192k1 and secp256k1 custom fields | Peter Dettman | 2014-01-31 | 4 | -16/+126 | |
| | ||||||
* | Add custom curves for secp192k1 and secp192r1 (P-192) | Peter Dettman | 2014-01-31 | 9 | -0/+2169 | |
| | ||||||
* | Refactoring | Peter Dettman | 2014-01-31 | 5 | -10/+8 | |
| | ||||||
* | Unroll MulWordAddExt | Peter Dettman | 2014-01-31 | 1 | -8/+24 | |
| | ||||||
* | Fix final step of Reduce() | Peter Dettman | 2014-01-30 | 1 | -10/+9 | |
| | ||||||
* | Fix GetBit range-check | Peter Dettman | 2014-01-30 | 1 | -1/+1 | |
| | ||||||
* | Formatting | Peter Dettman | 2014-01-30 | 1 | -10/+0 | |
| | ||||||
* | Take advantage of special prime modulus to optimize sqrt | Peter Dettman | 2014-01-30 | 2 | -4/+107 | |
| | ||||||
* | Add SquareN to perform repeated modular squaring | Peter Dettman | 2014-01-30 | 2 | -0/+30 | |
| | ||||||
* | Cleanup various warnings, and reformatting | Peter Dettman | 2014-01-29 | 2 | -2/+3 | |
| | ||||||
* | Remove unnecessary using statement | Peter Dettman | 2014-01-28 | 1 | -2/+0 | |
| | ||||||
* | Several optimizations and make notes of possible delayed reductions | Peter Dettman | 2014-01-28 | 1 | -17/+28 | |
| | ||||||
* | Refactoring | Peter Dettman | 2014-01-28 | 1 | -2/+1 | |
| | ||||||
* | Avoid division when decompressing a lambda-projective point | Peter Dettman | 2014-01-28 | 1 | -9/+5 | |
| | ||||||
* | Implement multi-squaring in-place and use for F2m sqrt() | Peter Dettman | 2014-01-28 | 2 | -40/+39 | |
| | ||||||
* | Fix and re-enable twicePlus for lambda-projective coordinates | Peter Dettman | 2014-01-28 | 1 | -59/+73 | |
| | ||||||
* | Port point-detaching stuff from Java | Peter Dettman | 2014-01-28 | 3 | -0/+27 | |
| | ||||||
* | Port from Java order/cofactor for all curves | Peter Dettman | 2014-01-28 | 3 | -33/+50 | |
| | ||||||
* | Port of latest EC multipliers from Java | Peter Dettman | 2014-01-27 | 13 | -43/+255 | |
| | ||||||
* | Make class internal | Peter Dettman | 2014-01-26 | 1 | -1/+1 | |
| | ||||||
* | Port custom curve for secp256r1 from Java | Peter Dettman | 2014-01-26 | 4 | -0/+710 | |
| | ||||||
* | Tidy up comments | Peter Dettman | 2014-01-26 | 2 | -6/+2 | |
| | ||||||
* | Port custom curve for secp256k1 from Java | Peter Dettman | 2014-01-26 | 5 | -0/+1434 | |
| | ||||||
* | Add diagnostics | Peter Dettman | 2014-01-26 | 1 | -37/+42 | |
| | ||||||
* | Fix coord access in Negate() | Peter Dettman | 2014-01-26 | 1 | -36/+8 | |
| | | | | Reformatting | |||||
* | Refactor DecompressPoint | Peter Dettman | 2014-01-26 | 1 | -8/+3 | |
| | ||||||
* | Port of jacobian/-modified coordinates from Java | Peter Dettman | 2014-01-26 | 2 | -69/+354 | |
| | | | | Make jacobian-modified the default coordinates for Fp | |||||
* | Make Barrett reduction available for more prime moduli | Peter Dettman | 2014-01-26 | 1 | -12/+6 | |
| | ||||||
* | Adjust first-digit optimization to not be so conservative | Peter Dettman | 2014-01-26 | 1 | -12/+7 | |
| | ||||||
* | Port latest Java fixes for lambda-projective and make it the default for F2m | Peter Dettman | 2014-01-25 | 2 | -68/+92 | |
| | ||||||
* | Implement Sqrt in F2m | Peter Dettman | 2014-01-25 | 1 | -1/+9 | |
| | ||||||
* | Add 0 guard in ModInverse | Peter Dettman | 2014-01-25 | 1 | -0/+4 | |
| | ||||||
* | Implement homogeneous and lambda-projective coordinate systems in F2m curves | Peter Dettman | 2014-01-25 | 2 | -67/+428 | |
| | ||||||
* | Port of AddOne method(s) from Java | Peter Dettman | 2014-01-25 | 1 | -0/+16 | |
| | ||||||
* | Default to COORD_HOMOGENEOUS for Fp | Peter Dettman | 2014-01-24 | 1 | -1/+1 | |
| | ||||||
* | Implement very basic Barrett reduction as alternative to very slow ↵ | Peter Dettman | 2014-01-24 | 1 | -19/+41 | |
| | | | | BigInteger.Mod | |||||
* | Implementation of homogeneous coordinates for Fp | Peter Dettman | 2014-01-24 | 3 | -966/+1324 | |
| | | | | | Various changes to point methods to deal with non-affine points Changes in client code and tests to apply point normalization | |||||
* | Optimization in ModReduce | Peter Dettman | 2014-01-24 | 1 | -3/+6 | |
| | ||||||
* | Track carries for a, b to avoid unnecessary add/sub of prime modulus | Peter Dettman | 2014-01-24 | 1 | -17/+42 | |
| | ||||||
* | Fix return type in SubFromExt | Peter Dettman | 2014-01-24 | 1 | -4/+4 | |
| | ||||||
* | Track uvLen to reduce shifting for small operands | Peter Dettman | 2014-01-24 | 1 | -9/+18 | |
| | ||||||
* | Move method | Peter Dettman | 2014-01-24 | 1 | -16/+16 | |
| | ||||||
* | Port of several interrelated things from Java build: | Peter Dettman | 2014-01-23 | 11 | -578/+1056 | |
| | | | | | | | | - Z coordinates for points - More point normalization code - Curve management of point precomp info - Add WNafUtilities and use in multipliers/ECAlgorithms - Make various fields/classes protected/public | |||||
* | Use ImportPoint to make sure points are on same curve | Peter Dettman | 2014-01-23 | 1 | -15/+49 | |
| | | | | Add MontgomeryTrick method | |||||
* | Use residue-based reduction for more curves, in particular P-256 | Peter Dettman | 2014-01-23 | 1 | -2/+8 | |
| | ||||||
* | Add Nat/Mod classes and use instead of (slow) BigInteger.ModInverse ↵ | Peter Dettman | 2014-01-23 | 4 | -495/+636 | |
| | | | | implementation for FpFieldElement | |||||
* | Avoid unnecessary multiplication in final ExtEuclid iteration | Peter Dettman | 2014-01-23 | 1 | -32/+16 | |
| | ||||||
* | Add foundations for supporting other coordinate systems | Peter Dettman | 2014-01-22 | 2 | -85/+226 | |
| | | | | | Add curve configuration Multipliers now live on the curve instead of points | |||||
* | Make public | Peter Dettman | 2014-01-22 | 2 | -2/+2 | |
| | ||||||
* | Override methods to optimize for LongArray | Peter Dettman | 2014-01-22 | 1 | -0/+20 | |
| | ||||||
* | Use new Math.Field classes in EC curves, and avoid casting in client code | Peter Dettman | 2014-01-22 | 2 | -162/+161 | |
| | ||||||
* | Implement TwicePlus optimization in Fp curves | Peter Dettman | 2014-01-22 | 3 | -312/+439 | |
| | ||||||
* | Port LongArray from Java and use in F2mFieldElement | Peter Dettman | 2014-01-22 | 2 | -155/+2079 | |
| | ||||||
* | Fix Equals methods | Peter Dettman | 2014-01-21 | 2 | -27/+28 | |
| | ||||||
* | Add new classes in Math.Field and some other EC-related stuff from Java | Peter Dettman | 2014-01-21 | 8 | -0/+255 | |
| | ||||||
* | Make typed Equals methods public (and virtual) | Peter Dettman | 2014-01-21 | 1 | -3/+3 | |
| | ||||||
* | Bring Fp field element code mostly up-to-date with Java version | Peter Dettman | 2014-01-21 | 2 | -778/+800 | |
| | ||||||
* | Registerize top accumulator word in Montgomery multiplication/squaring | Peter Dettman | 2014-01-03 | 1 | -6/+12 | |
| | ||||||
* | Fix tabs | Peter Dettman | 2014-01-03 | 1 | -2128/+2128 | |
| | ||||||
* | Use Negate() to simplify | Peter Dettman | 2013-12-05 | 1 | -1/+1 | |
| | ||||||
* | Add ECFieldElement.GetEncoded() method | Peter Dettman | 2013-12-05 | 1 | -2/+7 | |
| | ||||||
* | Always apply sign guard | Peter Dettman | 2013-12-03 | 1 | -4/+4 | |
| | ||||||
* | Initial import of old CVS repository | Peter Dettman | 2013-06-28 | 17 | -0/+8286 | |