टिंक सेट अप

आपके पास सोर्स से Tink बनाने या भाषा के हिसाब से किसी पैकेज का इस्तेमाल करने का विकल्प है. इन निर्देशों से शुरुआत करें.

Tink को इंस्टॉल और सेट अप करने के बाद, इस पेज के आखिर में दिए गए अगले चरणों के मुताबिक़ आगे बढ़ें.

C++

Tink से ये C++ लाइब्रेरी मिलती हैं:

टिंक C++ (टिंक-सीसी)

C++ टिंक, इन बातों पर निर्भर करता है:

Tink C++ इस्तेमाल करके, ये काम किए जा सकते हैं:

  • सी++ >= 14
  • ओएस:
    • UbuntuLTS >= 20.04 (x86_64)
    • macOS >= 12.5 मॉन्टेरे (x86_64)
    • Windows का सर्वर >= 2019 (x86_64)
  • कंपाइलर:
    • जीसीसी >= 7.5.0
    • Apple Clang >= 14
    • एमएसवीसी >= 2019
  • बिल्ड सिस्टम:

CMake

आपको tink-cc को इन-ट्री डिपेंडेंसी के तौर पर जोड़ना चाहिए. उदाहरण के लिए:

cmake_minimum_required(VERSION 3.13)
project(YourProject CXX)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
set(CMAKE_CXX_STANDARD 14)
include(FetchContent)

# Import Tink as an in-tree dependency.
FetchContent_Declare(
  tink
  URL       https://github.com/tink-crypto/tink-cc/archive/refs/tags/v2.2.0.zip
  URL_HASH  SHA256=88e1442182452caa16d0954ceaf73e17b0aa30837ee6c0cc16bf0112313ce753
)
FetchContent_GetProperties(tink)
if(NOT googletest_POPULATED)
  FetchContent_Populate(tink)
    add_subdirectory(${tink_SOURCE_DIR} ${tink_BINARY_DIR} EXCLUDE_FROM_ALL)
endif()

add_executable(your_app your_app.cc)
target_link_libraries(your_app tink::static)

Bazel

बीज़ेडएलमॉड

अगर मॉड्यूल के साथ Baज़ल का इस्तेमाल किया जा रहा है, तो अपनी MODULE.bazel फ़ाइल में यह जोड़ें:

bazel_dep(name = "tink_cc", version = "2.2.0")

ऑफ़िस

अगर WORKSPACE फ़ाइलों के साथ Basel का इस्तेमाल किया जाता है, तो अपनी WORKSPACE फ़ाइल में यह जानकारी जोड़ें:

load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive")

http_archive(
    name = "tink_cc",
    urls = ["https://github.com/tink-crypto/tink-cc/archive/refs/tags/v2.2.0.zip"],
    strip_prefix = "tink-2.2.0",
    sha256 = "88e1442182452caa16d0954ceaf73e17b0aa30837ee6c0cc16bf0112313ce753",
)

load("@tink_cc//:tink_cc_deps.bzl", "tink_cc_deps")

tink_cc_deps()

load("@tink_cc//:tink_cc_deps_init.bzl", "tink_cc_deps_init")

tink_cc_deps_init()

Tink C++ AWS KMS एक्सटेंशन (tink-cc-awskms)

Tink C++ Google Cloud केएमएस की जानकारी इन बातों पर निर्भर करती है:

Tink C++ AWS केएमएस की सुविधा काम करती है:

  • सी++ >= 14
  • ओएस:
    • UbuntuLTS >= 20.04 (x86_64)
    • macOS >= 12.5 मॉन्टेरे (x86_64)
  • कंपाइलर:
    • जीसीसी >= 7.5.0
    • Apple Clang >= 14
  • बिल्ड सिस्टम:
    • Bazel >= 6 एलटीएस

Bazel

आपको अपने प्रोजेक्ट की WORKSPACE फ़ाइल में, यह जानकारी जोड़नी चाहिए:

load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive")

