Skip to content

Releases: drtoxic69/ECC

v0.2.0

04 Aug 18:01
v0.2.0
60b4aae

Choose a tag to compare

🚀 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 the PrivateKey class, 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

04 Aug 10:04
v0.1.2
d3c8ce0

Choose a tag to compare

🔐 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 via public_key.verify().
  • Full Type Safety: Enhanced static type hinting across the entire codebase, resolving all pyright errors for a more reliable and maintainable library.

Full Changelog: v0.1.1...v0.1.2

v0.1.1

04 Aug 09:05
v0.1.1
b150c7e

Choose a tag to compare

✨ 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.md with installation instructions and code examples.
  • Updated pyproject.toml with a project description and other essential metadata.

Full Changelog: v0.1.0...v0.1.1

v0.1.0

04 Aug 09:04
v0.1.0
29a24c9

Choose a tag to compare

🎉 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