Version History

Changelog

All notable changes to NoiseFramework documented here. Following Keep a Changelog and Semantic Versioning.

1.2.1

Latest2025-11-18

Added

  • benchmark.py script in repository root for comprehensive performance testing
  • docs/BENCHMARKS.md with real-world performance measurements and detailed analysis:
    • Handshake performance across different patterns (XX, NN, IK) and cipher suites
    • Transport encryption/decryption throughput for message sizes from 64 bytes to 64 KB
    • Key generation performance for Curve25519 and Curve448
    • Performance recommendations for different use cases
    • Optimization tips and best practices
    • Comparison methodology and reproducibility instructions

Changed

  • Updated README.md performance section with actual benchmark results:
    • Complete XX handshake: 558-642 µs (1,500-1,800 handshakes/sec)
    • Transport encryption: 3+ GB/s for large messages, <3 µs latency for small messages
    • Key generation: ~32,000 keypairs/sec for Curve25519
    • Added quick benchmark results table
    • Added instructions for running benchmarks yourself
    • Added link to comprehensive BENCHMARKS.md documentation

1.2.0

2025-11-17

Added

  • Exported NoiseTransport from main noiseframework package for cleaner imports
  • Exported NoiseTransport from noiseframework.transport module
  • Support for three import styles: from noiseframework import NoiseTransport, from noiseframework.transport import NoiseTransport, or from noiseframework.transport.transport import NoiseTransport

Changed

  • Updated all code examples in README.md to use cleaner imports
  • Updated all code examples in API.md to use cleaner imports
  • Improved examples to use NoiseTransport wrapper class instead of raw cipher states
  • Updated all documentation examples to explicitly pass b"" to write_message()

Fixed

  • README.md: Corrected all import statements from py_noise to noiseframework
  • README.md: Fixed Architecture section to show correct package structure
  • README.md: Fixed test coverage command
  • API.md: Fixed malformed code block
  • ARCHITECTURE.md: Updated all file path references
  • CONTRIBUTING.md: Updated all command examples

1.1.0

2025-11-16

Added

  • SECURITY.md with vulnerability reporting process
  • CONTRIBUTING.md with comprehensive contribution guidelines
  • CODE_OF_CONDUCT.md based on Contributor Covenant 2.0
  • API.md with complete API reference documentation
  • GitHub issue templates and PR template
  • Examples directory with basic_client_server.py, file_encryption.py, and simple_chat.py
  • ARCHITECTURE.md documenting internal design
  • FAQ.md with common questions and troubleshooting

Breaking Changes

Package Renamed

Renamed internal package from py_noise to noiseframework for consistency.

Old:

from py_noise import NoiseHandshake

New:

from noiseframework import NoiseHandshake

Fixed

  • Package finder in pyproject.toml now correctly looks for noiseframework*
  • CLI entry point now correctly imports the renamed module

0.1.0

Initial Release2025-11-16

Added

  • Initial project structure and configuration
  • Professional README with comprehensive documentation
  • MIT License
  • Python package configuration with pyproject.toml
  • Complete cryptographic primitives layer:
    • Diffie-Hellman: Curve25519 (X25519) and Curve448 (X448)
    • AEAD ciphers: ChaCha20-Poly1305 and AES-256-GCM
    • Hash functions: SHA-256, SHA-512, BLAKE2s, BLAKE2b with HKDF
  • Noise protocol pattern parser and validator
  • Symmetric state and cipher state implementation
  • NoiseHandshake class for managing complete handshake protocol
  • NoiseTransport class for post-handshake encrypted communication
  • Command-line interface (noiseframework CLI)
  • Comprehensive test suite with 156 tests and 92% coverage