http_archive(
    name = "tink_cc",
    urls = ["https://github.com/tink-crypto/tink-cc/archive/refs/tags/v2.2.0.zip"],
    strip_prefix = "tink-2.2.0",
    sha256 = "88e1442182452caa16d0954ceaf73e17b0aa30837ee6c0cc16bf0112313ce753",
)

load("@tink_cc//:tink_cc_deps.bzl", "tink_cc_deps")

tink_cc_deps()

load("@tink_cc//:tink_cc_deps_init.bzl", "tink_cc_deps_init")

tink_cc_deps_init()

http_archive(
    name = "tink_cc_awskms",
    urls = ["https://github.com/tink-crypto/tink-cc-awskms/archive/refs/tags/v2.0.1.zip"],
    strip_prefix = "tink-cc-awskms-2.0.1",
    sha256 = "366319b269f62af120ee312ce4c99ce3738ceb23ce3f9491b4859432f8b991a4",
)

load("@tink_cc_awskms//:tink_cc_awskms_deps.bzl", "tink_cc_awskms_deps")

tink_cc_awskms_deps()

Tink C++ Google Cloud KMS एक्सटेंशन (tink-cc-gcpkms)

Tink C++ Google Cloud केएमएस की जानकारी इन बातों पर निर्भर करती है:

Tink C++ Google Cloud KMS इनके साथ काम करता है:

  • सी++ >= 14
  • ओएस:
    • UbuntuLTS >= 20.04 (x86_64)
    • macOS >= 12.5 मॉन्टेरे (x86_64)
  • कंपाइलर:
    • जीसीसी >= 7.5.0
    • Apple Clang >= 14
  • बिल्ड सिस्टम:
    • Bazel >= 6 एलटीएस

Bazel

आपको अपने प्रोजेक्ट की WORKSPACE फ़ाइल में, यह जानकारी जोड़नी चाहिए:

load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive")

http_archive(
    name = "tink_cc_gcpkms",
    urls = ["https://github.com/tink-crypto/tink-cc-gcpkms/releases/download/v2.2.0/tink-cc-gcpkms-2.2.0.zip"],
    strip_prefix = "tink-cc-gcpkms-2.2.0",
    sha256 = "ffb9d05c64ca28b5eb54fe79e7c3f93fad68f00e45f74f6b9ce1bd3a32b3d6fd",
)

load("@tink_cc_gcpkms//:tink_cc_gcpkms_deps.bzl", "tink_cc_gcpkms_deps")

tink_cc_gcpkms_deps()

load("@tink_cc_gcpkms//:tink_cc_gcpkms_deps_init.bzl", "tink_cc_gcpkms_deps_init")

tink_cc_gcpkms_deps_init(register_go = True)

शुरू करें

Tink से ये लाइब्रेरी मिलती हैं:

Tink Go लाइब्रेरी को Go मॉड्यूल के तौर पर पब्लिश किया जाता है, जिसका इस्तेमाल स्टैंडर्ड गो टूल या Bazel के साथ किया जा सकता है.

टिंक गो (टिंक-गो)

टूलिंग का इस्तेमाल करें

अपनी प्रोजेक्ट डायरेक्ट्री से यह कमांड चलाएं:

go get github.com/tink-crypto/tink-go/v2@v2.2.0

आधिकारिक Go दस्तावेज़ देखें.

Bazel

अगर आपको Bazel के साथ Tink Go का इस्तेमाल करना है, तो आपको bazel-gazelle का इस्तेमाल करना चाहिए. इसका इस्तेमाल, अपने WORKSPACE में इस तरह किया जा सकता है:

load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive")

http_archive(
    name = "io_bazel_rules_go",
    integrity = "sha256-gKmCd60TEdrNg3+bFttiiHcC6fHRxMn3ltASGkbI4YQ=",
    urls = [
"https://mirror.bazel.build/github.com/bazelbuild/rules_go/releases/download/v0.46.0/rules_go-v0.46.0.zip",
        "https://github.com/bazelbuild/rules_go/releases/download/v0.46.0/rules_go-v0.46.0.zip",
    ],
)

