Replace BigInt based elliptic curve library
randombit opened this issue · comments
Jack Lloyd commented
Botan 3.5.0
- Initial pcurves (point arithmetic, fixed curve params) - that's #3979
- Add
EC_Scalar
andEC_AffinePoint
types and implement algorithms using them #4042 - Support for providing parameterized curves, where we eg compute Montgomery params at runtime. This is required not just for user provided/application specific curves but also I don't think it's worthwhile to provide the fully parameterized/hardcoded support for obscure curves like secp160r1.
In this release pcurves is really just used for hash to curve
Botan 3.6.0
- Convert EC keys internally to store
EC_Scalar
andEC_AffinePoint
instead ofBigInt
/EC_Point
- Bridge between
EC_Scalar
/EC_AffinePoint
and pcurves - Deprecate all the functionality that existed just to support elliptic curves using
BigInt
, egmod_sub
,ct_reduce_below
, many more.
Botan 3.6.0 or later. Nice optimizations but not critical
- Figure out how to speed up inversions. Either searching for addition chains at compile time and/or providing a way of conveying a specific addition chain where a good one is known.
- Specific field reduction support for P-256, P-384, secp256k1, NUMS