Tink Java einrichten

Fahren Sie nach der Installation und Einrichtung von Tink mit Nächste Schritte fort.

Tink Java

Die zentrale Java-Bibliothek ist tink-java mit 1.18.0 als neuestem Release. Tink Java unterstützt Java 11 oder höher.

Maven

Sie können Tink Java mit Maven einbinden:

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

Bazel

Maven-Release-Artefakt

Bazel-Nutzer können Tink Java als Abhängigkeit hinzufügen, indem sie das Maven-Release-Artefakt mit dem Tool rules_jvm_external in ihrer WORKSPACE-Datei installieren:

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

Aus Quelle erstellen

Wenn Sie tink-java aus dem Quellcode erstellen möchten, z. B. um einen bestimmten Commit zu fixieren, können Sie ihn als http_archive in Ihre WORKSPACE-Datei einfügen:

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

Die Android-Kernbibliothek ist tink-java mit 1.18.0 als neuestem Release.

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

  • Für die JWT-Bibliothek ist API-Level 24 erforderlich, da sie Klassen wie java.util.Optional verwendet. Diese Einschränkung kann durch Desugaring umgangen werden.

  • 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 auf Android nur in der internen Infrastruktur von Google. Wir gehen nicht davon aus, dass dadurch Probleme entstehen. Sollten Sie jedoch Probleme feststellen, melden Sie diese bitte.

Für Tink Android ist keine ProGuard-Konfiguration erforderlich.

Gradle

Sie können tink-android aus Gradle verwenden:

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

AWS KMS-Erweiterung

Die Tink Java-Erweiterung für AWS KMS ist tink-java-awskms mit 1.11.0 als neuestem Release.

Maven

Sie können die Tink Java AWS KMS-Erweiterung mit Maven einbinden:

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

Bazel

Maven-Release-Artefakt

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

# ...

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

Aus Quelle erstellen

Wenn Sie tink-awskms aus dem Quellcode erstellen möchten, z. B. um einen bestimmten Commit zu fixieren, können Sie ihn als http_archive in Ihre WORKSPACE-Datei einfügen:

# ...

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

Google Cloud KMS-Erweiterung

Die Tink Java-Erweiterung für Google Cloud KMS ist tink-java-gcpkms mit 1.10.0 als neueste Version.

Maven

Sie können die Tink Java Google Cloud KMS-Erweiterung mit Maven einbinden:

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

Bazel

Maven-Release-Artefakt

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

# ...

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

Aus Quelle erstellen

Wenn Sie tink-gcpkms aus dem Quellcode erstellen möchten, z. B. um einen bestimmten Commit zu fixieren, können Sie ihn als http_archive in Ihre WORKSPACE-Datei einfügen:

# ...

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

Tink Java-Apps

Die Bibliothek Tink Java Apps bietet Implementierungen für Google Payment Method Token, Server-Side Verification of Google AdMob Rewarded Ads und RFC 8291 – Message Encryption for Web Push mit 1.12.2 als aktueller Version.

Maven

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

<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

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

# ...

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

Nächste Schritte

Nachdem Sie Tink eingerichtet haben, fahren Sie mit den standardmäßigen Schritten zur Verwendung von Tink fort:

  • Primitive auswählen: Wählen Sie das Primitive aus, das für Ihren Anwendungsfall am besten geeignet ist.
  • Schlüssel verwalten: Schützen Sie Ihre Schlüssel mit Ihrem externen KMS, generieren Sie Schlüsselsätze und rotieren Sie Ihre Schlüssel.