Skip to content

Latest commit

 

History

History
145 lines (87 loc) · 6.61 KB

CHANGELOG.md

File metadata and controls

145 lines (87 loc) · 6.61 KB

Changelog

The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.

Under construction.

0.5.2 - 2022-03-15

Fixed

  • k256 bumped to 0.10.4 to make use of an important bugfix (see RustCrypto/elliptic-curves#529). Previous 0.5.* versions (using k256 0.10.2 with the bug) are yanked.

0.5.1 - 2022-01-22 (YANKED)

Added

  • 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)

Changed

  • 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 and SecretKeyFactoryError have been removed, and SecretKeyFactory::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 given SecretKey, KeyFrag::verify() and CapsuleFrag::verify() consume the given kfrag/cfrag, reencrypt() consumes the cfrag (but not the capsule). (#91)
  • As a consequence, KeyFrag::verify() and CapsuleFrag::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() and VerifiedCapsuleFrag::to_unverified() were renamed to unverify() 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)

Fixed

  • Some previously missed potentially secret values are zeroized in drop. (#87)

0.4.0 - 2021-12-24

Changed

  • serde support for types is now gated under the serde-support feature (not enabled by default). (#82)

Added

  • 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)

Fixed

  • Make the source distribution of Python bindings actually usable, by removing a dependency on a workspace directory. (#86)

[0.3.3] - 2021-12-10

Added

  • Github actions configured for automatic build and push of Python wheels.

Fixed

  • Fixed Python example
  • Improved/updated documentation

0.3.0 - 2021-09-15

Changed

  • SecretKey and SecretKeyFactory no longer implement SerializableToArray, but implement SerializableToSecretArray instead. Correspondingly, in the bindings these objects implement to_secret_bytes() instead of __bytes__() (for Python), and toSecretBytes() instead of toBytes() (for WASM). (#53)
  • SecretKey, SecretKeyFactory and Signer do not implement PartialEq anymore. Corresponding methods in the bindings were removed as well. (#53)
  • Bumped k256 to 0.9 and ecdsa to 0.12.2. (#53)
  • Bumped pyo3 to 0.14. (#65)
  • Reduced the size of key material in SecretKeyFactory from 64 to 32 bytes. (#64)
  • Renamed num_kfrags to shares in genereate_kfrags. (#69)
  • Renamed SecretKeyFactory::secret_key_by_label()/secret_factory_by_label() to make_key()/make_factory(). (#71)
  • Renamed remaining instances of verifying_key parameter to verifying_pk. (#71)

Added

  • 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 by getrandom (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() and seed_size(). (#64)
  • serde support for Capsule, CapsuleFrag, KeyFrag, PublicKey, and Signature. (#67)

Fixed

  • Turned off wasm-bindgen feature of getrandom crate. (#56)
  • Multiple internal changes for safe secret data handling using SecretBox. (#53)

0.2.0 - 2021-06-14

  • Initial release.