Tink is a multi-language, cross-platform library that provides an easy, simple, secure, and agile API for common cryptographic tasks.
This is the second release. Like the first release, Java is still the only officially supported language. Tink for C++, Objective-C and Go are working (C++ has been running in production at Google for a while), and we’re working hard to bring these languages in 1.2.0. See our feature roadmap for more details.
Installation
Java developers can install Tink using Maven:
<dependency>
<groupId>com.google.crypto.tink</groupId>
<artifactId>tink</artifactId>
<version>1.1.0</version>
</dependency>
Android developers can install Tink using Gradle:
dependencies {
compile 'com.google.crypto.tink:tink-android:1.1.0'
}
For usage, please see the Java HOWTO. A list of known issues is provided here.
New primitives and algorithms
-
AEAD: CHACHA20-POLY1305
-
Digital Signature: ED25519
-
Deterministic AEAD: AES-SIV
-
Streaming AEAD: AES-GCM-HKDF-STREAMING and AES-CTR-HMAC-STREAMING
New apps
Aside from the core APIs, Tink provides apps that implement common standards or protocols. The apps depend on Tink, but are built separately.
Google Pay Token
This app is an implementation of Google Pay Token Cryptography Standard. Version 1.1.0 adds supports for the ECv2 protocol.
<dependency>
<groupId>com.google.crypto.tink</groupId>
<artifactId>apps-paymentmethodtoken</artifactId>
<version>1.1.0</version>
</dependency>
Web Push Message Encryption
This app is an implementation of RFC 8291 - Message Encryption for Web Push.
<dependency>
<groupId>com.google.crypto.tink</groupId>
<artifactId>apps-webpush</artifactId>
<version>1.1.0</version>
</dependency>