http_archive(
    name = "bazel_gazelle",
    integrity = "sha256-MpOL2hbmcABjA1R5Bj2dJMYO2o15/Uc5Vj9Q0zHLMgk=",
    urls = [
        "https://mirror.bazel.build/github.com/bazelbuild/bazel-gazelle/releases/download/v0.35.0/bazel-gazelle-v0.35.0.tar.gz",
        "https://github.com/bazelbuild/bazel-gazelle/releases/download/v0.35.0/bazel-gazelle-v0.35.0.tar.gz",
    ],
)

TINK_GO_VERSION="2.2.0"
TINK_GO_SHA256="fea1ff9ed06a7302e3496587834a53f91235085e45e3de03af80b897514b7a1b"

http_archive(
    name = "com_github_tink_crypto_tink_go_v2",
    urls = ["https://github.com/tink-crypto/tink-go/releases/download/v%s/tink-go-%s.zip" % (TINK_GO_VERSION, TINK_GO_VERSION)],
    strip_prefix = "tink-go-%s" % TINK_GO_VERSION,
    sha256 = TINK_GO_SHA256,
)

load("@io_bazel_rules_go//go:deps.bzl", "go_register_toolchains", "go_rules_dependencies")

load("@bazel_gazelle//:deps.bzl", "gazelle_dependencies", "go_repository")

load("@com_github_tink_crypto_tink_go_v2//:deps.bzl", tink_go_dependencies="go_dependencies")

tink_go_dependencies()

#######################################
#
# Your project dependencies here.
#
#######################################

go_rules_dependencies()

go_register_toolchains(version = "1.20.10")

gazelle_dependencies()

Tink Go AWS केएमएस एक्सटेंशन (tink-go-awskms)

टूलिंग का इस्तेमाल करें

अपनी प्रोजेक्ट डायरेक्ट्री से यह कमांड चलाएं:

go get github.com/tink-crypto/tink-go-awskms/v2@2.1.0

आधिकारिक Go दस्तावेज़ देखें.

Bazel

अगर आपको Bazel के साथ Tink Go AWS केएमएस एक्सटेंशन का इस्तेमाल करना है, तो आपको bazel-gazelle का इस्तेमाल करना चाहिए. इसका इस्तेमाल, अपने WORKSPACE में इस तरह किया जा सकता है:

load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive")

http_archive(
    name = "io_bazel_rules_go",
    sha256 = "6dc2da7ab4cf5d7bfc7c949776b1b7c733f05e56edc4bcd9022bb249d2e2a996",
    urls = [
        "https://mirror.bazel.build/github.com/bazelbuild/rules_go/releases/download/v0.39.1/rules_go-v0.39.1.zip",
        "https://github.com/bazelbuild/rules_go/releases/download/v0.39.1/rules_go-v0.39.1.zip",
    ],
)

http_archive(
    name = "bazel_gazelle",
    sha256 = "ecba0f04f96b4960a5b250c8e8eeec42281035970aa8852dda73098274d14a1d",
    urls = [
        "https://mirror.bazel.build/github.com/bazelbuild/bazel-gazelle/releases/download/v0.29.0/bazel-gazelle-v0.29.0.tar.gz",
        "https://github.com/bazelbuild/bazel-gazelle/releases/download/v0.29.0/bazel-gazelle-v0.29.0.tar.gz",
    ],
)

# [Optional]: tink-go is imported as a go_repository by tink_go_awskms_dependencies.
# this is needed only if the user wants to pin to a specific commit/version of tink-go.
# TINK_GO_VERSION="2.2.0"
# TINK_GO_SHA256="fea1ff9ed06a7302e3496587834a53f91235085e45e3de03af80b897514b7a1b"
#
# http_archive(
#     name = "com_github_tink_crypto_tink_go_v2",
#     urls = ["https://github.com/tink-crypto/tink-go/releases/download/v%s/tink-go-%s.zip" % (TINK_GO_VERSION, TINK_GO_VERSION)],
#     strip_prefix = "tink-go-%s" % TINK_GO_VERSION,
#     sha256 = TINK_GO_SHA256,
# )

