The format is based on Keep a Changelog and this project adheres to Semantic Versioning.
Given a version number MAJOR.MINOR.PATCH, increment the:
MAJOR version when you make incompatible API changes MINOR version when you add functionality in a backwards-compatible manner PATCH version when you make backwards-compatible bug fixes
- dropped support for legacy format (yaml)
- added hard limit to data which can be signed with RSA signature to 512 bytes
- added explicit check against base64 RFC 2045 encoding, rendering it as incompatible (the only supported base64 is a URL safe variant)
- Added
required forwardable
clause to enforce initialization of EncryptedDataWithDerivedKey::Forwardable
- Added BSON based serialization as default format
- Added compatibility test for different Cryppo ports e.g Cryppo-js
- Supports legacy serialization for backward compatibility
- RSA signing an verifying
- RSA signing an verifying
- Added serialization and deserialization of encrypted data
- Updated README with serialization instructions
- Fix misspelled error message in EncryptionKey#raise_serialization_error
- Fixed spelling of UnsupportedKeyDerivationStrategy
- When using the
Pbkdf2Hmac
derivation strategy, keys that are wrapped inEnryptionKey
are now unwrapped to prevent theCoercionOfEncryptedKeyToString
error being raised.
- Fixed wrong number of arguments being passed to
EncryptionValues::EncryptedData
inCryppo.to_encrypted_data_value
EnryptionStrategy
andKeyDerivationStrategy
names are now derived from the class name (excluding the module name)
- Errors of type
Cryppo::Error
raised during an encryption/decryption operation no longer get reraised asEncryptionError
orDecryptionError
. As an example, attempting to encrypt aEncryptionValues::EncryptionKey
should raise aCoercionOfEncryptedKeyToString
error, however, it was being converted to anEncryptionError
- The initial implementation of the Cryppo lib. Includes:
- Encryption strategies:
- Aes256Gcm
- Aes256Ofb
- Rsa4096
- Key derivation strategies:
- Pbkdf2Hmac
- Wrapper objects:
- DerivedKey
- EncryptedData
- EncryptedDataWithDerivedKey
- EncryptionKey
- Basic encryption and decryption implementations:
Cryppo.encrypt
Cryppo.encrypt_with_derived_key
Cryppo.decrypt
Cryppo.decrypt_with_derived_key
Cryppo.generate_encryption_key
- Basic rspec tests
- Encryption strategies: