Tink Versions Save

Tink is a multi-language, cross-platform, open source library that provides cryptographic APIs that are secure, easy to use correctly, and hard(er) to misuse.

v1.3.0-rc2

4 years ago

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

This is Tink 1.3.0 Release Candidate 2

Changes

The complete list of changes since 1.3.0-rc1 can be found here.

Changes of note include (from rc1 to rc2):

  • The recommended version of Bazel is documented in the .bazelversion file in the root of the repository. This approach is compatible with Bazelisk, a wrapper for Bazel maintained by the Bazel team.

Please note that Tink JavaScript and Tink Python are not a part of this release. Moreover, streaming envelope encryption (for Java and C++) has been de-prioritized and also is not a part of this release.

Installation

C++ with prebuilt binaries

OS="$(uname | tr '[:upper:]' '[:lower:]')"
TARGET_DIR="/usr/local"
curl -L \
  "https://storage.googleapis.com/tink/releases/libtink-${OS}-x86_64-1.3.0-rc2.tar.gz" |
sudo tar -xz -C ${TARGET_DIR}

Obj-C with CocoaPods

cd /path/to/your/Xcode project/
pod init
pod 'Tink', '1.3.0-rc2'
pod install

Golang

To install Tink locally run:

go get github.com/google/tink/go/...

Java with Maven

<dependency>
  <groupId>com.google.crypto.tink</groupId>
  <artifactId>tink</artifactId>
  <version>1.3.0-rc2</version>
</dependency>

Android with Gradle

dependencies {
  compile 'com.google.crypto.tink:tink-android:1.3.0-rc2'
}

What's next

There may be a few more release candidates before we get to the final 1.3.0 release. It should be out by December 2019.

v1.3.0-rc1

4 years ago

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

This is Tink 1.3.0 Release Candidate 1

Changes

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

The main changes include:

  • new language: Tink in Go, with primitives MAC, AEAD (incl. KMS envelope), deterministic AEAD, hybrid encryption and digital signatures (see supported primitives and GOLANG HOWTO for details)
  • C++ deterministic AEAD (AES-SIV) and streaming AEAD (AES-GCM-HKDF-STREAMING)
  • C++ KMS-AEAD and KMS-envelope-AEAD, incl. integration with AWS KMS and GCP KMS.
  • RSA-signatures for Java and C++ (RSA-SSA-PKCS1, RSA-SSA-PSS)
  • ED25519 signatures for C++, Obj-C, and Go

Please note that Tink JavaScript and Tink Python are not a part of this release. Moreover, streaming envelope encryption (for Java and C++) has been de-prioritized and also is not a part of this release.

Installation

C++ with prebuilt binaries

OS="$(uname | tr '[:upper:]' '[:lower:]')"
TARGET_DIR="/usr/local"
curl -L \
  "https://storage.googleapis.com/tink/releases/libtink-${OS}-x86_64-1.3.0-rc1.tar.gz" |
sudo tar -xz -C ${TARGET_DIR}

Obj-C with CocoaPods

cd /path/to/your/Xcode project/
pod init
pod 'Tink', '1.3.0-rc1'
pod install

Golang

To install Tink locally run:

go get github.com/google/tink/go/...

Java with Maven

<dependency>
  <groupId>com.google.crypto.tink</groupId>
  <artifactId>tink</artifactId>
  <version>1.3.0-rc1</version>
</dependency>

Android with Gradle

dependencies {
  compile 'com.google.crypto.tink:tink-android:1.3.0-rc1'
}

What's next

There may be a few more release candidates before we get to the final 1.3.0 release. It should be out by the end of July 2019.

v1.2.2

5 years ago

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

This is Tink 1.2.2.

Changes

This release fixes an issue with the Obj-C build distributed via CocoaPods. In particular, the BoringSSL library is statically linked to prevent namespace clashes in projects which depend on OpenSSL.

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

Installation

C++ with prebuilt binaries

OS="$(uname | tr '[:upper:]' '[:lower:]')"
TARGET_DIR="/usr/local"
curl -L \
  "https://storage.googleapis.com/tink/releases/libtink-${OS}-x86_64-1.2.2.tar.gz" |
sudo tar -xz -C ${TARGET_DIR}

Obj-C with CocoaPods

cd /path/to/your/Xcode project/
pod init
pod 'Tink', '1.2.2'
pod install

Java with Maven

<dependency>
  <groupId>com.google.crypto.tink</groupId>
  <artifactId>tink</artifactId>
  <version>1.2.2</version>
</dependency>

Android with Gradle

dependencies {
  compile 'com.google.crypto.tink:tink-android:1.2.2'
}

What's next

See the project road map for future plans.

v1.2.1