http_archive(
    name = "com_github_tink_crypto_tink_go_awskms_v2",
    urls = ["https://github.com/tink-crypto/tink-go-awskms/releases/tag/v2.1.0.zip"],
    strip_prefix = "tink-go-awskms-2.1.0",
    sha256 = "2d99ea5dd0106703385cc12c7a969fca86b338a03e6694dbcf5b273011b5fdba",
)

load("@io_bazel_rules_go//go:deps.bzl", "go_register_toolchains", "go_rules_dependencies")

load("@bazel_gazelle//:deps.bzl", "gazelle_dependencies", "go_repository")

# [Optional]: tink-go is imported as a go_repository by tink_go_awskms_dependencies.
# this is needed only if the user wants to pin to a specific commit/version of tink-go.
# load("@com_github_tink_crypto_tink_go_v2//:deps.bzl", tink_go_dependencies="go_dependencies")
#
# tink_go_dependencies()

load("@com_github_tink_crypto_tink_go_awskms_v2//:deps.bzl", "tink_go_awskms_dependencies")

tink_go_awskms_dependencies()

#######################################
#
# Your project dependencies here.
#
#######################################

go_rules_dependencies()

go_register_toolchains(version = "1.19.9")

gazelle_dependencies()

Tink Go Google Cloud KMS एक्सटेंशन (tink-go-gcpkms)

टूलिंग का इस्तेमाल करें

अपनी प्रोजेक्ट डायरेक्ट्री से यह कमांड चलाएं:

go get github.com/tink-crypto/tink-go-gcpkms/v2@v2.2.0

आधिकारिक Go दस्तावेज़ देखें.

Bazel

अगर आपको Bazel के साथ Tink Go Google Cloud केएमएस एक्सटेंशन का इस्तेमाल करना है, तो आपको bazel-gazelle का इस्तेमाल करना चाहिए. इसका इस्तेमाल, अपने WORKSPACE में इस तरह किया जा सकता है:

load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive")

# Release X.25.2 from 2024-01-09.
http_archive(
    name = "com_google_protobuf",
    sha256 = "5e8e2b369a6fcaa24fada21135782eef147aec467cd286c108936a3277e88d2b",
    strip_prefix = "protobuf-25.2",
    urls = ["https://github.com/protocolbuffers/protobuf/releases/download/v25.2/protobuf-25.2.zip"],
)

# Release from 2023-04-20
http_archive(
    name = "io_bazel_rules_go",
    sha256 = "6dc2da7ab4cf5d7bfc7c949776b1b7c733f05e56edc4bcd9022bb249d2e2a996",
    urls = [
        "https://mirror.bazel.build/github.com/bazelbuild/rules_go/releases/download/v0.39.1/rules_go-v0.39.1.zip",
        "https://github.com/bazelbuild/rules_go/releases/download/v0.39.1/rules_go-v0.39.1.zip",
    ],
)

# Release from 2023-01-14
http_archive(
    name = "bazel_gazelle",
    sha256 = "ecba0f04f96b4960a5b250c8e8eeec42281035970aa8852dda73098274d14a1d",
    urls = [
        "https://mirror.bazel.build/github.com/bazelbuild/bazel-gazelle/releases/download/v0.29.0/bazel-gazelle-v0.29.0.tar.gz",
        "https://github.com/bazelbuild/bazel-gazelle/releases/download/v0.29.0/bazel-gazelle-v0.29.0.tar.gz",
    ],
)

# [Optional]: tink-go is imported as a go_repository by tink_go_gcpkms_dependencies.
# this is needed only if the user wants to pin to a specific commit/version of tink-go.
# TINK_GO_VERSION="2.2.0"
# TINK_GO_SHA256="fea1ff9ed06a7302e3496587834a53f91235085e45e3de03af80b897514b7a1b"
#
# http_archive(
#     name = "com_github_tink_crypto_tink_go_v2",
#     urls = ["https://github.com/tink-crypto/tink-go/releases/download/v%s/tink-go-%s.zip" % (TINK_GO_VERSION, TINK_GO_VERSION)],
#     strip_prefix = "tink-go-%s" % TINK_GO_VERSION,
#     sha256 = TINK_GO_SHA256,
# )

