Tink को इंस्टॉल और सेट अप करने के बाद, अगले चरण पर जाएं.
Tink Java
कोर Java लाइब्रेरी tink-java है. इसका सबसे नया वर्शन 1.18.0 है. Tink Java के लिए, Java 11 या इसके बाद के वर्शन की ज़रूरत होती है.
Maven
Maven का इस्तेमाल करके, Tink Java को शामिल किया जा सकता है:
<dependency>
<groupId>com.google.crypto.tink</groupId>
<artifactId>tink</artifactId>
<version>1.18.0</version>
</dependency>
Bazel
Maven रिलीज़ आर्टफ़ैक्ट
Bazel का इस्तेमाल करने वाले लोग, Tink Java को डिपेंडेंसी के तौर पर जोड़ने के लिए, हमारा यह सुझाव अपना सकते हैं. इसके लिए, उन्हें अपनी WORKSPACE
फ़ाइल में rules_jvm_external
टूल का इस्तेमाल करके, Maven रिलीज़ आर्टफ़ैक्ट इंस्टॉल करना होगा:
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",
],
)
सोर्स से बनाना
अगर आपको सोर्स से tink-java
बनाना है, तो उसे अपनी WORKSPACE
फ़ाइल में http_archive
के तौर पर शामिल करें. उदाहरण के लिए, किसी खास कमिट को पिन करने के लिए:
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
कोर Android लाइब्रेरी tink-java है. इसका सबसे नया वर्शन 1.18.0 है.
Tink Android, एपीआई लेवल 24 से काम करता है. Tink के ज़्यादातर हिस्से, एपीआई लेवल 23 से काम करने लगेंगे. एपीआई लेवल 23 के साथ, Tink के ये हिस्से बॉक्स से बाहर नहीं चलते:
JWT लाइब्रेरी के लिए एपीआई लेवल 24 की ज़रूरत होती है, क्योंकि यह
java.util.Optional
जैसी क्लास का इस्तेमाल करती है. डीसुगरिंग की मदद से, इस समस्या से बचा जा सकता है.com.google.crypto.tink.streamingaead
में कुछ एपीआई,SeekableByteBufferChannel
का इस्तेमाल करते हैं. यह सिर्फ़ एपीआई लेवल 24 से उपलब्ध है.
तकनीकी वजहों से, हम सिर्फ़ Google के इंटरनल इंफ़्रास्ट्रक्चर पर Android के लिए Tink की जांच करते हैं. हमें नहीं लगता कि इसकी वजह से कोई समस्या आएगी. हालांकि, अगर आपको कोई समस्या आती है, तो कृपया इसकी शिकायत करें.
Tink Android के लिए, ProGuard कॉन्फ़िगरेशन की ज़रूरत नहीं होती.
ग्रेडल
Gradle से tink-android
का इस्तेमाल किया जा सकता है:
dependencies {
implementation 'com.google.crypto.tink:tink-android:1.18.0'
}
AWS KMS एक्सटेंशन
Tink Java AWS KMS एक्सटेंशन, tink-java-awskms है. इसका नया वर्शन 1.11.0 है.
Maven
Maven का इस्तेमाल करके, Tink Java AWS KMS एक्सटेंशन को शामिल किया जा सकता है:
<dependencies>
<dependency>
<groupId>com.google.crypto.tink</groupId>
<artifactId>tink-awskms</artifactId>
<version>1.11.0</version>
</dependency>
</dependencies>
Bazel
Maven रिलीज़ आर्टफ़ैक्ट
rules_jvm_external
टूल का इस्तेमाल करके, com.google.crypto.tink:tink-awskms
Maven आर्टफ़ैक्ट
को com.google.crypto.tink:tink
के साथ इंस्टॉल किया जा सकता है.
# ...
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",
],
)
सोर्स से बनाना
अगर आपको सोर्स से tink-awskms
बनाना है, तो उदाहरण के लिए किसी खास कमिट को पिन करने के लिए, इसे अपनी WORKSPACE
फ़ाइल में http_archive
के तौर पर शामिल किया जा सकता है:
# ...
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 एक्सटेंशन
Tink Java Google Cloud KMS एक्सटेंशन, tink-java-gcpkms है. इसका नया वर्शन 1.10.0 है.
Maven
Maven का इस्तेमाल करके, Tink Java Google Cloud KMS एक्सटेंशन को शामिल किया जा सकता है:
<dependencies>
<dependency>
<groupId>com.google.crypto.tink</groupId>
<artifactId>tink-gcpkms</artifactId>
<version>1.10.0/version>
</dependency>
</dependencies>
Bazel
Maven रिलीज़ आर्टफ़ैक्ट
rules_jvm_external
टूल का इस्तेमाल करके, com.google.crypto.tink:tink-gcpkms
Maven आर्टफ़ैक्ट
को com.google.crypto.tink:tink
के साथ इंस्टॉल किया जा सकता है.
# ...
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",
],
)
सोर्स से बनाना
अगर आपको सोर्स से tink-gcpkms
बनाना है, तो उदाहरण के लिए किसी खास कमिट को पिन करने के लिए, इसे अपनी WORKSPACE
फ़ाइल में http_archive
के तौर पर शामिल किया जा सकता है:
# ...
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 ऐप्लिकेशन
Tink Java Apps लाइब्रेरी, Google पेमेंट के तरीके का टोकन, Google AdMob के इनाम वाले विज्ञापनों की सर्वर-साइड पुष्टि, और RFC 8291 - वेब पुश के लिए मैसेज एन्क्रिप्शन को लागू करने की सुविधा देती है. इसका सबसे नया वर्शन 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
rules_jvm_external
टूल का इस्तेमाल करके, com.google.crypto.tink:apps-*
Maven आर्टफ़ैक्ट में से कोई भी आर्टफ़ैक्ट इंस्टॉल किया जा सकता है.
# ...
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 की मदद से कुंजियों को सुरक्षित रखें, कीसेट जनरेट करें, और कुंजियां रोटेट करें