The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
Under construction.
0.5.2 - 2022-03-15
k256
bumped to 0.10.4 to make use of an important bugfix (see RustCrypto/elliptic-curves#529). Previous 0.5.* versions (usingk256
0.10.2 with the bug) are yanked.
0.5.1 - 2022-01-22 (YANKED)
- WASM bindings are exposed as a feature
bindings-wasm
in the main crate, to allow dependent crates to create their own WASM bindings and re-export some WASM-wrapped Umbral types. (#78)
0.5.0 - 2022-01-19 (YANKED)
k256
dependency bumped to 0.10 (and to match it,chacha20poly1305
to 0.9,elliptic-curve
to 0.11,ecdsa
to 0.13,signature
to 1.4, MSRV to 1.56, and Rust edition to 2021). (#87)- ABI changed because of the internal change in hashing to scalars (we can hash to non-zero scalars now). Correspondingly,
OpenReencryptedError::ZeroHash
andSecretKeyFactoryError
have been removed, andSecretKeyFactory::make_key()
was made infallible. (#87) - Internal cloning in the library methods was eliminated, and, as a result, several methods now consume the given objects. Namely:
Signer::new()
consumes the givenSecretKey
,KeyFrag::verify()
andCapsuleFrag::verify()
consume the given kfrag/cfrag,reencrypt()
consumes the cfrag (but not the capsule). (#91) - As a consequence,
KeyFrag::verify()
andCapsuleFrag::verify()
return the original frag on error (as a tuple with the error itself), for logging purposes (since the original object is not available anymore). (#91) VerifiedKeyFrag::to_unverified()
andVerifiedCapsuleFrag::to_unverified()
were renamed tounverify()
and consume the corresponding frag. (#91)- Using the IETF standard to hash to point instead of a custom implementation (and bumps
k256
to 0.10.2). Changes the format of all the library's objects! (#92)
- Some previously missed potentially secret values are zeroized in drop. (#87)
0.4.0 - 2021-12-24
serde
support for types is now gated under theserde-support
feature (not enabled by default). (#82)
- Python bindings are exposed as a feature
bindings-python
in the main crate, to allow dependent crates to create their own Python bindings and re-export some Python-wrapped Umbral types. (#74) KeyFrag::skip_verification()
,VerifiedKeyFrag::to_unverified()
,CapsuleFrag::skip_verification()
,VerifiedCapsuleFrag::to_unverified()
, and the corresponding methods in Python and WASM bindings. (#84)
- Make the source distribution of Python bindings actually usable, by removing a dependency on a workspace directory. (#86)
- Github actions configured for automatic build and push of Python wheels.
- Fixed Python example
- Improved/updated documentation
0.3.0 - 2021-09-15
SecretKey
andSecretKeyFactory
no longer implementSerializableToArray
, but implementSerializableToSecretArray
instead. Correspondingly, in the bindings these objects implementto_secret_bytes()
instead of__bytes__()
(for Python), andtoSecretBytes()
instead oftoBytes()
(for WASM). (#53)SecretKey
,SecretKeyFactory
andSigner
do not implementPartialEq
anymore. Corresponding methods in the bindings were removed as well. (#53)- Bumped
k256
to0.9
andecdsa
to0.12.2
. (#53) - Bumped
pyo3
to0.14
. (#65) - Reduced the size of key material in
SecretKeyFactory
from 64 to 32 bytes. (#64) - Renamed
num_kfrags
toshares
ingenereate_kfrags
. (#69) - Renamed
SecretKeyFactory::secret_key_by_label()
/secret_factory_by_label()
tomake_key()
/make_factory()
. (#71) - Renamed remaining instances of
verifying_key
parameter toverifying_pk
. (#71)
- Added separate entry points for Webpack and Node.JS in the WASM bindings, and added examples for both of these scenarios. (#60)
SecretBox
struct, a wrapper making operations with secret data explicit and ensuring zeroization on drop. (#53)- Feature
default-rng
(enabled by default). When disabled, the library can be compiled on targets not supported bygetrandom
(e.g., ARM), but only the functions taking an explicit RNG as a parameter will be available. (#55) - Added benchmarks for the main usage scenario and a feature
bench-internals
to expose some internals for benchmarking. (#54) - Added
VerifiedCapsuleFrag::from_verified_bytes()
. (#63) - Added
SecretKeyFactory::secret_key_factory_by_label()
. (#64) - Added
SecretKeyFactory::from_secure_randomness()
andseed_size()
. (#64) serde
support forCapsule
,CapsuleFrag
,KeyFrag
,PublicKey
, andSignature
. (#67)
- Turned off
wasm-bindgen
feature ofgetrandom
crate. (#56) - Multiple internal changes for safe secret data handling using
SecretBox
. (#53)
0.2.0 - 2021-06-14
- Initial release.