5 years ago

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

This is Tink 1.2.1.

Changes

This release fixes a bunch of (non-security) bugs. There is no change in the public APIs.

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

Installation

C++ with prebuilt binaries

OS="$(uname | tr '[:upper:]' '[:lower:]')"
TARGET_DIR="/usr/local"
curl -L \
  "https://storage.googleapis.com/tink/releases/libtink-${OS}-x86_64-1.2.1.tar.gz" |
sudo tar -xz -C ${TARGET_DIR}

Obj-C with Cocoapods

cd /path/to/your/Xcode project/
pod init
pod 'Tink', '1.2.1'
pod install

Java with Maven

<dependency>
  <groupId>com.google.crypto.tink</groupId>
  <artifactId>tink</artifactId>
  <version>1.2.1</version>
</dependency>

Android with Gradle

dependencies {
  compile 'com.google.crypto.tink:tink-android:1.2.1'
}

What's next

See the project road map for future plans.

v1.2.0

5 years ago

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

This is Tink 1.2.0.

Changes

The complete list of changes since Release Candidate 4 can be found here.

Please ignore RSA-related changes; RSA is not part of 1.2.0 release.

New languages: C++ and Obj-C

Tink 1.2.0 adds support for C++ and Obj-C. Both have been running in production at Google for a few months, and support the following algorithms:

  • AEAD: AES-EAX, AES-GCM, AES-CTR-HMAC-AEAD
  • MAC: HMAC-SHA2
  • Digital Signature: ECDSA over NIST curves
  • Hybrid Encryption: ECIES over NIST curves with AEAD (AES-GCM and AES-CTR-HMAC-AEAD) and HKDF

Support for AWS KMS will be added to the Tink C++ library in future release candidates. Support for Google Cloud KMS has to wait post 1.2.0 because of lack of Cloud KMS client library.

The Tink Obj-C library supports reading/writing key material to/from iOS Keychain.

Please see the C++ HOWTO and the Obj-C HOWTO for usage.

Installation

C++ with prebuilt binaries

OS="linux"  # Change to "darwin" for macOS
TARGET_DIR="/usr/local"
curl -L \
  "https://storage.googleapis.com/tink/releases/libtink-${OS}-x86_64-1.2.0.tar.gz" |
sudo tar -xz -C ${TARGET_DIR}

Obj-C with Cocoapods

cd /path/to/your/Xcode project/
pod init
pod 'Tink', '1.2.0'
pod install

Java with Maven

<dependency>
  <groupId>com.google.crypto.tink</groupId>
  <artifactId>tink</artifactId>
  <version>1.2.0</version>
</dependency>

Android with Gradle

dependencies {
  compile 'com.google.crypto.tink:tink-android:1.2.0'
}

What's next

See the project road map for future plans.

v1.2.0-rc4

5 years ago

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

This is Tink 1.2.0 Release Candidate 4.

Changes

The complete list of changes since Release Candidate 3 can be found here.

Please ignore RSA-related changes; RSA is not part of 1.2.0 release.

New languages: C++ and Obj-C

Tink 1.2.0 adds support for C++ and Obj-C. Both have been running in production at Google for a few months, and support the following algorithms:

  • AEAD: AES-EAX, AES-GCM, AES-CTR-HMAC-AEAD
  • MAC: HMAC-SHA2
  • Digital Signature: ECDSA over NIST curves
  • Hybrid Encryption: ECIES over NIST curves with AEAD (AES-GCM and AES-CTR-HMAC-AEAD) and HKDF

Support for AWS KMS will be added to the Tink C++ library in future release candidates. Support for Google Cloud KMS has to wait post 1.2.0 because of lack of Cloud KMS client library.

The Tink Obj-C library supports reading/writing key material to/from iOS Keychain.

Please see the C++ HOWTO and the Obj-C HOWTO for usage.

Installation

C++ with prebuilt binaries

OS="linux"  # Change to "darwin" for macOS
TARGET_DIR="/usr/local"
curl -L \
  "https://storage.googleapis.com/tink/releases/libtink-${OS}-x86_64-1.2.0-rc4.tar.gz" |
sudo tar -xz -C ${TARGET_DIR}

Obj-C with Cocoapods

cd /path/to/your/Xcode project/
pod init
pod 'Tink', '1.2.0-rc4'
pod install

Java with Maven

<dependency>
  <groupId>com.google.crypto.tink</groupId>
  <artifactId>tink</artifactId>
  <version>1.2.0-rc4</version>
</dependency>

Android with Gradle

dependencies {
  compile 'com.google.crypto.tink:tink-android:1.2.0-rc4'
}

What's next

This is intended to be the last release candidate before the final 1.2.0 release.

