Puedes compilar Tink a partir del código fuente o usar paquetes específicos de lenguaje. Sigue estas instrucciones para comenzar.
C++
Tink proporciona las siguientes bibliotecas de C++:
- Una biblioteca principal de C++, tink-cc. La versión más reciente es la 2.2.0.
- tink-cc-awskms, una extensión de AWS de KMS. La versión más reciente es 2.0.1.
- Una extensión de Google Cloud KMS, tink-cc-gcpkms. La versión más reciente es la 2.2.0.
Tink C++ (tink-cc)
Tink C++ depende de lo siguiente:
- Protobuf 26.1
- Abseil LTS 20230802.0
- OpenSSL o BoringSSL >=1.1.1
- RapidJSON 1.1.0
- googletest 1.14.0 (solo prueba)
- Sumergible (solo para pruebas)
Tink C++ admite lo siguiente:
- C++ >= 14
- SO:
- UbuntuLTS >= 20.04 (x86_64)
- macOS >= 12.5 Monterey (x86_64)
- Windows Server >= 2019 (x86_64)
- Compilador:
- GCC >= 7.5.0
- Clang de Apple >= 14
- MSVC >= 2019
- Sistema de compilación:
CMake
Debes agregar tink-cc
como una dependencia de árbol. Por ejemplo:
cmake_minimum_required(VERSION 3.13)
project(YourProject CXX)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
set(CMAKE_CXX_STANDARD 14)
include(FetchContent)
# Import Tink as an in-tree dependency.
FetchContent_Declare(
tink
URL https://github.com/tink-crypto/tink-cc/archive/refs/tags/v2.2.0.zip
URL_HASH SHA256=88e1442182452caa16d0954ceaf73e17b0aa30837ee6c0cc16bf0112313ce753
)
FetchContent_GetProperties(tink)
if(NOT googletest_POPULATED)
FetchContent_Populate(tink)
add_subdirectory(${tink_SOURCE_DIR} ${tink_BINARY_DIR} EXCLUDE_FROM_ALL)
endif()
add_executable(your_app your_app.cc)
target_link_libraries(your_app tink::static)
Bazel
Bzlmod
Si usas Bazel con módulos, agrega
lo siguiente en tu archivo MODULE.bazel
:
bazel_dep(name = "tink_cc", version = "2.2.0")
LUGAR DE TRABAJO
Si usas Bazel con archivos WORKSPACE
, agrega lo siguiente a tu archivo
WORKSPACE
:
load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive")
http_archive(
name = "tink_cc",
urls = ["https://github.com/tink-crypto/tink-cc/archive/refs/tags/v2.2.0.zip"],
strip_prefix = "tink-2.2.0",
sha256 = "88e1442182452caa16d0954ceaf73e17b0aa30837ee6c0cc16bf0112313ce753",
)
load("@tink_cc//:tink_cc_deps.bzl", "tink_cc_deps")
tink_cc_deps()
load("@tink_cc//:tink_cc_deps_init.bzl", "tink_cc_deps_init")
tink_cc_deps_init()
Extensión Tink C++ AWS KMS (tink-cc-awskms)
Google Cloud KMS de Tink C++ depende de lo siguiente:
- Tink C++ 2.1.0
- SDK de AWS C++ 1.7.345
- googletest 1.11.0 (solo prueba)
AWS KMS de Tink C++ es compatible con lo siguiente:
- C++ >= 14
- SO:
- UbuntuLTS >= 20.04 (x86_64)
- macOS >= 12.5 Monterey (x86_64)
- Compilador:
- GCC >= 7.5.0
- Clang de Apple >= 14
- Sistema de compilación:
- Bazel >= 6 LTS
Bazel
Debes agregar lo siguiente al archivo WORKSPACE
de tu proyecto:
load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive")
http_archive(
name = "tink_cc",
urls = ["https://github.com/tink-crypto/tink-cc/archive/refs/tags/v2.2.0.zip"],
strip_prefix = "tink-2.2.0",
sha256 = "88e1442182452caa16d0954ceaf73e17b0aa30837ee6c0cc16bf0112313ce753",
)
load("@tink_cc//:tink_cc_deps.bzl", "tink_cc_deps")
tink_cc_deps()
load("@tink_cc//:tink_cc_deps_init.bzl", "tink_cc_deps_init")
tink_cc_deps_init()
http_archive(
name = "tink_cc_awskms",
urls = ["https://github.com/tink-crypto/tink-cc-awskms/archive/refs/tags/v2.0.1.zip"],
strip_prefix = "tink-cc-awskms-2.0.1",
sha256 = "366319b269f62af120ee312ce4c99ce3738ceb23ce3f9491b4859432f8b991a4",
)
load("@tink_cc_awskms//:tink_cc_awskms_deps.bzl", "tink_cc_awskms_deps")
tink_cc_awskms_deps()
Extensión Tink C++ para Google Cloud KMS (tink-cc-gcpkms)
Google Cloud KMS de Tink C++ depende de lo siguiente:
- Tink C++ 2.1.0
- gRPC 1.59.3
- Bibliotecas cliente de C++ de Google Cloud 2.16.0
- googletest 1.11.0 (solo prueba)
Tink C++ Google Cloud KMS admite lo siguiente:
- C++ >= 14
- SO:
- UbuntuLTS >= 20.04 (x86_64)
- macOS >= 12.5 Monterey (x86_64)
- Compilador:
- GCC >= 7.5.0
- Clang de Apple >= 14
- Sistema de compilación:
- Bazel >= 6 LTS
Bazel
Debes agregar lo siguiente al archivo WORKSPACE
de tu proyecto:
load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive")
http_archive(
name = "tink_cc_gcpkms",
urls = ["https://github.com/tink-crypto/tink-cc-gcpkms/releases/download/v2.2.0/tink-cc-gcpkms-2.2.0.zip"],
strip_prefix = "tink-cc-gcpkms-2.2.0",
sha256 = "ffb9d05c64ca28b5eb54fe79e7c3f93fad68f00e45f74f6b9ce1bd3a32b3d6fd",
)
load("@tink_cc_gcpkms//:tink_cc_gcpkms_deps.bzl", "tink_cc_gcpkms_deps")
tink_cc_gcpkms_deps()
load("@tink_cc_gcpkms//:tink_cc_gcpkms_deps_init.bzl", "tink_cc_gcpkms_deps_init")
tink_cc_gcpkms_deps_init(register_go = True)
Go
Tink proporciona las siguientes bibliotecas de Go:
- Una biblioteca principal de Tink, tink-go. La versión más reciente es la v2.1.0.
- Una extensión de KMS de AWS, tink-go-awskms. La versión más reciente es 2.0.0.
- Una extensión de Google Cloud KMS, tink-go-gcpkms La versión más reciente es 2.1.0.
- Una extensión de HashiCorp Vault, tink-go-hcvault. La versión más reciente es la 2.1.0.
Todas las bibliotecas de Tink Go se publican como módulos de Go que se pueden usar con las herramientas estándar de Go o Bazel.
Tink Go
Herramientas de Go
Ejecuta el siguiente comando desde el directorio del proyecto:
go get github.com/tink-crypto/tink-go/v2@v2.1.0
Consulta la documentación oficial de Go.
Bazel
Si quieres usar Tink Go con Bazel, debes usar bazel-gazelle
.
Puedes usarlo en tu WORKSPACE
de la siguiente manera:
load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive")
http_archive(
name = "io_bazel_rules_go",
sha256 = "6dc2da7ab4cf5d7bfc7c949776b1b7c733f05e56edc4bcd9022bb249d2e2a996",
urls = [
"https://mirror.bazel.build/github.com/bazelbuild/rules_go/releases/download/v0.39.1/rules_go-v0.39.1.zip",
"https://github.com/bazelbuild/rules_go/releases/download/v0.39.1/rules_go-v0.39.1.zip",
],
)
http_archive(
name = "bazel_gazelle",
sha256 = "ecba0f04f96b4960a5b250c8e8eeec42281035970aa8852dda73098274d14a1d",
urls = [
"https://mirror.bazel.build/github.com/bazelbuild/bazel-gazelle/releases/download/v0.29.0/bazel-gazelle-v0.29.0.tar.gz",
"https://github.com/bazelbuild/bazel-gazelle/releases/download/v0.29.0/bazel-gazelle-v0.29.0.tar.gz",
],
)
TINK_GO_VERSION="2.1.0"
TINK_GO_SHA256="84b4b233fb20b570812e61ccb134d230222b79d2fd765c1d57352a53d439d746"
http_archive(
name = "com_github_tink_crypto_tink_go_v2",
urls = ["https://github.com/tink-crypto/tink-go/releases/download/v%s/tink-go-%s.zip" % (TINK_GO_VERSION, TINK_GO_VERSION)],
strip_prefix = "tink-go-%s" % TINK_GO_VERSION,
sha256 = TINK_GO_SHA256,
)
load("@io_bazel_rules_go//go:deps.bzl", "go_register_toolchains", "go_rules_dependencies")
load("@bazel_gazelle//:deps.bzl", "gazelle_dependencies", "go_repository")
load("@com_github_tink_crypto_tink_go_v2//:deps.bzl", tink_go_dependencies="go_dependencies")
tink_go_dependencies()
#######################################
#
# Your project dependencies here.
#
#######################################
go_rules_dependencies()
go_register_toolchains(version = "1.20.10")
gazelle_dependencies()
Extensión Tink Go AWS KMS (tink-go-awskms)
Herramientas de Go
Ejecuta el siguiente comando desde el directorio del proyecto:
go get github.com/tink-crypto/tink-go-awskms/v2@v2.0.0
Consulta la documentación oficial de Go.
Bazel
Si deseas usar la extensión Tink Go de AWS KMS con
Bazel, debes usar
bazel-gazelle
.
Puedes usarlo en tu WORKSPACE
de la siguiente manera:
load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive")
http_archive(
name = "io_bazel_rules_go",
sha256 = "6dc2da7ab4cf5d7bfc7c949776b1b7c733f05e56edc4bcd9022bb249d2e2a996",
urls = [
"https://mirror.bazel.build/github.com/bazelbuild/rules_go/releases/download/v0.39.1/rules_go-v0.39.1.zip",
"https://github.com/bazelbuild/rules_go/releases/download/v0.39.1/rules_go-v0.39.1.zip",
],
)
http_archive(
name = "bazel_gazelle",
sha256 = "ecba0f04f96b4960a5b250c8e8eeec42281035970aa8852dda73098274d14a1d",
urls = [
"https://mirror.bazel.build/github.com/bazelbuild/bazel-gazelle/releases/download/v0.29.0/bazel-gazelle-v0.29.0.tar.gz",
"https://github.com/bazelbuild/bazel-gazelle/releases/download/v0.29.0/bazel-gazelle-v0.29.0.tar.gz",
],
)
# [Optional]: tink-go is imported as a go_repository by tink_go_awskms_dependencies.
# this is needed only if the user wants to pin to a specific commit/version of tink-go.
# TINK_GO_VERSION="2.1.0"
# TINK_GO_SHA256="84b4b233fb20b570812e61ccb134d230222b79d2fd765c1d57352a53d439d746"
#
# http_archive(
# name = "com_github_tink_crypto_tink_go_v2",
# urls = ["https://github.com/tink-crypto/tink-go/releases/download/v%s/tink-go-%s.zip" % (TINK_GO_VERSION, TINK_GO_VERSION)],
# strip_prefix = "tink-go-%s" % TINK_GO_VERSION,
# sha256 = TINK_GO_SHA256,
# )
http_archive(
name = "com_github_tink_crypto_tink_go_awskms_v2",
urls = ["https://github.com/tink-crypto/tink-go-awskms/releases/tag/v2.0.0.zip"],
strip_prefix = "tink-go-awskms-2.0.0",
sha256 = "8f1281ab0f04af4c114b46aeb3a5db5040604225c7797782c1274f75eb6f660c",
)
load("@io_bazel_rules_go//go:deps.bzl", "go_register_toolchains", "go_rules_dependencies")
load("@bazel_gazelle//:deps.bzl", "gazelle_dependencies", "go_repository")
# [Optional]: tink-go is imported as a go_repository by tink_go_awskms_dependencies.
# this is needed only if the user wants to pin to a specific commit/version of tink-go.
# load("@com_github_tink_crypto_tink_go_v2//:deps.bzl", tink_go_dependencies="go_dependencies")
#
# tink_go_dependencies()
load("@com_github_tink_crypto_tink_go_awskms_v2//:deps.bzl", "tink_go_awskms_dependencies")
tink_go_awskms_dependencies()
#######################################
#
# Your project dependencies here.
#
#######################################
go_rules_dependencies()
go_register_toolchains(version = "1.19.9")
gazelle_dependencies()
Extensión Tink Go para Google Cloud KMS (tink-go-gcpkms)
Herramientas de Go
Ejecuta el siguiente comando desde el directorio del proyecto:
go get github.com/tink-crypto/tink-go-gcpkms/v2@v2.1.0
Consulta la documentación oficial de Go.
Bazel
Si quieres usar la extensión Tink Go para Google Cloud KMS con Bazel, debes usar bazel-gazelle
.
Puedes usarlo en tu WORKSPACE
de la siguiente manera:
load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive")
# Release X.25.2 from 2024-01-09.
http_archive(
name = "com_google_protobuf",
sha256 = "5e8e2b369a6fcaa24fada21135782eef147aec467cd286c108936a3277e88d2b",
strip_prefix = "protobuf-25.2",
urls = ["https://github.com/protocolbuffers/protobuf/releases/download/v25.2/protobuf-25.2.zip"],
)
# Release from 2023-04-20
http_archive(
name = "io_bazel_rules_go",
sha256 = "6dc2da7ab4cf5d7bfc7c949776b1b7c733f05e56edc4bcd9022bb249d2e2a996",
urls = [
"https://mirror.bazel.build/github.com/bazelbuild/rules_go/releases/download/v0.39.1/rules_go-v0.39.1.zip",
"https://github.com/bazelbuild/rules_go/releases/download/v0.39.1/rules_go-v0.39.1.zip",
],
)
# Release from 2023-01-14
http_archive(
name = "bazel_gazelle",
sha256 = "ecba0f04f96b4960a5b250c8e8eeec42281035970aa8852dda73098274d14a1d",
urls = [
"https://mirror.bazel.build/github.com/bazelbuild/bazel-gazelle/releases/download/v0.29.0/bazel-gazelle-v0.29.0.tar.gz",
"https://github.com/bazelbuild/bazel-gazelle/releases/download/v0.29.0/bazel-gazelle-v0.29.0.tar.gz",
],
)
# [Optional]: tink-go is imported as a go_repository by tink_go_gcpkms_dependencies.
# this is needed only if the user wants to pin to a specific commit/version of tink-go.
# TINK_GO_VERSION="2.1.0"
# TINK_GO_SHA256="84b4b233fb20b570812e61ccb134d230222b79d2fd765c1d57352a53d439d746"
#
# http_archive(
# name = "com_github_tink_crypto_tink_go_v2",
# urls = ["https://github.com/tink-crypto/tink-go/releases/download/v%s/tink-go-%s.zip" % (TINK_GO_VERSION, TINK_GO_VERSION)],
# strip_prefix = "tink-go-%s" % TINK_GO_VERSION,
# sha256 = TINK_GO_SHA256,
# )
http_archive(
name = "com_github_tink_crypto_tink_go_gcpkms_v2",
urls = ["https://github.com/tink-crypto/tink-go-gcpkms/download/v2.1.0/tink-go-gcpkms-2.1.0.zip"],
strip_prefix = "tink-go-gcpkms-2.1.0",
sha256 = "77ab16b26b60edb46167c9177ad4081a02de0ed1f431dde9a6b2b9be59926e13",
)
load("@io_bazel_rules_go//go:deps.bzl", "go_register_toolchains", "go_rules_dependencies")
load("@bazel_gazelle//:deps.bzl", "gazelle_dependencies", "go_repository")
# [Optional]: tink-go is imported as a go_repository by tink_go_gcpkms_dependencies.
# this is needed only if the user wants to pin to a specific commit/version of tink-go.
# load("@com_github_tink_crypto_tink_go_v2//:deps.bzl", tink_go_dependencies="go_dependencies")
#
# tink_go_dependencies()
load("@com_github_tink_crypto_tink_go_gcpkms_v2//:deps.bzl", "tink_go_gcpkms_dependencies")
tink_go_awskms_dependencies()
#######################################
#
# Your project dependencies here.
#
#######################################
go_rules_dependencies()
go_register_toolchains(version = "1.20.13")
gazelle_dependencies()
Extensión Tink Go HashiCorp Vault (tink-go-hcvault)
Herramientas de Go
Ejecuta el siguiente comando desde el directorio del proyecto:
go get github.com/tink-crypto/tink-go-hcvault/v2@v2.1.0
Consulta la documentación oficial de Go.
Bazel
Si quieres usar la extensión Tink HashiCorp Vault con
Bazel, debes usar
bazel-gazelle
.
Puedes usarlo en tu WORKSPACE
de la siguiente manera:
load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive")
http_archive(
name = "io_bazel_rules_go",
sha256 = "6dc2da7ab4cf5d7bfc7c949776b1b7c733f05e56edc4bcd9022bb249d2e2a996",
urls = [
"https://mirror.bazel.build/github.com/bazelbuild/rules_go/releases/download/v0.39.1/rules_go-v0.39.1.zip",
"https://github.com/bazelbuild/rules_go/releases/download/v0.39.1/rules_go-v0.39.1.zip",
],
)
http_archive(
name = "bazel_gazelle",
sha256 = "ecba0f04f96b4960a5b250c8e8eeec42281035970aa8852dda73098274d14a1d",
urls = [
"https://mirror.bazel.build/github.com/bazelbuild/bazel-gazelle/releases/download/v0.29.0/bazel-gazelle-v0.29.0.tar.gz",
"https://github.com/bazelbuild/bazel-gazelle/releases/download/v0.29.0/bazel-gazelle-v0.29.0.tar.gz",
],
)
# [Optional]: tink-go is imported as a go_repository by tink_go_hcvault_dependencies.
# this is needed only if the user wants to pin to a specific commit/version of tink-go.
# TINK_GO_VERSION="2.1.0"
# TINK_GO_SHA256="84b4b233fb20b570812e61ccb134d230222b79d2fd765c1d57352a53d439d746"
#
# http_archive(
# name = "com_github_tink_crypto_tink_go_v2",
# urls = ["https://github.com/tink-crypto/tink-go/releases/download/v%s/tink-go-%s.zip" % (TINK_GO_VERSION, TINK_GO_VERSION)],
# strip_prefix = "tink-go-%s" % TINK_GO_VERSION,
# sha256 = TINK_GO_SHA256,
# )
http_archive(
name = "com_github_tink_crypto_tink_go_hcvault_v2",
urls = ["https://github.com/tink-crypto/tink-go-hcvault/download/v2.1.0/tink-go-hcvault-2.1.0.zip"],
strip_prefix = "tink-go-hcvault-2.1.0",
sha256 = "b053b67ccc308cfe1cff92d6a74b573d058c5ffe950263026f3d46cb67653def",
)
load("@io_bazel_rules_go//go:deps.bzl", "go_register_toolchains", "go_rules_dependencies")
load("@bazel_gazelle//:deps.bzl", "gazelle_dependencies", "go_repository")
# [Optional]: tink-go is imported as a go_repository by tink_go_hcvault_dependencies.
# this is needed only if the user wants to pin to a specific commit/version of tink-go.
# load("@com_github_tink_crypto_tink_go_v2//:deps.bzl", tink_go_dependencies="go_dependencies")
#
# tink_go_dependencies()
load("@com_github_tink_crypto_tink_go_hcvault_v2//:deps.bzl", "tink_go_hcvault_dependencies")
tink_go_awskms_dependencies()
#######################################
#
# Your project dependencies here.
#
#######################################
go_rules_dependencies()
go_register_toolchains(version = "1.20.14")
gazelle_dependencies()
Java
Tink proporciona las siguientes bibliotecas de Java:
- Una biblioteca principal de Java y Android, tink-java. La versión más reciente es la 1.13.0.
- Una extensión de KMS de AWS, tink-java-awskms. La versión más reciente es 1.9.1.
- Una extensión de Google Cloud KMS, tink-java-gcpkms. La versión más reciente es 1.10.0
- Una biblioteca, tink-java-apps, que proporciona implementaciones para el token de método de pago de Google, la verificación del servidor de los anuncios recompensados de Google AdMob y RFC 8291: Encriptación de mensajes para push web La versión más reciente es 1.10.0.
La versión de Java de Tink es compatible con Java 8 o versiones posteriores. Puedes incluir los artefactos de Tink Java Maven en tu proyecto de Maven o Gradle, o bien usar Bazel.
Tink 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 ejecutan de inmediato con el nivel de API 21 son las siguientes:
- La biblioteca de JWT requiere un 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 en
com.google.crypto.tink.integration.android
solo se prueban por completo a partir del nivel de API 23. - Algunas APIs en
com.google.crypto.tink.streamingaead
usanSeekableByteBufferChannel
, que solo está disponible a partir del nivel de API 24.
Ten en cuenta que, por motivos técnicos, solo probamos Tink en Android en la infraestructura interna de Google. No esperamos que ocurran problemas por este motivo, pero si tienes algún inconveniente, infórmalo.
Tink Android no requiere configuración de ProGuard.
Tink Java (tink-java)
Maven
Puedes incluir Tink Java y la biblioteca Tink para Android con Maven:
<dependency>
<groupId>com.google.crypto.tink</groupId>
<artifactId>tink</artifactId>
<version>1.13.0</version>
</dependency>
Si la orientas a Android, puedes usar tink-android
desde Gradle con lo siguiente:
dependencies {
implementation 'com.google.crypto.tink:tink-android:1.13.0'
}
Bazel
La forma recomendada en que los usuarios de Bazel pueden agregar Tink Java como dependencia es instalando el artefacto de actualización 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 = "4.5"
RULES_JVM_EXTERNAL_SHA ="b17d7388feb9bfa7f2fa09031b32707df529f26c91ab9e5d909eb1676badd9a6"
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/archive/refs/tags/%s.zip" % 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.13.0",
# ... other dependencies ...
],
repositories = [
"https://maven.google.com",
"https://repo1.maven.org/maven2",
],
)
Si deseas compilar tink-java
desde la fuente, por ejemplo, para fijar una confirmación específica, puedes incluirla como una http_archive
en tu archivo WORKSPACE
:
load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive")
TINK_COMMIT="27b061bb9ed1af1a6f538410bff443290e427e66"
TINK_SHA256="e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
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",
],
)
Extensión Tink Java AWS KMS (tink-java-awskms)
Maven
Puedes incluir Tink Java y la biblioteca Tink para Android con Maven:
<dependencies>
<dependency>
<groupId>com.google.crypto.tink</groupId>
<artifactId>tink-awskms</artifactId>
<version>1.9.1</version>
</dependency>
</dependencies>
Bazel
Puedes instalar el artefacto 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.13.0",
"com.google.crypto.tink:tink-awskms:1.9.1",
# ... other dependencies ...
],
repositories = [
"https://maven.google.com",
"https://repo1.maven.org/maven2",
],
)
Como alternativa, puedes incluirlo como una dependencia http_archive
:
# ...
http_archive(
name = "tink_java",
urls = ["https://github.com/tink-crypto/tink-java/releases/download/v1.13.0/tink-java-1.13.0.zip"],
strip_prefix = "tink-java-1.13.0",
sha256 = "d795e05bd264d78f438670f7d56dbe38eeb14b16e5f73adaaf20b6bb2bd11683",
)
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.9.1/tink-java-awskms-1.9.1.zip"],
strip_prefix = "tink-java-awskms-1.9.1",
sha256 = "57bd15391ec949660a8d4f0b0aa3cdd1bba2938a49c2a41f64349312873bcc56",
)
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 Tink Java para Google Cloud KMS (tink-java-gcpkms)
Maven
<dependencies>
<dependency>
<groupId>com.google.crypto.tink</groupId>
<artifactId>tink-gcpkms</artifactId>
<version>1.10.0/version>
</dependency>
</dependencies>
Bazel
Puedes instalar el artefacto 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.13.0",
"com.google.crypto.tink:tink-gcpkms:1.10.0",
# ... other dependencies ...
],
repositories = [
"https://maven.google.com",
"https://repo1.maven.org/maven2",
],
)
Como alternativa, puedes incluirlo como una dependencia http_archive
:
# ...
http_archive(
name = "tink_java",
urls = ["https://github.com/tink-crypto/tink-java/releases/download/v1.13.0/tink-java-1.13.0.zip"],
strip_prefix = "tink-java-1.13.0",
sha256 = "d795e05bd264d78f438670f7d56dbe38eeb14b16e5f73adaaf20b6bb2bd11683",
)
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",
],
)
Extensiones de apps de Tink para Java (tink-java-apps)
Maven
<dependency>
<groupId>com.google.crypto.tink</groupId>
<artifactId>apps-webpush</artifactId>
<version>1.10.0</version>
</dependency>
<dependency>
<groupId>com.google.crypto.tink</groupId>
<artifactId>apps-paymentmethodtoken</artifactId>
<version>1.10.0</version>
</dependency>
<dependency>
<groupId>com.google.crypto.tink</groupId>
<artifactId>apps-rewardedads</artifactId>
<version>1.10.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.10.0",
"com.google.crypto.tink:apps-paymentmethodtoken:1.10.0",
"com.google.crypto.tink:apps-rewardedads:1.10.0",
# ... other dependencies ...
],
repositories = [
"https://maven.google.com",
"https://repo1.maven.org/maven2",
],
)
ObjC
Consulta el instructivo en GitHub.
Python
La biblioteca Tink de Python, tink-py, es compatible con Python 3.8 o posterior en macOS (x86-64 y ARM64), Linux (x86-64 y ARM64) y Windows (x86-64). La versión más reciente es 1.10.0. Se puede instalar de forma local con Pip o usarse con Bazel.
Tink Python proporciona integraciones con AWS KMS, Google Cloud KMS y HashiCorp Vault.
Pippin
Puedes instalar la versión binaria de Tink Python para tu sistema desde PyPI si ejecutas el siguiente comando:
pip3 install tink==1.10.0
# Core Tink + Google Cloud KMS extension.
pip3 install tink[gcpkms]==1.10.0
# Core Tink + AWS KMS extension.
pip3 install tink[awskms]==1.10.0
# Core Tink + HashiCorp Vault KMS extension.
pip3 install tink[hcvault]==1.10.0
# Core Tink + all the KMS extensions.
pip3 install tink[all]==1.10.0
Si no se publica un paquete binario para tu entorno, pip
recurrirá automáticamente a la compilación del proyecto mediante la distribución de origen
publicada en PyPI. Si este es el caso, necesitas tener Bazel
o Bazelisk y el compilador
protobuf instalados para compilar el proyecto de forma correcta.
Bazel
Los usuarios de Bazel pueden incluir Tink Python en su archivo WORKSPACE
de la siguiente manera:
load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive")
http_archive(
name = "tink_py",
urls = ["https://github.com/tink-crypto/tink-py/releases/download/v1.10.0/tink-py-1.10.0.zip"],
strip_prefix = "tink-py-1.10.0",
sha256 = "767453aae4aad6de4fbb4162992184aa427b7b27864fe9912c270b24c673e1cc",
)
load("@tink_py//:tink_py_deps.bzl", "tink_py_deps")
tink_py_deps()
load("@rules_python//python:repositories.bzl", "py_repositories")
py_repositories()
load("@tink_py//:tink_py_deps_init.bzl", "tink_py_deps_init")
tink_py_deps_init("tink_py")