ecdsa 0.15
tomato42
released this
02 Jan 16:09
·
337 commits
to master
since this release
tl;dr:
- much faster (around 20x)
- dedicated API for ECDH
Bug fixes:
from curves import *
will now correctly importBRAINPOOLP256r1
and
BRAINPOOLP320r1
curves.
New features:
- ECDH operations have a public explicit API.
- Large hashes are now supported with small curves (e.g. SHA-256 can be used
with NIST192p). VerifyingKey
now supports theprecompute()
method to further speed up
signature verification with the given instance of the key.
New API:
VerifyingKey
,SigningKey
,Public_key
,Private_key
and
CurveFp
now have__eq__
methods.ecdsa.ecdh
module andECDH
class.PointJacobi
added.VerifyingKey.verify_digest
,SigningKey.sign_digest
and
SigningKey.sign_digest_deterministic
methods now acceptallow_truncate
argument to enable use of hashes larger than the curve order.VerifyingKey
from_pem
andfrom_der
now accepthashfunc
parameter
like otherfrom*
methods.VerifyingKey
hasprecompute
method now.VerifyingKey.from_public_point
may now not perform validation of public
point whenvalidate_point=False
argument is passed to method.CurveFp
constructor now accepts theh
parameter - the cofactor of the
elliptic curve, it's used for selection of algorithm of public point
verification.
Performance:
randrange
now will now perform much fewer calls to system random number
generator.PointJacobi
introduced and used as the underlying implementation; speeds up
the library by a factor of about 20.- Library has now optional dependencies on
gmpy
andgmpy2
. When they are
available, the elliptic curve calculations will be about 3 times faster.
Maintenance:
- expected minimum version of
six
module (1.9.0) is now specified explicitly
insetup.py
and tested against. - Significantly faster test suite execution.