Konfigurowanie Tink Java

Po zainstalowaniu i skonfigurowaniu Tink przejdź do sekcji Kolejne kroki.

Tink Java

Główna biblioteka Java to tink-java w wersji 1.16.0. Tink Java obsługuje wersję Java 8 lub nowszą.

Maven

Możesz uwzględnić Tink Java za pomocą Mavena:

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

Bazel

Artefakt wersji Maven

Zalecana metoda dodawania zależności Tink Java przez użytkowników Bazel polega na zainstalowaniu artefaktu wersji Maven za pomocą narzędzia rules_jvm_external w pliku 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",
    ],
)

Kompilowanie na podstawie źródła

Jeśli chcesz skompilować tink-java z źródła, np. aby przypiąć konkretny commit, możesz uwzględnić go jako http_archive w pliku 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

Główna biblioteka Androida to tink-java w wersji 1.16.0.

Tink na Androida jest w pełni obsługiwany od poziomu interfejsu API 24. Większość funkcji Tink powinna działać od poziomu API 21. Funkcje, które Tink nie obsługuje na poziomie API 21:

  • Biblioteka JWT wymaga poziomu API 24, ponieważ używa klas takich jak java.util.Optional. Można tego uniknąć, stosując desugaring.

  • Klasy w com.google.crypto.tink.integration.android są w pełni przetestowane tylko od poziomu interfejsu API 23.

  • Niektóre interfejsy API w com.google.crypto.tink.streamingaead używają interfejsu SeekableByteBufferChannel, który jest dostępny tylko od poziomu 24 interfejsu API.

Z powodów technicznych testujemy Tink na Androidzie tylko na wewnętrznej infrastrukturze Google. Nie spodziewamy się żadnych problemów, ale jeśli wystąpią, prześlij zgłoszenie.

Tink na Androida nie wymaga konfiguracji Proguard.

Gradle

Możesz użyć tink-androidGradle:

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

Rozszerzenie AWS KMS

Rozszerzenie Tink Java AWS KMS to tink-java-awskms w wersji 1.11.0.

Maven

Rozszerzenie Tink Java AWS KMS możesz uwzględnić za pomocą Mavena:

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

Bazel

Artefakt wersji Maven

Możesz zainstalować artefakt Maven com.google.crypto.tink:tink-awskms wraz z com.google.crypto.tink:tink za pomocą narzędzia 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",
    ],
)

Kompilowanie na podstawie źródła

Jeśli chcesz skompilować tink-awskms z źródła, na przykład aby przypiąć konkretny commit, możesz uwzględnić go jako http_archive w pliku 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",
    ],
)

Rozszerzenie Google Cloud KMS

Rozszerzenie Tink Java Google Cloud KMS to tink-java-gcpkms w wersji 1.10.0.

Maven

Rozszerzenie Tink Java Google Cloud KMS możesz uwzględnić za pomocą Mavena:

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

Bazel

Artefakt wersji Maven

Możesz zainstalować artefakt Maven com.google.crypto.tink:tink-gcpkms wraz z com.google.crypto.tink:tink za pomocą narzędzia 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",
    ],
)

Kompilowanie na podstawie źródła

Jeśli chcesz skompilować tink-gcpkms z źródła, na przykład aby przypiąć konkretny commit, możesz uwzględnić go jako http_archive w pliku 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",
    ],
)

Aplikacje Tink w Javie

Biblioteka Tink Java Apps udostępnia implementacje tokenu metody płatności Google, weryfikacji po stronie serwera reklam z nagrodą Google AdMob oraz RFC 8291 – szyfrowanie wiadomości na potrzeby powiadomień push w internecie (w wersji 1.11.0).

Maven

Bibliotekę Tink Java Apps możesz uwzględnić za pomocą Mavena:

<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

Za pomocą narzędzia rules_jvm_external możesz zainstalować dowolny artefakt Maven com.google.crypto.tink:apps-*.

# ...

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

Dalsze kroki

Po zakończeniu konfigurowania Tink kontynuuj standardowymi czynnościami związanymi z korzystaniem z Tink:

  • Wybierz typ obiektu – wybierz typ obiektu na podstawie przypadku użycia.
  • Zarządzaj kluczami – chronij klucze za pomocą zewnętrznej usługi KMS, generuj zestawy kluczy i rotuj klucze.