Changelog
View SourceAll 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]
Breaking Changes
- Encryption key management: Encryption keys must now be provided at initialization via
NoNoncense.init/1using the:base_keyoption (or individual:key64,:key96,:key128options). Keys are no longer passed toencrypted_nonce/2. - Default encryption algorithm changed: The default encryption algorithm for 64-bit and 96-bit nonces has been changed from
:des3to:blowfishfor better performance and security. - Function signature change:
encrypted_nonce/3signature changed fromencrypted_nonce(name \\ __MODULE__, bit_size, key)toencrypted_nonce(name \\ __MODULE__, bit_size).
Added
- Speck cipher support: Added optional support for the Speck cipher family via the
speck_exdependency, providing native block sizes for 64-bit, 96-bit, and 128-bit nonces with excellent performance. - Algorithm selection: New options
:cipher64,:cipher96, and:cipher128inNoNoncense.init/1allow choosing encryption algorithms per nonce size.- 64/96 bits:
:blowfish(default),:des3and:speck - 128 bits:
:aes(default) and:speck
- 64/96 bits:
- Key derivation: Automatic key derivation from
:base_keyusing PBKDF2-HMAC-SHA256, eliminating the need to manage separate keys for each nonce size.
Changed
- Performance improvement: Pre-initialization of encryption ciphers at startup provides huge performance gains.
- Default algorithms: 64-bit and 96-bit nonces now default to
:blowfishinstead of:des3for better performance and security.
Migration Guide
See MIGRATION.md for detailed migration instructions.
[0.0.1 - 0.0.7]
Initial releases, changes were mainly performance improvements.