Tink Java सेट अप करना

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 की मदद से कुंजियों को सुरक्षित रखें, कीसेट जनरेट करें, और कुंजियां रोटेट करें