Skip to content

v2.4.0

Latest
Compare
Choose a tag to compare
@juergw juergw released this 06 May 19:55
· 27 commits to main since this release

Tink C++ 2.4.0

Tink is a multi-language, cross-platform library that provides simple and misuse-proof APIs for common cryptographic tasks.

To get started, see the setup guide.

The complete list of changes since 2.3.0 can be found here.

New Features

  • Added APIs to import and export keys for the following key types:
    • CECPQ2 (experimental)
    • KMS AEAD
    • KMS Envelope AEAD
    • PRF-Based Key Derivation
  • Added ML-DSA-65 to Tink. Note that this uses the key generation seed (32
    bytes) to represent private keys, rather than the serialization as defined
    by the "skEncode" function in FIPS 204.
  • Added SLH-DSA-SHA2-128s to Tink, according to the standard described at
    https://csrc.nist.gov/pubs/fips/205/final.

Dependency Updates

  • Removed rapidjson dependency.
  • Use C++17 as minimum C++ version.
  • Upgraded protobuf to 29.3.
  • Upgraded rules_cc to 0.1.1
  • Upgraded rules_proto to 7.1.0
  • Upgraded platforms to 0.0.11
  • Upgraded googletest to 1.16.0
  • Upgraded boringssl to 0.20250415.0
  • Upgraded abseil-cpp to 20250127.1

Other Changes

  • Make the Key class cloneable. Note that each subclass will now have to
    implement the Clone() method.
  • Make the Parameters class cloneable. Note that each subclass will have to
    implement the Clone() method.
  • Use proto library to parse JSON serialized keysets, instead of rapidjson.
    All valid JSON-encoded keysets are still parsed the same way, but there are
    some invalid keysets that may now fail to parse with a different error.
  • Removed subtle::WycheproofUtil. Its functions use rapidjson objects as input
    or output parameters and can't be supported anymore. Users of these
    functions should copy WycheproofUtil into their own codebase.
  • Removed subtle::X25519 and related functions. To the best of our knowledge,
    there are no users of this struct and the related functions. In addition, it
    is untested. If you need this, please file an issue.
  • Added SecretData accessor method for RestrictedBigInteger.
  • Most of the Key classes are now final. These cannot be subclassed as this
    would break operator==.
  • Moved crypto::tink::util::SecretData to crypto:tink in
    tink/secret_data.h and make crypto::tink::util::SecretData a deprecated
    alias of crypto::tink::SecretData.
  • Moved away from the absl-internal absl::big_endian::Load32 and
    absl::big_endian::Store32. This is needed for Tink to work with future
    versions of absl.