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.
- Precompiled native gem build pipeline (fat gems) for faster installs
- Additional algorithm ext points (potential future hash additions)
0.0.3 - 2025-08-08
- Hex helper methods:
sha1_hex,sha256_hex,sha512_hex,pbkdf2_hmac_hex - Constant-time
secure_comparefor derived key comparison - Soft iteration warning threshold (configurable)
- Executable benchmark script:
benchmark_fastpbkdf2
- README updates: hex usage, iteration threshold, secure_compare, upstream integrity procedure
- Version bump to 0.0.3 (no breaking changes)
0.0.2 - 2025-08-08
- Argument validation hardening in C extension (iteration and dklen bounds)
- Derived key length safety cap (256MB) to avoid pathological allocation
- RubyGems MFA metadata (
rubygems_mfa_required = true)
- Rake
upstream_statuspath now matches actualvendor/fastpbkdf2 - README installation example updated to current version
- Unified integer coercion via
rb_to_intandNUM2ULONG - Consistent error messaging across algorithms
- Clarified validation semantics and internal comments
- Noted upstream submodule commit:
3c568957 (v1.0.0-8-g3c56895)
- No public API changes; backward compatible
0.0.1 - 2025-07-25
- Initial release of ruby-fastpbkdf2 gem
- Ruby C extension bindings for fastpbkdf2 C library
- Support for PBKDF2-HMAC-SHA1, SHA256, and SHA512 algorithms
- Short method aliases:
FastPBKDF2.sha1,FastPBKDF2.sha256,FastPBKDF2.sha512 - Descriptive method names:
FastPBKDF2.pbkdf2_hmac_sha1, etc. - Generic interface:
FastPBKDF2.pbkdf2_hmac(algorithm, ...) - Comprehensive test suite with 94% coverage (50 tests)
- Performance benchmarks showing 1.47x speedup over OpenSSL
- Cross-platform compilation support (macOS, Linux, Windows)
- CI/CD pipeline with GitHub Actions
- Code quality tooling with qlty and RuboCop
- Memory leak prevention and proper C/Ruby memory management
- Full input validation and error handling
- Compatible with Ruby 2.7+
- 1.47x faster than Ruby's built-in OpenSSL PBKDF2 implementation
- Optimized for iOS backup key derivation scenarios
- Efficient memory usage with proper cleanup
- Comprehensive README with usage examples
- API documentation with parameter descriptions
- Development setup and contribution guidelines
- Performance benchmarks and use cases