Tink-Einrichtung

Sie können Tink aus der Quelle erstellen oder sprachspezifische Pakete verwenden. Die folgende Anleitung hilft Ihnen beim Einstieg.

C++

Tink stellt die folgenden C++-Bibliotheken zur Verfügung:

Tink C++ (tink-cc)

Tink C++ ist abhängig von:

Tink C++ unterstützt:

  • C++ >= 14
  • Betriebssystem:
    • UbuntuLTS >= 20.04 (x86_64)
    • macOS >= 12.5 Monterey (x86_64)
    • Windows Server >= 2019 (x86_64)
  • Compiler:
    • GCC >= 7.5.0
    • Apfelklingel >= 14
    • MSVC (ab 2019)
  • Build-System:

CMake

Sie sollten tink-cc als integrierte Abhängigkeit hinzufügen. Beispiel:

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.1.3.zip
  URL_HASH  SHA256=14a3f64a56d7e9296889d7eba7a3b8787c3281e5bc5791033c54baf810a0b6ef
)
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

Wenn Sie Bazel mit Modulen verwenden, fügen Sie der Datei MODULE.bazel Folgendes hinzu:

bazel_dep(name = "tink_cc", version = "2.1.3")

ARBEITSBEREICH

Wenn Sie Qwiklabs mit WORKSPACE-Dateien verwenden, fügen Sie der Datei WORKSPACE Folgendes hinzu:

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.1.3.zip"],
    strip_prefix = "tink-2.1.3",
    sha256 = "14a3f64a56d7e9296889d7eba7a3b8787c3281e5bc5791033c54baf810a0b6ef",
)

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()

Tink C++ AWS KMS-Erweiterung (tink-cc-awskms)

Google Cloud KMS in Tink C++ ist abhängig von:

Tink C++ AWS KMS unterstützt:

  • C++ >= 14
  • Betriebssystem:
    • UbuntuLTS >= 20.04 (x86_64)
    • macOS >= 12.5 Monterey (x86_64)
  • Compiler:
    • GCC >= 7.5.0
    • Apfelklingel >= 14
  • Build-System:

Bazel

Fügen Sie der Datei WORKSPACE Ihres Projekts Folgendes hinzu:

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.1.3.zip"],
    strip_prefix = "tink-2.1.3",
    sha256 = "14a3f64a56d7e9296889d7eba7a3b8787c3281e5bc5791033c54baf810a0b6ef",
)

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()

Google Cloud KMS-Erweiterung für Tink C++ (tink-cc-gcpkms)

Google Cloud KMS in Tink C++ ist abhängig von:

Google Cloud KMS unterstützt Tink C++:

  • C++ >= 14
  • Betriebssystem:
    • UbuntuLTS >= 20.04 (x86_64)
    • macOS >= 12.5 Monterey (x86_64)
  • Compiler:
    • GCC >= 7.5.0
    • Apfelklingel >= 14
  • Build-System:

Bazel

Fügen Sie der Datei WORKSPACE Ihres Projekts Folgendes hinzu:

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)

Ok

Tink stellt die folgenden Go-Bibliotheken zur Verfügung:

Alle Tink Go-Bibliotheken werden als Go-Module veröffentlicht, die mit Standard-Go-Tools oder Bazel verwendet werden können.

Tink Go

Tools verwenden

Führen Sie den folgenden Befehl in Ihrem Projektverzeichnis aus:

go get github.com/tink-crypto/tink-go/v2@v2.1.0

Weitere Informationen finden Sie in der offiziellen Go-Dokumentation.

Bazel

Wenn Sie Tink Go mit Bazel verwenden möchten, sollten Sie bazel-gazelle verwenden. Sie können sie in WORKSPACE so verwenden:

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()

Tink Go AWS KMS-Erweiterung (tink-go-awskms)

Tools verwenden

Führen Sie den folgenden Befehl in Ihrem Projektverzeichnis aus:

go get github.com/tink-crypto/tink-go-awskms/v2@v2.0.0

Weitere Informationen finden Sie in der offiziellen Go-Dokumentation.

Bazel

Wenn Sie die Erweiterung Tink Go AWS KMS mit Bazel verwenden möchten, sollten Sie bazel-gazelle verwenden. Sie können sie in WORKSPACE so verwenden:

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()

Tink Go Google Cloud KMS-Erweiterung (tink-go-gcpkms)

Tools verwenden

Führen Sie den folgenden Befehl in Ihrem Projektverzeichnis aus:

go get github.com/tink-crypto/tink-go-gcpkms/v2@v2.1.0

Weitere Informationen finden Sie in der offiziellen Go-Dokumentation.

Bazel

Wenn Sie die Google Cloud KMS-Erweiterung Tink Go mit Bazel verwenden möchten, sollten Sie bazel-gazelle verwenden. Sie können sie in WORKSPACE so verwenden:

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()

Erweiterung Tink Go HashiCorp Vault (tink-go-hcvault)

Tools verwenden

Führen Sie den folgenden Befehl in Ihrem Projektverzeichnis aus:

go get github.com/tink-crypto/tink-go-hcvault/v2@v2.1.0

