Tink Java सेट अप करना

Tink को इंस्टॉल और सेट अप करने के बाद, अगले चरण पर जाएं.

Tink Java

मुख्य Java लाइब्रेरी, tink-java है. इसकी सबसे नई रिलीज़ 1.16.0 है. Tink Java, Java 8 या उसके बाद के वर्शन के साथ काम करता है.

Maven

Maven का इस्तेमाल करके, Tink Java को शामिल किया जा सकता है:

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

Bazel

Maven रिलीज़ आर्टफ़ैक्ट

Bazel के उपयोगकर्ता, अपनी WORKSPACE फ़ाइल में rules_jvm_external टूल का इस्तेमाल करके Maven रिलीज़ आर्टफ़ैक्ट को इंस्टॉल करके, Tink Java को डिपेंडेंसी के तौर पर जोड़ सकते हैं. हमारा सुझाव है कि वे ऐसा करें:

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

सोर्स से बनाना

अगर आपको सोर्स से 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.16.0 है.

Tink Android, एपीआई लेवल 24 से पूरी तरह काम करता है. उम्मीद है कि एपीआई लेवल 21 से, Tink के ज़्यादातर हिस्से काम करेंगे. एपीआई लेवल 21 के साथ, Tink के ये हिस्से काम नहीं करते:

  • JWT लाइब्रेरी के लिए एपीआई लेवल 24 की ज़रूरत होती है, क्योंकि यह java.util.Optional जैसी क्लास का इस्तेमाल करती है. शुगर हटाने की प्रोसेस से, इस सीमा से बचा जा सकता है.

  • com.google.crypto.tink.integration.android में मौजूद क्लास की पूरी तरह से जांच, एपीआई लेवल 23 से ही की जाती है.

  • com.google.crypto.tink.streamingaead में मौजूद कुछ एपीआई, SeekableByteBufferChannel का इस्तेमाल करते हैं. यह एपीआई, सिर्फ़ एपीआई लेवल 24 से उपलब्ध है.

तकनीकी वजहों से, हम Android पर सिर्फ़ Google के इंटरनल इंफ़्रास्ट्रक्चर पर Tink की जांच करते हैं. हमें उम्मीद है कि इससे कोई समस्या नहीं आएगी. हालांकि, अगर आपको कोई समस्या आती है, तो कृपया समस्या दर्ज करें.

Tink Android के लिए, ProGuard कॉन्फ़िगरेशन की ज़रूरत नहीं होती.

ग्रेडल

Gradle में tink-android का इस्तेमाल इस तरह किया जा सकता है:

dependencies {
  implementation 'com.google.crypto.tink:tink-android:1.16.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 के साथ-साथ com.google.crypto.tink:tink-awskms Maven artifact को भी इंस्टॉल किया जा सकता है.

# ...

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

सोर्स से बनाएं

अगर आपको सोर्स से tink-awskms बनाना है, तो उदाहरण के लिए, किसी खास कमिट को पिन करने के लिए, उसे अपनी WORKSPACE फ़ाइल में http_archive के तौर पर शामिल किया जा सकता है:

# ...

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

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 के साथ-साथ com.google.crypto.tink:tink-gcpkms Maven artifact को भी इंस्टॉल किया जा सकता है.

# ...

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

सोर्स से बनाएं

अगर आपको सोर्स से tink-gcpkms बनाना है, तो उदाहरण के लिए, किसी खास कमिट को पिन करने के लिए, उसे अपनी WORKSPACE फ़ाइल में http_archive के तौर पर शामिल किया जा सकता है:

# ...

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

Tink Java ऐप्लिकेशन

Tink Java Apps लाइब्रेरी, Google पेमेंट के तरीके का टोकन, Google AdMob के इनाम वाले विज्ञापनों की सर्वर-साइड पुष्टि, और RFC 8291 - वेब पुश के लिए मैसेज एन्क्रिप्शन को लागू करने की सुविधा देती है. इस लाइब्रेरी का नया वर्शन 1.11.0 है.

Maven

Maven का इस्तेमाल करके, Tink Java ऐप्लिकेशन लाइब्रेरी को शामिल किया जा सकता है:

<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

rules_jvm_external टूल का इस्तेमाल करके, com.google.crypto.tink:apps-* Maven आर्टफ़ैक्ट में से किसी भी आर्टफ़ैक्ट को इंस्टॉल किया जा सकता है.

# ...

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

अगले चरण

Tink को सेट अप करने के बाद, Tink के इस्तेमाल के सामान्य चरणों को पूरा करें:

  • प्राइमटिव चुनना – इस्तेमाल के उदाहरण के आधार पर तय करें कि किस प्राइमटिव का इस्तेमाल करना है
  • कुंजियां मैनेज करना – बाहरी केएमएस की मदद से अपनी कुंजियों को सुरक्षित रखना, पासकोड सेट जनरेट करना, और पासकोड बदलना