http_archive(
    name = "com_github_tink_crypto_tink_go_gcpkms_v2",
    urls = ["https://github.com/tink-crypto/tink-go-gcpkms/download/v2.2.0/tink-go-gcpkms-2.2.0.zip"],
    strip_prefix = "tink-go-gcpkms-2.2.0",
    sha256 = "78177646479314e19c467a9eac90ab96667581b4d6ea5e485c5d2643dfc9b55b",
)

load("@io_bazel_rules_go//go:deps.bzl", "go_register_toolchains", "go_rules_dependencies")

load("@bazel_gazelle//:deps.bzl", "gazelle_dependencies", "go_repository")

# [Optional]: tink-go is imported as a go_repository by tink_go_gcpkms_dependencies.
# this is needed only if the user wants to pin to a specific commit/version of tink-go.
# load("@com_github_tink_crypto_tink_go_v2//:deps.bzl", tink_go_dependencies="go_dependencies")
#
# tink_go_dependencies()

load("@com_github_tink_crypto_tink_go_gcpkms_v2//:deps.bzl", "tink_go_gcpkms_dependencies")

tink_go_awskms_dependencies()

#######################################
#
# Your project dependencies here.
#
#######################################

go_rules_dependencies()

go_register_toolchains(version = "1.20.13")

gazelle_dependencies()

Tink Go HashiCorp Vault का एक्सटेंशन (tink-go-hcVault)

टूलिंग का इस्तेमाल करें

अपनी प्रोजेक्ट डायरेक्ट्री से यह कमांड चलाएं:

go get github.com/tink-crypto/tink-go-hcvault/v2@v2.1.0

आधिकारिक Go दस्तावेज़ देखें.

Bazel

अगर आपको Bazel के साथ Tink HashiCorp Vault का एक्सटेंशन इस्तेमाल करना है, तो आपको bazel-gazelle का इस्तेमाल करना चाहिए. इसका इस्तेमाल, अपने WORKSPACE में इस तरह किया जा सकता है:

load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive")

http_archive(
    name = "io_bazel_rules_go",
    sha256 = "6dc2da7ab4cf5d7bfc7c949776b1b7c733f05e56edc4bcd9022bb249d2e2a996",
    urls = [
        "https://mirror.bazel.build/github.com/bazelbuild/rules_go/releases/download/v0.39.1/rules_go-v0.39.1.zip",
        "https://github.com/bazelbuild/rules_go/releases/download/v0.39.1/rules_go-v0.39.1.zip",
    ],
)

http_archive(
    name = "bazel_gazelle",
    sha256 = "ecba0f04f96b4960a5b250c8e8eeec42281035970aa8852dda73098274d14a1d",
    urls = [
        "https://mirror.bazel.build/github.com/bazelbuild/bazel-gazelle/releases/download/v0.29.0/bazel-gazelle-v0.29.0.tar.gz",
        "https://github.com/bazelbuild/bazel-gazelle/releases/download/v0.29.0/bazel-gazelle-v0.29.0.tar.gz",
    ],
)

# [Optional]: tink-go is imported as a go_repository by tink_go_hcvault_dependencies.
# this is needed only if the user wants to pin to a specific commit/version of tink-go.
# TINK_GO_VERSION="2.2.0"
# TINK_GO_SHA256="fea1ff9ed06a7302e3496587834a53f91235085e45e3de03af80b897514b7a1b"
#
# http_archive(
#     name = "com_github_tink_crypto_tink_go_v2",
#     urls = ["https://github.com/tink-crypto/tink-go/releases/download/v%s/tink-go-%s.zip" % (TINK_GO_VERSION, TINK_GO_VERSION)],
#     strip_prefix = "tink-go-%s" % TINK_GO_VERSION,
#     sha256 = TINK_GO_SHA256,
# )

http_archive(
    name = "com_github_tink_crypto_tink_go_hcvault_v2",
    urls = ["https://github.com/tink-crypto/tink-go-hcvault/download/v2.1.0/tink-go-hcvault-2.1.0.zip"],
    strip_prefix = "tink-go-hcvault-2.1.0",
    sha256 = "b053b67ccc308cfe1cff92d6a74b573d058c5ffe950263026f3d46cb67653def",
)

