Changelog
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
[1.0.0] - 2025-07-19
Added
- Initial Release: Complete Montgomery reduction implementation
- Core Functionality:
MontgomeryReduction.of/2
function with configurable radix - Input Validation: Comprehensive error handling for invalid moduli and inputs
- Bitwise Optimizations: Efficient implementation using bitwise operations
- Pattern Matching: Proper function clauses with guard conditions
- Documentation: Complete module and function documentation with examples
- Type Specifications: Full type specs for better development experience
- Project Setup: Initial project setup with comprehensive development tooling
Features
- Support for custom Montgomery radix sizes (default: 256 bits)
- Efficient modular arithmetic without expensive division operations
- Optimized for cryptographic applications with large numbers
- Comprehensive error messages for debugging
- Mathematical background and performance considerations in documentation
Technical Details
- Uses
ModularInverse
for efficient n_prime calculation - Implements proper Montgomery reduction algorithm with bitwise operations
- Supports odd modulus requirement with validation
- Handles overflow conditions with appropriate error messages
- Returns function closure for repeated reduction operations
Documentation
- Comprehensive README with usage examples and mathematical background
- Complete API documentation with parameter descriptions
- Performance considerations for cryptographic applications
- Academic references and citations
- Contributing guidelines and license information
Development
- Full development tooling setup with code quality checks
- Comprehensive test suite
- Documentation generation with ExDoc
- Static analysis with Dialyzer
- Spell checking and code formatting
Dependencies
- Added
binary_gcd
for efficient GCD calculations - Added
modular_inverse
for modular multiplicative inverse operations - Added
nstandard
for development tooling - Added
ex_doc
for documentation generation - Added
dialyxir
for static analysis - Added
credo
for code quality checks - Added
spellweaver
for spell checking
Version History
1.0.0 (Initial Release)
- Complete Montgomery reduction implementation
- Comprehensive documentation and examples
- Full development tooling setup
- Ready for production use in cryptographic applications
Contributing
When contributing to this project, please update this changelog to reflect your changes. Follow the format established above and include:
- Added: for new features
- Changed: for changes in existing functionality
- Deprecated: for soon-to-be removed features
- Removed: for now removed features
- Fixed: for any bug fixes
- Security: in case of vulnerabilities