Pure-Python ECC implementation providing ECDSA signature creation and verification, ECDH shared secret key agreement, and EdDSA support (Ed25519 and Ed448). Useful for generating key pairs, signing and verifying messages, and deriving a shared secret from exchanged public keys.
Project status
- The source appears actively maintained, with a recent GitHub push on 2026-03-26 and a latest update (python-ecdsa 0.19.2) described as a security and robustness improvement to DER parsing.
- Update cadence is irregular but ongoing, with updates around 2026-03-26 (0.19.2), 2025-03-13 (0.19.1), and 2024-04-08 (0.19.0), suggesting roughly annual to 1.5 year intervals recently.
AI summary generated 2 weeks ago
Recent updates
python-ecdsa-0.19.2
2 months agoRelease 0.19.2 is primarily a security and robustness update for DER parsing. It adds explicit bounds checking so truncated DER buffers are detected and reported consistently during OCTET STRING, constructed, and implicit element parsing.
Securitypython-ecdsa-0.19.1
3/13/2025ecdsa 0.19.1 adds DER IMPLICIT encoding and decoding helpers, and includes several arithmetic fixes related to elliptic curves with edge-case points (notably around zero values). The release also updates test coverage for these edge cases and adjusts some warning text and demo output formatting.
Featurespython-ecdsa-0.19.0
4/8/2024python-ecdsa 0.19.0 adds support for the twisted Brainpool curves (the BRAINPOOLP*t1 family) and introduces an SSH serialization API via `to_ssh`. It also adds deprecation warnings for `int_to_string`, `string_to_int`, and `digest_integer`, and updates internals for newer Python versions.
Featurespython-ecdsa-0.18.0
7/9/2022python-ecdsa 0.18.0 adds EdDSA support for Ed25519 and Ed448, including key encoding support (PKCS#8 and public key files) and point precomputation. It also introduces new low-level Twisted Edwards types and a `curve_by_name()` helper for curve lookup. The release notes call out improved handling of malformed curve parameters, changing the raised error type.
BreakingFeaturespython-ecdsa-0.18.0b2
1/5/2022ecdsa 0.18.0 beta2 adds EdDSA point precomputation support and includes a couple of maintenance and bug fix items from beta1. The most substantial code change is in the Edwards curve point implementation, where generator points can now precompute data used for faster repeated scalar multiplications.
Featurespython-ecdsa-0.18.0b1
8/3/2021ecdsa 0.18.0 beta1 adds experimental EdDSA (Ed25519, Ed448) signing and verification support, including new curve representations for Twisted Edwards parameters and points. The release also adds Ed25519 and Ed448 curve objects to the public API and introduces an internal SHAKE-256 implementation used by Ed448.
Featurespython-ecdsa-0.17.0
5/27/2021ecdsa 0.17.0 adds support for reading and writing keys that explicitly encode curve parameters, along with more flexible point encoding validation during key loading. It also expands the set of supported curves, improves point parsing via a shared AbstractPoint implementation, and includes several correctness fixes around curve parameter handling and point/key equality.
Featurespython-ecdsa-0.16.1
11/12/2020python-ecdsa 0.16.1 adds an API enhancement for verification precomputation, introducing a lazy mode for deferring costly scalar multiplication table generation until first use. It also improves performance by deferring generator table computation and includes a fix for incorrect handling when the hash output bit length exceeds the curve order bit length, particularly for curves whose order bit length is not a multiple of 8.
Featurespython-ecdsa-0.16.0
8/27/2020python-ecdsa 0.16.0 adds PKCS#8 support for reading and writing private keys, and extends encoding and signature verification APIs. It also includes fixes for edge-case signature calculation and makes PointJacobi pickleable, plus a number of maintenance and test suite improvements.
Featurespython-ecdsa-0.15
1/2/2020python-ecdsa 0.15 focuses on major performance improvements (around 20x via PointJacobi) and introduces a public ECDH API. It also adds quality-of-life API enhancements such as precomputation support, allow_truncate for digest-based signing/verification, and equality methods on key/curve types.
Features