Releases: drtoxic69/ECC
v0.2.0
🚀 Feature Release: Elliptic Curve Diffie-Hellman (ECDH)
This release introduces a major new feature: Elliptic Curve Diffie-Hellman (ECDH) key exchange. This allows two parties to securely establish a shared secret over an insecure channel, which can then be used to derive symmetric encryption keys.
✨ New Features
- ECDH Key Exchange: A new
ecdh()method has been added to thePrivateKeyclass, providing a clean, object-oriented API for performing key agreement. - Secure Key Derivation: The shared secret is derived using a standard HMAC-based Key Derivation Function (HKDF) as specified in RFC 5869. This is the industry best practice for turning a raw shared secret into a cryptographically strong key.
- Fully Tested: The new ECDH implementation is rigorously tested to ensure correctness and that both parties always arrive at the same shared secret.
Full Changelog: v0.1.2...v0.2.0
v0.1.2
🔐 Security & Stability Release
This is a major update that makes the library production-ready. It includes critical security patches to protect against side-channel attacks and nonce-reuse vulnerabilities, along with a significant code refactor for a cleaner and more robust API.
🔐 Security Enhancements
- Constant-Time Operations: Implemented the Montgomery Ladder for all scalar multiplication operations to protect against timing-based side-channel attacks.
- Deterministic Signatures (RFC 6979): ECDSA signing now uses deterministic nonces as specified in RFC 6979. This eliminates the risk of private key exposure from a faulty random number generator.
- Non-Malleable Signatures: Enforced a "low-s" rule in all ECDSA signatures to prevent signature malleability.
✨ API & Code Quality Improvements
- Full Code Refactor: All modules (
point.py,field.py,keys.py,curve.py,ecdsa.py) have been significantly refactored for clarity, robustness, and adherence to Python best practices. - Improved API Design: The public API is now more intuitive and object-oriented. For example, signing is now done via
private_key.sign()and verification viapublic_key.verify(). - Full Type Safety: Enhanced static type hinting across the entire codebase, resolving all
pyrighterrors for a more reliable and maintainable library.
Full Changelog: v0.1.1...v0.1.2
v0.1.1
✨ Enhancements & Documentation
This is a patch release focused on improving project documentation and metadata for better usability and discovery on PyPI.
Changes
- Added a detailed
README.mdwith installation instructions and code examples. - Updated
pyproject.tomlwith a project description and other essential metadata.
Full Changelog: v0.1.0...v0.1.1
v0.1.0
🎉 Initial Release
This is the first functional release of the eccrypto library. It provides the core building blocks for elliptic curve cryptography, including the secp256k1 curve.
Features
- Implementation of core finite field (
FieldElement) and elliptic curve point (Point) arithmetic. - Support for ECDSA (Elliptic Curve Digital Signature Algorithm) for signing and verifying messages.
- Secure key pair generation (
PrivateKey,PublicKey).
Full Changelog: https://github.com/drtoxic69/ECC/commits/v0.1.0