Weitere Informationen finden Sie in der offiziellen Go-Dokumentation.

Bazel

Wenn Sie die Erweiterung Tink HashiCorp Vault mit Bazel verwenden möchten, sollten Sie bazel-gazelle verwenden. Sie können sie in WORKSPACE so verwenden:

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 stellt die folgenden Java-Bibliotheken zur Verfügung:

Die Java-Version von Tink unterstützt Java 8 oder höher. Sie können entweder die Maven-Artefakte von Tink Java in Ihr Maven- oder Gradle-Projekt einbinden oder Bazel verwenden.

Tink Android wird ab API-Level 24 vollständig unterstützt. Die meisten Teile von Tink funktionieren voraussichtlich ab API-Level 21. Die Teile, in denen Tink mit API-Level 21 nicht sofort einsatzbereit ist, sind:

  • Für die JWT-Bibliothek ist API-Level 24 erforderlich, da sie Klassen wie java.util.Optional verwendet. Diese Einschränkung kann durch Zuckerung: vermieden werden.
  • Die Klassen in com.google.crypto.tink.integration.android werden erst ab API-Level 23 vollständig getestet.
  • Einige APIs in com.google.crypto.tink.streamingaead verwenden SeekableByteBufferChannel, das erst ab API-Level 24 verfügbar ist.

Aus technischen Gründen testen wir Tink nur für Android in der internen Infrastruktur von Google. Wir erwarten in diesem Fall keine Probleme. Sollten dennoch Probleme auftreten, melden Sie diese bitte.

Tink Android erfordert keine Proguard-Konfiguration.

Tink Java (tink-java)

Maven

Sie können Tink Java und die Tink Android-Bibliothek mit Maven einbinden:

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

Wenn Ihre App auf Android ausgerichtet ist, können Sie tink-android in Gradle mit dem folgenden Code verwenden:

dependencies {
  implementation 'com.google.crypto.tink:tink-android:1.13.0'
}

Bazel

Die empfohlene Methode, mit der Bazel-Nutzer Tink Java als Abhängigkeit hinzufügen können, besteht darin, das Maven-Releaseartefakt mit dem Tool rules_jvm_external in ihrer WORKSPACE-Datei zu installieren:

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",
    ],
)

Wenn Sie tink-java aus der Quelle erstellen möchten, um beispielsweise ein bestimmtes Commit anzupinnen, können Sie es als http_archive in die Datei WORKSPACE aufnehmen:

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",
  ],
)

Tink Java AWS KMS-Erweiterung (tink-java-awskms)

Maven

Sie können Tink Java und die Tink Android-Bibliothek mit Maven einbinden:

<dependencies>
  <dependency>
    <groupId>com.google.crypto.tink</groupId>
    <artifactId>tink-awskms</artifactId>
    <version>1.9.1</version>
  </dependency>
</dependencies>

Bazel

Sie können das Maven-Artefakt com.google.crypto.tink:tink-awskms zusammen mit com.google.crypto.tink:tink mit dem Tool rules_jvm_external installieren.

# ...

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",
    ],
)

Alternativ können Sie sie als http_archive-Abhängigkeit hinzufügen:

# ...

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",
    ],
)

Tink Java Google Cloud KMS-Erweiterung (tink-java-gcpkms)

Maven

<dependencies>
  <dependency>
    <groupId>com.google.crypto.tink</groupId>
    <artifactId>tink-gcpkms</artifactId>
    <version>1.10.0/version>
  </dependency>
</dependencies>

Bazel

Sie können das Maven-Artefakt com.google.crypto.tink:tink-gcpkms zusammen mit com.google.crypto.tink:tink mit dem Tool rules_jvm_external installieren.

# ...

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",
    ],
)

Alternativ können Sie sie als http_archive-Abhängigkeit hinzufügen:

# ...

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",
    ],
)

Tink Java Apps-Erweiterungen (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

Sie können jedes der Maven-Artefakte vom Typ com.google.crypto.tink:apps-* mit dem Tool rules_jvm_external installieren.

# ...

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

HOWTO auf GitHub

Python

Die Tink-Python-Bibliothek tink-py unterstützt Python 3.8 oder höher unter macOS (x86-64 und ARM64), Linux (x86-64 und ARM64) und Windows (x86-64). Die neueste Version ist 1.10.0. Er kann lokal mit Pip installiert oder mit Bazel verwendet werden.

Tink Python ist in AWS KMS, Google Cloud KMS und HashiCorp Vault eingebunden.

Pippin

Sie können den binären Release von Tink Python für Ihr System PyPI mit dem folgenden Befehl installieren:

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

Wenn kein Binärpaket für Ihre Umgebung veröffentlicht wird, erstellt pip automatisch das Projekt mit der in PyPI veröffentlichten Quellverteilung. In diesem Fall müssen Sie Bazel oder Bazelisk und den protobuf-Compiler installieren, um das Projekt erfolgreich zu erstellen.

Bazel

Bazel-Nutzer können Tink Python so in ihre WORKSPACE-Datei aufnehmen:

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")