Après avoir installé et configuré Tink, passez à Étapes suivantes.
Tink Java
La bibliothèque Java principale est tink-java, dont la dernière version est 1.18.0. Tink Java est compatible avec Java 11 ou une version ultérieure.
Maven
Vous pouvez inclure Tink Java à l'aide de Maven :
<dependency>
<groupId>com.google.crypto.tink</groupId>
<artifactId>tink</artifactId>
<version>1.18.0</version>
</dependency>
Bazel
Artefact de version Maven
La méthode recommandée pour les utilisateurs de Bazel afin d'ajouter Tink Java en tant que dépendance consiste à installer l'artefact de version Maven à l'aide de l'outil rules_jvm_external
dans leur fichier WORKSPACE
:
load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive")
RULES_JVM_EXTERNAL_TAG = "6.1"
RULES_JVM_EXTERNAL_SHA ="d31e369b854322ca5098ea12c69d7175ded971435e55c18dd9dd5f29cc5249ac"
http_archive(
name = "rules_jvm_external",
strip_prefix = "rules_jvm_external-%s" % RULES_JVM_EXTERNAL_TAG,
sha256 = RULES_JVM_EXTERNAL_SHA,
url = "https://github.com/bazelbuild/rules_jvm_external/releases/download/%s/rules_jvm_external-%s.tar.gz" % (RULES_JVM_EXTERNAL_TAG, RULES_JVM_EXTERNAL_TAG)
)
load("@rules_jvm_external//:repositories.bzl", "rules_jvm_external_deps")
rules_jvm_external_deps()
load("@rules_jvm_external//:setup.bzl", "rules_jvm_external_setup")
rules_jvm_external_setup()
load("@rules_jvm_external//:defs.bzl", "maven_install")
maven_install(
artifacts = [
"com.google.crypto.tink:tink:1.18.0",
# ... other dependencies ...
],
repositories = [
"https://maven.google.com",
"https://repo1.maven.org/maven2",
],
)
Créer à partir de la source
Si vous souhaitez compiler tink-java
à partir de la source, par exemple pour épingler un commit spécifique, vous pouvez l'inclure en tant que http_archive
dans votre fichier WORKSPACE
:
load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive")
TINK_COMMIT="f4127f6b6ab9c367d41ade1f50db6f0ef9909044"
TINK_SHA256="e246f848f7749e37f558955ecb50345b04d79ddb9d8d1e8ae19f61e8de530582"
http_archive(
name = "tink_java",
urls = ["https://github.com/tink-crypto/tink-java/archive/%s.zip" % TINK_COMMIT],
strip_prefix = "tink-%s" % TINK_COMMIT,
sha256 = TINK_SHA256
)
load("@tink_java//:tink_java_deps.bzl", "TINK_MAVEN_ARTIFACTS", "tink_java_deps")
tink_java_deps()
load("@tink_java//:tink_java_deps_init.bzl", "tink_java_deps_init")
tink_java_deps_init()
# rules_jvm_external is imported and initialized by tink_java_deps and
# tink_java_deps_init.
load("@rules_jvm_external//:defs.bzl", "maven_install")
maven_install(
artifacts = TINK_MAVEN_ARTIFACTS + # ... other dependencies ...
repositories = [
"https://maven.google.com",
"https://repo1.maven.org/maven2",
],
)
Tink Android
La bibliothèque Android principale est tink-java, dont la dernière version est 1.18.0.
Tink Android est entièrement compatible à partir du niveau d'API 24. La plupart des composants de Tink devraient fonctionner à partir du niveau d'API 23. Voici les parties où Tink ne fonctionne pas prêt à l'emploi avec le niveau d'API 23 :
La bibliothèque JWT requiert le niveau d'API 24, car elle utilise des classes telles que
java.util.Optional
. Cette limitation peut être évitée grâce au desugaring.Certaines API de
com.google.crypto.tink.streamingaead
utilisentSeekableByteBufferChannel
, qui n'est disponible qu'à partir du niveau d'API 24.
Pour des raisons techniques, nous ne testons Tink sur Android que sur l'infrastructure interne de Google. Nous ne prévoyons aucun problème, mais si vous en rencontrez, veuillez en signaler un.
Tink Android ne nécessite aucune configuration ProGuard.
Gradle
Vous pouvez utiliser tink-android
à partir de Gradle :
dependencies {
implementation 'com.google.crypto.tink:tink-android:1.18.0'
}
Extension AWS KMS
L'extension Tink Java AWS KMS est tink-java-awskms, dont la dernière version est 1.11.0.
Maven
Vous pouvez inclure l'extension Tink Java AWS KMS à l'aide de Maven :
<dependencies>
<dependency>
<groupId>com.google.crypto.tink</groupId>
<artifactId>tink-awskms</artifactId>
<version>1.11.0</version>
</dependency>
</dependencies>
Bazel
Artefact de version Maven
Vous pouvez installer l'artefact Maven com.google.crypto.tink:tink-awskms
aux côtés de com.google.crypto.tink:tink
à l'aide de l'outil rules_jvm_external
.
# ...
maven_install(
artifacts = [
"com.google.crypto.tink:tink:1.18.0",
"com.google.crypto.tink:tink-awskms:1.11.0",
# ... other dependencies ...
],
repositories = [
"https://maven.google.com",
"https://repo1.maven.org/maven2",
],
)
Créer à partir de la source
Si vous souhaitez compiler tink-awskms
à partir de la source, par exemple pour épingler un commit spécifique, vous pouvez l'inclure en tant que http_archive
dans votre fichier WORKSPACE
:
# ...
http_archive(
name = "tink_java",
urls = ["https://github.com/tink-crypto/tink-java/releases/download/v1.18.0/tink-java-1.18.0.zip"],
strip_prefix = "tink-java-1.18.0",
sha256 = "f74f0b8fa8a6edc129ce6b369764e176d7047d87d8f77cec06a8880f00498571",
)
load("@tink_java//:tink_java_deps.bzl", "TINK_MAVEN_ARTIFACTS", "tink_java_deps")
tink_java_deps()
load("@tink_java//:tink_java_deps_init.bzl", "tink_java_deps_init")
tink_java_deps_init()
http_archive(
name = "tink_java_awskms",
urls = ["https://github.com/tink-crypto/tink-java-awskms/releases/download/v1.11.0/tink-java-awskms-1.11.0.zip"],
strip_prefix = "tink-java-awskms-1.11.0",
sha256 = "18f8faa7ba0019fc584f9e03f94221ebbcc83f059568d2277a4866003153e151",
)
load("@tink_java_awskms//:tink_java_awskms_deps.bzl", "TINK_JAVA_AWSKMS_MAVEN_ARTIFACTS")
maven_install(
artifacts = TINK_MAVEN_ARTIFACTS + TINK_JAVA_AWSKMS_MAVEN_ARTIFACTS + [
# ... other dependencies ...
],
repositories = [
"https://maven.google.com",
"https://repo1.maven.org/maven2",
],
)
Extension Google Cloud KMS
L'extension Tink Java Google Cloud KMS est tink-java-gcpkms, dont la dernière version est 1.10.0.
Maven
Vous pouvez inclure l'extension Tink Java Google Cloud KMS à l'aide de Maven :
<dependencies>
<dependency>
<groupId>com.google.crypto.tink</groupId>
<artifactId>tink-gcpkms</artifactId>
<version>1.10.0/version>
</dependency>
</dependencies>
Bazel
Artefact de version Maven
Vous pouvez installer l'artefact Maven com.google.crypto.tink:tink-gcpkms
aux côtés de com.google.crypto.tink:tink
à l'aide de l'outil rules_jvm_external
.
# ...
maven_install(
artifacts = [
"com.google.crypto.tink:tink:1.18.0",
"com.google.crypto.tink:tink-gcpkms:1.10.0",
# ... other dependencies ...
],
repositories = [
"https://maven.google.com",
"https://repo1.maven.org/maven2",
],
)
Créer à partir de la source
Si vous souhaitez compiler tink-gcpkms
à partir de la source, par exemple pour épingler un commit spécifique, vous pouvez l'inclure en tant que http_archive
dans votre fichier WORKSPACE
:
# ...
http_archive(
name = "tink_java",
urls = ["https://github.com/tink-crypto/tink-java/releases/download/v1.18.0/tink-java-1.18.0.zip"],
strip_prefix = "tink-java-1.18.0",
sha256 = "f74f0b8fa8a6edc129ce6b369764e176d7047d87d8f77cec06a8880f00498571",
)
load("@tink_java//:tink_java_deps.bzl", "TINK_MAVEN_ARTIFACTS", "tink_java_deps")
tink_java_deps()
load("@tink_java//:tink_java_deps_init.bzl", "tink_java_deps_init")
tink_java_deps_init()
http_archive(
name = "tink_java_gcpkms",
urls = ["https://github.com/tink-crypto/tink-java-gcpkms/releases/download/v1.10.0/tink-java-gcpkms-1.10.0.zip"],
strip_prefix = "tink-java-gcpkms-1.10.0",
sha256 = "ad85625cc4409f2f6ab13a8eef39c965501585e9323d59652cce322b3d2c09a2",
)
load("@tink_java_gcpkms//:tink_java_gcpkms_deps.bzl", "TINK_JAVA_GCPKMS_MAVEN_ARTIFACTS")
maven_install(
artifacts = TINK_MAVEN_ARTIFACTS + TINK_JAVA_GCPKMS_MAVEN_ARTIFACTS + [
# ... other dependencies ...
],
repositories = [
"https://maven.google.com",
"https://repo1.maven.org/maven2",
],
)
Applications Java Tink
La bibliothèque Tink Java Apps fournit des implémentations pour Google Payment Method Token, Server-Side Verification of Google AdMob Rewarded Ads et RFC 8291 – Message Encryption for Web Push, avec 1.12.2 comme dernière version.
Maven
Vous pouvez inclure la bibliothèque Tink Java Apps à l'aide de Maven :
<dependency>
<groupId>com.google.crypto.tink</groupId>
<artifactId>apps-webpush</artifactId>
<version>1.12.2</version>
</dependency>
<dependency>
<groupId>com.google.crypto.tink</groupId>
<artifactId>apps-paymentmethodtoken</artifactId>
<version>1.12.2</version>
</dependency>
<dependency>
<groupId>com.google.crypto.tink</groupId>
<artifactId>apps-rewardedads</artifactId>
<version>1.12.2</version>
</dependency>
Bazel
Vous pouvez installer n'importe quel artefact Maven com.google.crypto.tink:apps-*
à l'aide de l'outil rules_jvm_external
.
# ...
maven_install(
artifacts = [
"com.google.crypto.tink:apps-webpush:1.12.2",
"com.google.crypto.tink:apps-paymentmethodtoken:1.12.2",
"com.google.crypto.tink:apps-rewardedads:1.12.2",
# ... other dependencies ...
],
repositories = [
"https://maven.google.com",
"https://repo1.maven.org/maven2",
],
)
Étapes suivantes
Une fois que vous avez terminé de configurer Tink, suivez les étapes d'utilisation standard de Tink :
- Choisir une primitive : décidez quelle primitive utiliser en fonction de votre cas d'utilisation.
- Gérer les clés : protégez vos clés avec votre KMS externe, générez des ensembles de clés et effectuez une rotation de vos clés.