v1.2.0-rc3

5 years ago

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

This is Tink 1.2.0 Release Candidate 3.

Changes

The complete list of changes since Release Candidate 2 can be found here. Please ignore RSA-related changes; RSA is not part of 1.2.0 release.

This candidate adds C++/Obj-C APIs to generate keys and to get public keys from private keys. We thank Sreejith Krishnan R for reporting these bugs.

New languages: C++ and Obj-C

Tink 1.2.0 adds support for C++ and Obj-C. Both have been running in production at Google for a few months, and support the following algorithms:

  • AEAD: AES-EAX, AES-GCM, AES-CTR-HMAC-AEAD
  • MAC: HMAC-SHA2
  • Digital Signature: ECDSA over NIST curves
  • Hybrid Encryption: ECIES over NIST curves with AEAD (AES-GCM and AES-CTR-HMAC-AEAD) and HKDF

Support for AWS KMS will be added to the Tink C++ library in future release candidates. Support for Google Cloud KMS has to wait post 1.2.0 because of lack of Cloud KMS client library.

The Tink Obj-C library supports reading/writing key material to/from iOS Keychain.

Please see the C++ HOWTO and the Obj-C HOWTO for usage.

Installation

C++ with prebuilt binaries

OS="linux"  # Change to "darwin" for macOS
TARGET_DIR="/usr/local"
curl -L \
  "https://storage.googleapis.com/tink/releases/libtink-${OS}-x86_64-1.2.0-rc3.tar.gz" |
sudo tar -xz -C ${TARGET_DIR}

Obj-C with Cocoapods

cd /path/to/your/Xcode project/
pod init
pod 'Tink', '1.2.0-rc3'
pod install

Java with Maven

<dependency>
  <groupId>com.google.crypto.tink</groupId>
  <artifactId>tink</artifactId>
  <version>1.2.0-rc3</version>
</dependency>

Android with Gradle

dependencies {
  compile 'com.google.crypto.tink:tink-android:1.2.0-rc3'
}

What's next

There may be a few more release candidates before we get to the final 1.2.0 release. It should be out by the end of July 2018.

v1.2.0-rc2

5 years ago

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

This is Tink 1.2.0 Release Candidate 2.

Note: Release Candidate 1 was private and used to test the Obj-C publishing process.

New languages: C++ and Obj-C

Tink 1.2.0 adds support for C++ and Obj-C. Both have been running in production at Google for a few months, and support the following algorithms:

  • AEAD: AES-EAX, AES-GCM, AES-CTR-HMAC-AEAD
  • MAC: HMAC-SHA2
  • Digital Signature: ECDSA over NIST curves
  • Hybrid Encryption: ECIES over NIST curves with AEAD (AES-GCM and AES-CTR-HMAC-AEAD) and HKDF

Support for AWS KMS will be added to the Tink C++ library in future release candidates. Support for Google Cloud KMS has to wait post 1.2.0 because of lack of Cloud KMS client library. The Tink Obj-C library supports reading/writing key material to/from iOS Keychain.

Please see the C++ HOWTO and the Obj-C HOWTO for usage.

Installation

C++ with prebuilt binaries

OS="linux" # Change to "darwin" for macOS
TARGET_DIR="/usr/local"
curl -L \
"https://storage.googleapis.com/tink/releases/libtink-${OS}-x86_64-1.2.0-rc2.tar.gz" |
sudo tar -xz -C $TARGET_DIR

Obj-C with Cocoapods

cd /path/to/your/Xcode project/
pod init
pod 'Tink', '1.2.0-rc2'
pod install

Java with Maven

<dependency>
  <groupId>com.google.crypto.tink</groupId>
  <artifactId>tink</artifactId>
  <version>1.2.0-rc2</version>
</dependency>

Android with Gradle

dependencies {
  compile 'com.google.crypto.tink:tink-android:1.2.0-rc2'
}

What's next

There may be a few more release candidates before we get to the final 1.2.0 release. It should be out by the end of July 2018.

v1.1.1

5 years ago

Tink is a multi-language, cross-platform library that provides an easy, simple, secure, and agile API for common cryptographic tasks.

This is a minor release which includes a fix for a build error (#94) and documentation cleanup.

Installation

Java developers can install Tink using Maven:

<dependency>
  <groupId>com.google.crypto.tink</groupId>
  <artifactId>tink</artifactId>
  <version>1.1.1</version>
</dependency>

Android developers can install Tink using Gradle:

dependencies {
  compile 'com.google.crypto.tink:tink-android:1.1.1'
}

For usage, please see the Java HOWTO. A list of known issues is provided here.

Javadoc

v1.1.0

6 years ago

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>

Javadoc