load("@io_bazel_rules_go//go:deps.bzl", "go_register_toolchains", "go_rules_dependencies")

load("@bazel_gazelle//:deps.bzl", "gazelle_dependencies", "go_repository")

# [Optional]: tink-go is imported as a go_repository by tink_go_hcvault_dependencies.
# this is needed only if the user wants to pin to a specific commit/version of tink-go.
# load("@com_github_tink_crypto_tink_go_v2//:deps.bzl", tink_go_dependencies="go_dependencies")
#
# tink_go_dependencies()

load("@com_github_tink_crypto_tink_go_hcvault_v2//:deps.bzl", "tink_go_hcvault_dependencies")

tink_go_awskms_dependencies()

#######################################
#
# Your project dependencies here.
#
#######################################

go_rules_dependencies()

go_register_toolchains(version = "1.20.14")

gazelle_dependencies()

Java

Tink ये Java लाइब्रेरी उपलब्ध कराता है:

Tink का Java वर्शन, Java 8 या उसके बाद के वर्शन पर काम करता है. आपके पास अपने Maven या Gradle प्रोजेक्ट में Tink Java Maven आर्टफ़ैक्ट शामिल करने या Bazel का इस्तेमाल करने का विकल्प है.

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

  • JWT लाइब्रेरी को एपीआई लेवल 24 की ज़रूरत होती है, क्योंकि यह java.util.Optional जैसी क्लास का इस्तेमाल करती है. इस समस्या से बचने के लिए, डिस्यूगरिंग का इस्तेमाल किया जा सकता है.
  • com.google.crypto.tink.integration.android की क्लास को पूरी तरह से टेस्ट किया जाता है. ये टेस्ट, एपीआई लेवल 23 से शुरू होते हैं.
  • com.google.crypto.tink.streamingaead के कुछ एपीआई, SeekableByteBufferChannel का इस्तेमाल करते हैं, जो सिर्फ़ एपीआई लेवल 24 पर उपलब्ध है.

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

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

टिंक Java (tink-java)

Maven

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

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

अगर Android को टारगेट किया जा रहा है, तो Gradle से tink-android का इस्तेमाल किया जा सकता है. इसके लिए, इनका इस्तेमाल किया जा सकता है:

dependencies {
  implementation 'com.google.crypto.tink:tink-android:1.14.0'
}

Bazel

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

load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive")

RULES_JVM_EXTERNAL_TAG = "4.5"
RULES_JVM_EXTERNAL_SHA ="b17d7388feb9bfa7f2fa09031b32707df529f26c91ab9e5d909eb1676badd9a6"

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/archive/refs/tags/%s.zip" % 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.14.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="27b061bb9ed1af1a6f538410bff443290e427e66"
TINK_SHA256="e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"

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 Java AWS केएमएस एक्सटेंशन (tink-java-awskms)

Maven

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

<dependencies>
  <dependency>
    <groupId>com.google.crypto.tink</groupId>
    <artifactId>tink-awskms</artifactId>
    <version>1.9.1</version>
  </dependency>
</dependencies>

Bazel

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

# ...

maven_install(
    artifacts = [
        "com.google.crypto.tink:tink:1.14.0",
        "com.google.crypto.tink:tink-awskms:1.9.1",
        # ... other dependencies ...
    ],
    repositories = [
        "https://maven.google.com",
        "https://repo1.maven.org/maven2",
    ],
)

इसके अलावा, इसे http_archive डिपेंडेंसी के तौर पर शामिल किया जा सकता है:

# ...

http_archive(
    name = "tink_java",
    urls = ["https://github.com/tink-crypto/tink-java/releases/download/v1.14.0/tink-java-1.14.0.zip"],
    strip_prefix = "tink-java-1.14.0",
    sha256 = "54316e74f759bf7562d7a63c0340c66fe63917310433e547ad6d37acb75fa7c8",
)

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.9.1/tink-java-awskms-1.9.1.zip"],
    strip_prefix = "tink-java-awskms-1.9.1",
    sha256 = "57bd15391ec949660a8d4f0b0aa3cdd1bba2938a49c2a41f64349312873bcc56",
)

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

