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.
0.6.0 (2026-08-08)
- cache keyring per-tenant derivation at construction via TenantKeyring (LAB-1638) (#71) (d3f0eb0)
- expose winning-key index via decrypt_indexed for rotation drain observability (LAB-1645) (#73) (d834f74)
0.5.0 (2026-08-07)
- public items EncryptionHeader, KeyRotationState, RotationAwareHeader, and ZeroKnowledgeEncryptor::rotate_key() are removed (EncryptionError::NotImplemented variant included). Use Keyring for master-key rotation.
0.4.0 (2026-07-27)
0.3.0 (2026-07-15)
0.2.1 (2026-05-31)
- seed nonce instance counter with 8 random bytes, raising cross-process collision resistance from 2^32 to 2^64 (HIGH-2/HIGH-3) (#36) (af3d5fe)
0.2.0 (2026-03-16)
0.1.1 (2025-12-18)
0.1.0 (2025-12-05)
- initial release (6dbe9b1)
-
ByteStorage: LZ4 compression with xxHash3-64 checksums
- Automatic compression/decompression
- Integrity verification on retrieval
- Decompression bomb protection (512MB limit, 1000x ratio limit)
-
ZeroKnowledgeEncryptor: AES-256-GCM encryption
- Counter-based nonce generation (prevents reuse)
- Hardware acceleration detection (AES-NI, ARM Crypto)
- Operation metrics for observability
-
Key Derivation: HKDF-SHA256 (RFC 5869)
- Domain separation for multi-use keys
- Tenant isolation via salt
- Key fingerprinting for rotation support
-
C FFI Layer: Multi-language support
- Opaque handle management
- Panic-safe error handling
- Auto-generated
cachekit.hheader
-
Security Infrastructure
- 16 fuzz targets covering all attack surfaces
- Kani formal verification proofs
- Property-based testing with proptest
cargo-denysupply chain security
- All key material zeroized on drop
- Constant-time operations for encryption via
ring - No panics in library code (Result-based error handling)
- FFI boundary hardened with
catch_unwind