Po zainstalowaniu i skonfigurowaniu Tink przejdź do sekcji Kolejne kroki.
Tink Java
Główną biblioteką Java jest tink-java w wersji 1.18.0. Tink Java obsługuje Java 8 lub nowszą.
Maven
Aby uwzględnić Tink Java, użyj Maven:
<dependency>
<groupId>com.google.crypto.tink</groupId>
<artifactId>tink</artifactId>
<version>1.18.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.18.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
Podstawową biblioteką Androida jest tink-java w wersji 1.18.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 23. Funkcje, które nie działają w Tink na poziomie API 23:
Biblioteka JWT wymaga poziomu API 24, ponieważ używa klas takich jak
java.util.Optional
. Można tego uniknąć, stosując desugaring.Niektóre interfejsy API w
com.google.crypto.tink.streamingaead
używają interfejsuSeekableByteBufferChannel
, który jest dostępny tylko na poziomie 24.
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 Proguarda.
Gradle
Możesz użyć tink-android
w Gradle:
dependencies {
implementation 'com.google.crypto.tink:tink-android:1.18.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ą Maven:
<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.18.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.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",
],
)
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ą Maven:
<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.18.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.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",
],
)
Aplikacje Tink napisane w Javie
Biblioteka Tink Java Apps zapewnia 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 (wersja 1.12.2 jest najnowszą).
Maven
Bibliotekę Tink Java Apps możesz uwzględnić za pomocą Maven:
<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
Możesz zainstalować dowolny artefakt Maven com.google.crypto.tink:apps-*
, używając narzędzia rules_jvm_external
.
# ...
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",
],
)
Dalsze kroki
Po zakończeniu konfigurowania Tink kontynuuj standardowymi czynnościami dotyczącymi korzystania 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.