אחרי שמתקינים ומגדירים את Tink, ממשיכים אל השלבים הבאים.
Tink Java
ספריית הליבה של Java היא tink-java, והגרסה האחרונה שלה היא 1.19.0. Tink Java תומך ב-Java 11 ואילך.
Maven
אפשר לכלול את Tink Java באמצעות Maven:
<dependency>
<groupId>com.google.crypto.tink</groupId>
<artifactId>tink</artifactId>
<version>1.19.0</version>
</dependency>
Bazel
משתמשי Bazel יכולים להוסיף את Tink Java כתלות על ידי הוספת השורה הבאה לקובץ MODULE.bazel:
bazel_dep(name = "tink_java", version = "1.19.0")
git_override(
module_name = "tink_java",
remote = "https://github.com/tink-crypto/tink-java",
tag = "v1.19.0",
)
Tink Android
ספריית הליבה של Android היא tink-java, והגרסה האחרונה שלה היא 1.19.0.
Tink Android נתמך באופן מלא החל מרמת API 24. רוב החלקים של Tink אמורים לפעול החל מרמת API 23. החלקים שבהם Tink לא פועל מחוץ לקופסה עם רמת API 23 הם:
ספריית ה-JWT דורשת רמת API 24 כי היא משתמשת במחלקות כמו
java.util.Optional. אפשר לעקוף את המגבלה הזו באמצעות desugaring.חלק מממשקי ה-API ב-
com.google.crypto.tink.streamingaeadמשתמשים ב-SeekableByteBufferChannelשזמין רק מרמת API 24.
מסיבות טכניות, אנחנו בודקים את Tink ב-Android רק בתשתית פנימית של Google. אנחנו לא צופים בעיות בעקבות השינוי הזה, אבל אם נתקלת בבעיות, אפשר לשלוח דיווח על בעיה.
לא צריך להגדיר את proguard ב-Tink Android.
Gradle
אפשר להשתמש ב-tink-android מ-Gradle:
dependencies {
implementation 'com.google.crypto.tink:tink-android:1.19.0'
}
AWS KMS Extension
התוסף Tink Java AWS KMS הוא tink-java-awskms והגרסה האחרונה שלו היא 1.11.0.
Maven
אפשר לכלול את התוסף Tink Java AWS KMS באמצעות Maven:
<dependencies>
<dependency>
<groupId>com.google.crypto.tink</groupId>
<artifactId>tink-awskms</artifactId>
<version>1.11.0</version>
</dependency>
</dependencies>
Bazel
פריט מידע שנוצר בתהליך פיתוח (Artifact) של גרסת Maven
אפשר להתקין את ארטיפקט Maven com.google.crypto.tink:tink-awskms לצד com.google.crypto.tink:tink באמצעות הכלי rules_jvm_external.
# ...
maven_install(
artifacts = [
"com.google.crypto.tink:tink:1.19.0",
"com.google.crypto.tink:tink-awskms:1.11.0",
# ... other dependencies ...
],
repositories = [
"https://maven.google.com",
"https://repo1.maven.org/maven2",
],
)
בנייה ממקור
אם רוצים ליצור tink-awskms ממקור, למשל כדי להצמיד קומיט ספציפי, אפשר לכלול אותו כ-http_archive בקובץ WORKSPACE:
# ...
http_archive(
name = "tink_java",
urls = ["https://github.com/tink-crypto/tink-java/releases/download/v1.19.0/tink-java-1.19.0.zip"],
strip_prefix = "tink-java-1.19.0",
sha256 = "196d7437806151eff3e74997bdf3b39e5ec025ca90ca793c1bd24ef1953cdce0",
)
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 Extension
התוסף Tink Java Google Cloud KMS הוא tink-java-gcpkms והגרסה העדכנית שלו היא 1.10.0.
Maven
אפשר לכלול את התוסף Tink Java Google Cloud KMS באמצעות Maven:
<dependencies>
<dependency>
<groupId>com.google.crypto.tink</groupId>
<artifactId>tink-gcpkms</artifactId>
<version>1.10.0/version>
</dependency>
</dependencies>
Bazel
פריט מידע שנוצר בתהליך פיתוח (Artifact) של גרסת Maven
אפשר להתקין את ארטיפקט Maven com.google.crypto.tink:tink-gcpkms לצד com.google.crypto.tink:tink באמצעות הכלי rules_jvm_external.
# ...
maven_install(
artifacts = [
"com.google.crypto.tink:tink:1.19.0",
"com.google.crypto.tink:tink-gcpkms:1.10.0",
# ... other dependencies ...
],
repositories = [
"https://maven.google.com",
"https://repo1.maven.org/maven2",
],
)
בנייה ממקור
אם רוצים ליצור tink-gcpkms ממקור, למשל כדי להצמיד קומיט ספציפי, אפשר לכלול אותו כ-http_archive בקובץ WORKSPACE:
# ...
http_archive(
name = "tink_java",
urls = ["https://github.com/tink-crypto/tink-java/releases/download/v1.19.0/tink-java-1.19.0.zip"],
strip_prefix = "tink-java-1.19.0",
sha256 = "196d7437806151eff3e74997bdf3b39e5ec025ca90ca793c1bd24ef1953cdce0",
)
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",
],
)
אפליקציות Java של Tink
הספרייה Tink Java Apps מספקת הטמעות של Google Payment Method Token, Server-Side Verification of Google AdMob Rewarded Ads ו-RFC 8291 - Message Encryption for Web Push עם 1.12.2 כגרסה האחרונה.
Maven
אפשר לכלול את ספריית Tink Java Apps באמצעות 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
אפשר להתקין כל אחד מפריטי ה-com.google.crypto.tink:apps-* Maven באמצעות הכלי 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",
],
)
השלבים הבאים
אחרי שמסיימים להגדיר את Tink, ממשיכים לשלבים הרגילים לשימוש ב-Tink:
- בחירת פרימיטיב – מחליטים באיזה פרימיטיב להשתמש בהתאם לתרחיש לדוגמה
- ניהול מפתחות – הגנה על המפתחות באמצעות KMS חיצוני, יצירת קבוצות מפתחות והחלפת מפתחות