आपके पास सोर्स से Tink बनाने या भाषा के हिसाब से किसी पैकेज का इस्तेमाल करने का विकल्प है. इन निर्देशों से शुरुआत करें.
Tink को इंस्टॉल और सेट अप करने के बाद, इस पेज के आखिर में दिए गए अगले चरणों के मुताबिक़ आगे बढ़ें.
C++
Tink से ये C++ लाइब्रेरी मिलती हैं:
- C++ की मुख्य लाइब्रेरी, tink-cc. सबसे नई रिलीज़ 2.2.0 है
- tink-cc-awskms AWS केएमएस (KMS) एक्सटेंशन है जिसकी सबसे नई रिलीज़ 2.0.1 है.
- Google Cloud केएमएस एक्सटेंशन, tink-cc-gcpkms. सबसे नई रिलीज़ 2.2.0 है.
टिंक C++ (टिंक-सीसी)
C++ टिंक, इन बातों पर निर्भर करता है:
- प्रोटोबफ़ 26.1
- ऐबसेल एलटीएस 20230802.0
- BoringSSL या OpenSSL >=1.1.1
- RapidJSON 1.1.0
- googletest 1.14.0 (सिर्फ़ जांच के लिए)
- Wycheप्रूफ़ (सिर्फ़ टेस्ट के लिए)
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 केएमएस की जानकारी इन बातों पर निर्भर करती है:
- टिंक C++ 2.1.0
- AWS C++ SDK टूल 1.7.345
- googletest 1.11.0 (सिर्फ़ जांच के लिए)
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 केएमएस की जानकारी इन बातों पर निर्भर करती है:
- टिंक C++ 2.1.0
- जीआरपीसी 1.59.3
- Google Cloud C++ क्लाइंट लाइब्रेरी 2.16.0
- googletest 1.11.0 (सिर्फ़ जांच के लिए)
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 लाइब्रेरी, tink-go. सबसे नई रिलीज़ v2.2.0 है
- tink-go-awskms AWS केएमएस (KMS) एक्सटेंशन है जिसकी सबसे नई रिलीज़ 2.1.0 है.
- Google Cloud केएमएस एक्सटेंशन, tink-go-gcpkms. सबसे नई रिलीज़ 2.2.0 है.
- HashiCorp Vault एक्सटेंशन, tink-go-hcvault. सबसे नई रिलीज़ 2.1.0 है.
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 लाइब्रेरी उपलब्ध कराता है:
- Java और Android की मुख्य लाइब्रेरी, tink-java. सबसे नई रिलीज़ 1.14.0 है
- tink-java-awskms AWS केएमएस (KMS) एक्सटेंशन है. इसकी सबसे नई रिलीज़ 1.9.1 है.
- Google Cloud केएमएस (KMS) एक्सटेंशन, tink-java-gcpkms. सबसे नई रिलीज़ 1.10.0 है
- एक लाइब्रेरी, tink-java-apps, जो Google पेमेंट के तरीके वाले टोकन, Google AdMob के इनाम वाले विज्ञापनों के सर्वर-साइड की पुष्टि, और आरएफ़सी 8291 - वेब पुश के लिए मैसेज एन्क्रिप्ट (सुरक्षित) करने के तरीके को लागू करने की सुविधा देती है. सबसे नई रिलीज़ 1.11.0 है.
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 इस्तेमाल करने के सामान्य तरीके अपनाएं:
- कोई प्रिमिटिव चुनें – तय करें कि अपने इस्तेमाल के उदाहरण के आधार पर किस प्रिमिटिव का इस्तेमाल करना है
- कुंजियां प्रबंधित करें – अपने बाहरी केएमएस की मदद से अपनी कुंजियों को सुरक्षित रखें, कीट जनरेट करें, और अपनी कुंजियों को घुमाएं