Tink 1.4.0
Tink is a multi-language, cross-platform library that provides simple and misuse-proof APIs for common cryptographic tasks.
This is Tink 1.4.0.
The complete list of changes since 1.3.0 can be found here.
What's new
Security fixes
This release fixes the following potential security issues, affected users are recommended to upgrade.
-
Quan Nguyen of Snap Inc. found that AES-CTR-HMAC-AEAD keys and the EncryptThenAuthenticate subtle implementation may be vulnerable to chosen-ciphertext attacks. An attacker can generate ciphertexts that bypass the HMAC verification if and only if all of the following conditions are true:
- Tink C++ is used on systems where size_t is a 32-bit integer. This is usually the case on 32-bit machines.
- The attacker can specify long (>= 2^29 bytes ~ 536MB) associated data.
-
Streaming AEAD implementations encrypt the plaintext in segments. Tink uses a 4-byte segment counter. When encrypting a stream consisting of more than 2^32 segments, the segment counter might overflow and lead to leakage of key material or plaintext. This problem was found in the Java and Go implementations of the AES-GCM-HKDF-Streaming key type.