Después de instalar y configurar Tink, continúa con los Próximos pasos.
Tink Java
La biblioteca principal de Java es tink-java, y la versión más reciente es 1.16.0. Tink Java es compatible con Java 8 o versiones posteriores.
Maven
Puedes incluir Tink Java con Maven:
<dependency>
<groupId>com.google.crypto.tink</groupId>
<artifactId>tink</artifactId>
<version>1.16.0</version>
</dependency>
Bazel
Artefacto de lanzamiento de Maven
La forma recomendada en que los usuarios de Bazel pueden agregar Tink Java como dependencia es instalando el artefacto de lanzamiento de Maven con la herramienta rules_jvm_external
en su archivo 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.16.0",
# ... other dependencies ...
],
repositories = [
"https://maven.google.com",
"https://repo1.maven.org/maven2",
],
)
Compila desde la fuente
Si deseas compilar tink-java
desde la fuente, por ejemplo, para fijar una confirmación específica, puedes incluirla como http_archive
en tu archivo 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 para Android
La biblioteca principal de Android es tink-java, y la versión más reciente es 1.16.0.
Tink para Android es totalmente compatible a partir del nivel de API 24. Se espera que la mayoría de las partes de Tink funcionen a partir del nivel de API 21. Las partes en las que Tink no se ejecuta de forma predeterminada con el nivel de API 21 son las siguientes:
La biblioteca de JWT requiere el nivel de API 24, ya que usa clases como
java.util.Optional
. Esta limitación se puede evitar con la expansión de sintaxis.Las clases de
com.google.crypto.tink.integration.android
solo se prueban por completo a partir del nivel de API 23.Algunas APIs de
com.google.crypto.tink.streamingaead
usanSeekableByteBufferChannel
, que solo está disponible a partir del nivel de API 24.
Por motivos técnicos, solo probamos Tink en Android en la infraestructura interna de Google. No esperamos que esto cause ningún problema, pero si tienes alguno, informa al respecto.
Tink para Android no requiere configuración de Proguard.
Gradle
Puedes usar tink-android
desde Gradle:
dependencies {
implementation 'com.google.crypto.tink:tink-android:1.16.0'
}
Extensión de AWS KMS
La extensión de AWS KMS de Tink para Java es tink-java-awskms, y la versión más reciente es 1.11.0.
Maven
Puedes incluir la extensión de AWS KMS de Tink para Java con Maven:
<dependencies>
<dependency>
<groupId>com.google.crypto.tink</groupId>
<artifactId>tink-awskms</artifactId>
<version>1.11.0</version>
</dependency>
</dependencies>
Bazel
Artefacto de lanzamiento de Maven
Puedes instalar el artefacto de Maven com.google.crypto.tink:tink-awskms
junto con com.google.crypto.tink:tink
con la herramienta rules_jvm_external
.
# ...
maven_install(
artifacts = [
"com.google.crypto.tink:tink:1.16.0",
"com.google.crypto.tink:tink-awskms:1.11.0",
# ... other dependencies ...
],
repositories = [
"https://maven.google.com",
"https://repo1.maven.org/maven2",
],
)
Compila desde la fuente
Si deseas compilar tink-awskms
desde la fuente, por ejemplo, para fijar una confirmación específica, puedes incluirla como un http_archive
en tu archivo WORKSPACE
:
# ...
http_archive(
name = "tink_java",
urls = ["https://github.com/tink-crypto/tink-java/releases/download/v1.16.0/tink-java-1.16.0.zip"],
strip_prefix = "tink-java-1.16.0",
sha256 = "6bf0bb13281257fdf07d70abfc025f0e3ab18abd22646b1ada3fe297f7feaedb",
)
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",
],
)
Extensión de Google Cloud KMS
La extensión de Google Cloud KMS de Tink para Java es tink-java-gcpkms, y la versión más reciente es 1.10.0.
Maven
Puedes incluir la extensión de Google Cloud KMS de Tink para Java con Maven:
<dependencies>
<dependency>
<groupId>com.google.crypto.tink</groupId>
<artifactId>tink-gcpkms</artifactId>
<version>1.10.0/version>
</dependency>
</dependencies>
Bazel
Artefacto de lanzamiento de Maven
Puedes instalar el artefacto de Maven com.google.crypto.tink:tink-gcpkms
junto con com.google.crypto.tink:tink
con la herramienta rules_jvm_external
.
# ...
maven_install(
artifacts = [
"com.google.crypto.tink:tink:1.16.0",
"com.google.crypto.tink:tink-gcpkms:1.10.0",
# ... other dependencies ...
],
repositories = [
"https://maven.google.com",
"https://repo1.maven.org/maven2",
],
)
Compila desde la fuente
Si deseas compilar tink-gcpkms
desde la fuente, por ejemplo, para fijar una confirmación específica, puedes incluirla como un http_archive
en tu archivo WORKSPACE
:
# ...
http_archive(
name = "tink_java",
urls = ["https://github.com/tink-crypto/tink-java/releases/download/v1.16.0/tink-java-1.16.0.zip"],
strip_prefix = "tink-java-1.16.0",
sha256 = "6bf0bb13281257fdf07d70abfc025f0e3ab18abd22646b1ada3fe297f7feaedb",
)
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",
],
)
Apps de Java de Tink
La biblioteca de Tink para apps de Java proporciona implementaciones para el token de método de pago de Google, la verificación del servidor de anuncios recompensados de Google AdMob y la RFC 8291: Encriptación de mensajes para notificaciones web push, con la versión 1.11.0 como la más reciente.
Maven
Puedes incluir la biblioteca de apps de Java de Tink con Maven:
<dependency>
<groupId>com.google.crypto.tink</groupId>
<artifactId>apps-webpush</artifactId>
<version>1.11.0</version>
</dependency>
<dependency>
<groupId>com.google.crypto.tink</groupId>
<artifactId>apps-paymentmethodtoken</artifactId>
<version>1.11.0</version>
</dependency>
<dependency>
<groupId>com.google.crypto.tink</groupId>
<artifactId>apps-rewardedads</artifactId>
<version>1.11.0</version>
</dependency>
Bazel
Puedes instalar cualquiera de los artefactos de Maven com.google.crypto.tink:apps-*
con la herramienta rules_jvm_external
.
# ...
maven_install(
artifacts = [
"com.google.crypto.tink:apps-webpush:1.11.0",
"com.google.crypto.tink:apps-paymentmethodtoken:1.11.0",
"com.google.crypto.tink:apps-rewardedads:1.11.0",
# ... other dependencies ...
],
repositories = [
"https://maven.google.com",
"https://repo1.maven.org/maven2",
],
)
Próximos pasos
Una vez que hayas terminado de configurar Tink, continúa con los pasos estándar de uso de Tink:
- Elige una primitiva: Decide qué primitiva usar según tu caso de uso.
- Administrar claves: Protege tus claves con tu KMS externo, genera conjuntos de claves y rota tus claves