Tink Java Google Cloud केएमएस एक्सटेंशन (tink-java-gcpkms)

Maven

<dependencies>
  <dependency>
    <groupId>com.google.crypto.tink</groupId>
    <artifactId>tink-gcpkms</artifactId>
    <version>1.10.0/version>
  </dependency>
</dependencies>

Bazel

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

# ...

maven_install(
    artifacts = [
        "com.google.crypto.tink:tink:1.14.0",
        "com.google.crypto.tink:tink-gcpkms:1.10.0",
        # ... other dependencies ...
    ],
    repositories = [
        "https://maven.google.com",
        "https://repo1.maven.org/maven2",
    ],
)

इसके अलावा, इसे http_archive डिपेंडेंसी के तौर पर शामिल किया जा सकता है:

# ...

http_archive(
    name = "tink_java",
    urls = ["https://github.com/tink-crypto/tink-java/releases/download/v1.14.0/tink-java-1.14.0.zip"],
    strip_prefix = "tink-java-1.14.0",
    sha256 = "54316e74f759bf7562d7a63c0340c66fe63917310433e547ad6d37acb75fa7c8",
)

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)

Maven

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

ObjC

GitHub पर HowTO देखें

Python

Tink Python लाइब्रेरी, tink-py, macOS (x86-64 और ARM64), Linux (x86-64 और ARM64), और Windows (x86-64) पर Python 3.8 या उसके बाद के वर्शन के साथ काम करती है. सबसे नई रिलीज़ 1.10.0 है. इसे Pip की मदद से या Bazel के साथ इस्तेमाल करके, डिवाइस में इंस्टॉल किया जा सकता है.

Tink Python, AWS KMS, Google Cloud KMS, और HashiCorp Vault के साथ इंटिग्रेशन की सुविधा देता है.

पीआईपी

PyPI से अपने सिस्टम के लिए Tink Python बाइनरी रिलीज़ इंस्टॉल करने के लिए, यह निर्देश अपनाएं:

pip3 install tink==1.10.0
# Core Tink + Google Cloud KMS extension.
pip3 install tink[gcpkms]==1.10.0
# Core Tink + AWS KMS extension.
pip3 install tink[awskms]==1.10.0
# Core Tink + HashiCorp Vault KMS extension.
pip3 install tink[hcvault]==1.10.0
# Core Tink + all the KMS extensions.
pip3 install tink[all]==1.10.0

अगर आपके एनवायरमेंट के लिए बाइनरी पैकेज पब्लिश नहीं किया गया है, तो pip PyPI पर पब्लिश किए गए सोर्स डिस्ट्रिब्यूशन का इस्तेमाल करके, अपने-आप प्रोजेक्ट बनाने में मदद करेगा. अगर ऐसा है, तो आपको प्रोजेक्ट बनाने के लिए, Bazel या Bazelisk और प्रोटोबफ़ कंपाइलर की ज़रूरत पड़ेगी.

Bazel

Bazel के उपयोगकर्ता अपनी WORKSPACE फ़ाइल में Tink Python को इस तरह शामिल कर सकते हैं:

load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive")

http_archive(
    name = "tink_py",
    urls = ["https://github.com/tink-crypto/tink-py/releases/download/v1.10.0/tink-py-1.10.0.zip"],
    strip_prefix = "tink-py-1.10.0",
    sha256 = "767453aae4aad6de4fbb4162992184aa427b7b27864fe9912c270b24c673e1cc",
)

load("@tink_py//:tink_py_deps.bzl", "tink_py_deps")
tink_py_deps()

load("@rules_python//python:repositories.bzl", "py_repositories")
py_repositories()

load("@tink_py//:tink_py_deps_init.bzl", "tink_py_deps_init")
tink_py_deps_init("tink_py")

अगले चरण

Tink सेट अप करने के बाद, Tink इस्तेमाल करने के सामान्य तरीके अपनाएं:

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