Skip to content

v0.1.2

Choose a tag to compare

@drtoxic69 drtoxic69 released this 04 Aug 10:04
· 6 commits to main since this release
v0.1.2
d3c8ce0

🔐 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