Tink'i kaynaktan derleyebilir veya dile özgü paketler kullanabilirsiniz. Aşağıdaki talimatları uygulayarak başlayabilirsiniz.
Tink'i yüklemeyi ve ayarlamayı bitirdikten sonra, bu sayfanın sonundaki Sonraki Adımlar'a geçin.
C++
Tink, aşağıdaki C++ kitaplıklarını sağlar:
- Temel C++ kitaplığı olan tink-cc. En son sürüm 2.2.0'dır.
- Bir AWS KMS uzantısı olan tink-cc-awskms En son sürüm 2.0.1'dir.
- Bir Google Cloud KMS uzantısı, tink-cc-gcpkms. En son sürüm 2.2.0'dır.
Tink C++ (tink-cc)
Tink C++ şunlara bağlıdır:
- Protobuf 26.1
- Abseil LTS 20230802.0
- BoringSSL veya OpenSSL >=1.1.1
- HızlıJSON 1.1.0
- googletest 1.14.0 (yalnızca test)
- WycheRFP (yalnızca test)
Tink C++ şunları destekler:
- C++ >= 14
- İşletim sistemi:
- UbuntuLTS >= 20,04 (x86_64)
- macOS >= 12.5 Monterey (x86_64)
- Windows Server 2019 (x86_64)
- Derleyici:
- GCC >= 7.5,0
- Apple Clang >= 14
- T.E.S.F. >= 2019
- Derleme sistemi:
CMake
tink-cc
öğesini ağaç içi bağımlılık olarak eklemelisiniz. Örneğin:
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
Bzlmod
Modüllü Bazel kullanıyorsanız MODULE.bazel
dosyanıza aşağıdakileri ekleyin:
bazel_dep(name = "tink_cc", version = "2.2.0")
ÇALIŞMA ALANI
WORKSPACE
dosyalarıyla Bazel kullanıyorsanız WORKSPACE
dosyanıza aşağıdakileri ekleyin:
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 uzantısı (tink-cc-awskms)
Tink C++ Google Cloud KMS aşağıdakilere bağlıdır:
- Tink C++ 2.1.0
- AWS C++ SDK'sı 1.7.345
- googletest 1.11.0 (yalnızca test)
Tink C++ AWS KMS şunları destekler:
- C++ >= 14
- İşletim sistemi:
- UbuntuLTS >= 20,04 (x86_64)
- macOS >= 12.5 Monterey (x86_64)
- Derleyici:
- GCC >= 7.5,0
- Apple Clang >= 14
- Derleme sistemi:
- Bazel >= 6 LTS
Bazel
Projenizin WORKSPACE
dosyasına şunu eklemelisiniz:
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 uzantısı (tink-cc-gcpkms)
Tink C++ Google Cloud KMS aşağıdakilere bağlıdır:
- Tink C++ 2.1.0
- gRPC 1.59.3
- Google Cloud C++ İstemci Kitaplıkları 2.16.0
- googletest 1.11.0 (yalnızca test)
Tink C++ Google Cloud KMS şunları destekler:
- C++ >= 14
- İşletim sistemi:
- UbuntuLTS >= 20,04 (x86_64)
- macOS >= 12.5 Monterey (x86_64)
- Derleyici:
- GCC >= 7.5,0
- Apple Clang >= 14
- Derleme sistemi:
- Bazel >= 6 LTS
Bazel
Projenizin WORKSPACE
dosyasına şunu eklemelisiniz:
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)
Go
Tink, aşağıdaki Go kitaplıklarını sağlar:
- Temel Tink kitaplığı olan tink-go. En son sürüm v2.2.0'dır.
- Bir AWS KMS uzantısı olan tink-go-awskms En son sürüm 2.1.0'dır.
- Bir Google Cloud KMS uzantısı olan tink-go-gcpkms. En son sürüm 2.2.0'dır.
- Bir HashiCorp Vault uzantısı, tink-go-hcvault. En son sürüm 2.1.0'dır.
Tüm Tink Go kitaplıkları, standart Go araçları veya Bazel ile kullanılabilen Go modülleri olarak yayınlanır.
Tink Go
Go araçları
Proje dizininden aşağıdaki komutu çalıştırın:
go get github.com/tink-crypto/tink-go/v2@v2.2.0
Resmi Go dokümanlarını inceleyin.
Bazel
Tink Go'yu Bazel ile kullanmak istiyorsanız bazel-gazelle
kullanmanız gerekir.
WORKSPACE
içinde aşağıdaki şekilde kullanabilirsiniz:
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 KMS uzantısı (tink-go-awskms)
Go araçları
Proje dizininden aşağıdaki komutu çalıştırın:
go get github.com/tink-crypto/tink-go-awskms/v2@2.1.0
Resmi Go dokümanlarını inceleyin.
Bazel
Tink Go AWS KMS uzantısını Bazel ile kullanmak istiyorsanız bazel-gazelle
kullanmanız gerekir.
WORKSPACE
içinde aşağıdaki şekilde kullanabilirsiniz:
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 uzantısı (tink-go-gcpkms)
Go araçları
Proje dizininden aşağıdaki komutu çalıştırın:
go get github.com/tink-crypto/tink-go-gcpkms/v2@v2.2.0
Resmi Go dokümanlarını inceleyin.
Bazel
Tink Go Google Cloud KMS uzantısını Bazel ile kullanmak istiyorsanız bazel-gazelle
kullanmanız gerekir.
WORKSPACE
içinde aşağıdaki şekilde kullanabilirsiniz:
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 uzantısı (tink-go-hc Vault)
Go araçları
Proje dizininden aşağıdaki komutu çalıştırın:
go get github.com/tink-crypto/tink-go-hcvault/v2@v2.1.0
Resmi Go dokümanlarını inceleyin.
Bazel
Tink HashiCorp Vault uzantısını Bazel ile kullanmak istiyorsanız bazel-gazelle
kullanmanız gerekir.
WORKSPACE
içinde aşağıdaki şekilde kullanabilirsiniz:
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, aşağıdaki Java kitaplıklarını sağlar:
- Temel Java ve Android kitaplığı olan tink-java En son sürüm 1.14.0'dır
- Bir AWS KMS uzantısı tink-java-awskms En son sürüm 1.9.1'dir.
- Bir Google Cloud KMS uzantısı, tink-java-gcpkms. En son sürüm 1.10.0'dır.
- Google Ödeme Yöntemi Jetonu, Google AdMob Ödüllü Reklamlarının Sunucu Tarafı Doğrulaması ve RFC 8291 - Web Push için İleti Şifreleme için uygulamalar sunan tink-java-apps kitaplığı. En son sürüm 1.11.0'dır.
Tink'in Java sürümü, Java 8 veya daha yeni bir sürümü destekler. Maven veya Gradle projenize Tink Java Maven yapılarını dahil edebilir veya Bazel'i kullanabilirsiniz.
Tink Android, API düzeyi 24'ten itibaren tam olarak desteklenir. Tink'in çoğu bölümünün API düzeyi 21'den itibaren çalışması beklenir. Tink'in API düzeyi 21'de kullanıma hazır olmadığı bölümler şunlardır:
- JWT kitaplığı,
java.util.Optional
gibi sınıfları kullandığından API düzeyi 24'ü gerektirir. Azaltma yaparak bu sınırlamanın önüne geçilebilir. com.google.crypto.tink.integration.android
uygulamasındaki sınıflar yalnızca API düzeyi 23'ten itibaren tümüyle test edilir.com.google.crypto.tink.streamingaead
hizmetindeki bazı API'ler, yalnızca API düzeyi 24'ten erişilebilenSeekableByteBufferChannel
özelliğini kullanır.
Teknik nedenlerden dolayı Tink'i yalnızca Android'de Google'ın dahili altyapısında test ettiğimizi unutmayın. Bu nedenle herhangi bir sorun beklemiyoruz ancak herhangi bir sorunla karşılaşırsanız lütfen sorun bildirin.
Tink Android, ProGuard yapılandırması gerektirmez.
Tink Java (tink-Java)
Maven
Maven'i kullanarak Tink Java'yı ve Tink Android kitaplığını ekleyebilirsiniz:
<dependency>
<groupId>com.google.crypto.tink</groupId>
<artifactId>tink</artifactId>
<version>1.14.0</version>
</dependency>
Android'i hedefliyorsanız aşağıdakileri kullanarak Gradle'daki tink-android
kullanabilirsiniz:
dependencies {
implementation 'com.google.crypto.tink:tink-android:1.14.0'
}
Bazel
Bazel kullanıcılarının Tik Java'yı bağımlılık olarak ekleyebilmeleri için önerilen yöntem, WORKSPACE
dosyasındaki rules_jvm_external
aracını kullanarak Maven sürüm yapısını yüklemektir:
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
öğesini kaynaktan derlemek (örneğin, belirli bir taahhüdü sabitlemek için) istiyorsanız WORKSPACE
dosyanıza http_archive
olarak ekleyebilirsiniz:
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 KMS uzantısı (tink-java-awskms)
Maven
Maven'i kullanarak Tink Java'yı ve Tink Android kitaplığını ekleyebilirsiniz:
<dependencies>
<dependency>
<groupId>com.google.crypto.tink</groupId>
<artifactId>tink-awskms</artifactId>
<version>1.9.1</version>
</dependency>
</dependencies>
Bazel
rules_jvm_external
aracını kullanarak com.google.crypto.tink:tink-awskms
Maven yapısını com.google.crypto.tink:tink
ile birlikte yükleyebilirsiniz.
# ...
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",
],
)
Alternatif olarak, bunu bir http_archive
bağımlılığı olarak ekleyebilirsiniz:
# ...
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 KMS uzantısı (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
aracını kullanarak com.google.crypto.tink:tink-gcpkms
Maven yapısını com.google.crypto.tink:tink
ile birlikte yükleyebilirsiniz.
# ...
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",
],
)
Alternatif olarak, bunu bir http_archive
bağımlılığı olarak ekleyebilirsiniz:
# ...
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 Apps uzantıları (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
aracını kullanarak com.google.crypto.tink:apps-*
Maven yapılarının herhangi birini yükleyebilirsiniz.
# ...
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'daki NASIL YAPILIR? sayfasına göz atın
Python
Tink Python kitaplığı (tink-py), macOS (x86-64 ve ARM64), Linux (x86-64 ve ARM64) ve Windows (x86-64) üzerinde Python 3.8 veya daha yeni sürümlerini destekler. En son sürüm 1.10.0'dır. Pip ile yerel olarak yüklenebilir veya Bazel ile kullanılabilir.
Tink Python; AWSKMS, Google CloudKMS ve HashiCorp Vault ile entegrasyon sağlar.
PIP
Aşağıdaki komutu çalıştırarak sisteminiz için Tink Python ikili programı sürümünü PyPI üzerinden yükleyebilirsiniz:
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
Ortamınız için bir ikili paket yayınlanmadıysa pip
, PyPI'ya yayınlanan kaynak dağıtımını kullanarak otomatik olarak projeyi derlemeye başlar. Bu durumda projeyi başarılı bir şekilde derlemek için Bazel veya Bazelisk ile protobuf derleyiciyi yüklemeniz gerekir.
Bazel
Bazel kullanıcıları, Tink Python'u WORKSPACE
dosyalarına aşağıdaki şekilde ekleyebilir:
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")
Sonraki adımlar
Tink'in kurulumunu tamamladıktan sonra standart Tink kullanım adımlarıyla devam edin:
- Bir temel öğe seçin: Kullanım alanınıza göre hangi temel bileşenin kullanılacağına karar verin
- Anahtarları yönetme: Anahtarlarınızı harici KMS'nizle koruyun, anahtar setleri oluşturun ve anahtarlarınızı döndürün