Bạn có thể tạo Tink từ nguồn hoặc sử dụng các gói dành riêng cho từng ngôn ngữ. Các hướng dẫn sau đây sẽ giúp bạn bắt đầu.
Sau khi bạn hoàn tất quá trình cài đặt và thiết lập Tink, hãy tiếp tục với Các bước tiếp theo ở cuối trang này.
C++
Tink cung cấp các thư viện C++ sau:
- Một thư viện C++ cốt lõi, tink-cc. Bản phát hành mới nhất là 2.2.0
- Tiện ích AWS KMS, tink-cc-awsKM Bản phát hành mới nhất là 2.0.1.
- Một tiện ích Google Cloud KMS, tink-cc-gcpcpm. Bản phát hành mới nhất là 2.2.0.
Tink C++ (tink-cc)
Tink C++ phụ thuộc vào:
- Protobuf 26.1
- Abseil LTS 20230802.0
- BoringSSL hoặc OpenSSL >=1.1.1
- QuickJSON 1.1.0
- googletest 1.14.0 (chỉ thử nghiệm)
- Wycheable (chỉ thử nghiệm)
Tink C++ hỗ trợ:
- C++ >= 14
- Hệ điều hành:
- UbuntuLTS >= 20.04 (x86_64)
- macOS >= 12.5 Monterey (x86_64)
- Máy chủ Windows >= 2019 (x86_64)
- Trình biên dịch:
- GCC >= 7.5.0
- Apple Clang >= 14
- Tỷ lệ thoát hiểm (MSVC) >= 2019
- Hệ thống xây dựng:
CMake
Bạn nên thêm tink-cc
làm phần phụ thuộc trong cây. Ví dụ:
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
Nếu bạn sử dụng Bazel với các mô-đun, hãy thêm
nội dung sau vào tệp MODULE.bazel
:
bazel_dep(name = "tink_cc", version = "2.2.0")
KHÔNG GIAN LÀM VIỆC
Nếu bạn sử dụng Bazel với các tệp WORKSPACE
, hãy thêm nội dung sau vào tệp 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()
Phần mở rộng AWS KMS của Tink C++ (tink-cc-awscpm)
Google Cloud KMS của Tink C++ phụ thuộc vào:
- Tink C++ 2.1.0
- SDK C++ củaAWS 1.7.345
- googletest 1.11.0 (chỉ thử nghiệm)
AWS KMS của Tink C++ hỗ trợ:
- C++ >= 14
- Hệ điều hành:
- UbuntuLTS >= 20.04 (x86_64)
- macOS >= 12.5 Monterey (x86_64)
- Trình biên dịch:
- GCC >= 7.5.0
- Apple Clang >= 14
- Hệ thống xây dựng:
- Bazel >= 6 LTS (hỗ trợ dài hạn)
Bazel
Bạn nên thêm đoạn mã sau vào tệp WORKSPACE
của dự án:
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()
Tiện ích Tink C++ Google Cloud KMS (tink-cc-gcpcpm)
Google Cloud KMS của Tink C++ phụ thuộc vào:
- Tink C++ 2.1.0
- gRPC 1.59.3
- Thư viện ứng dụng C++ của Google Cloud 2.16.0
- googletest 1.11.0 (chỉ thử nghiệm)
Google Cloud KMS của Tink C++ hỗ trợ:
- C++ >= 14
- Hệ điều hành:
- UbuntuLTS >= 20.04 (x86_64)
- macOS >= 12.5 Monterey (x86_64)
- Trình biên dịch:
- GCC >= 7.5.0
- Apple Clang >= 14
- Hệ thống xây dựng:
- Bazel >= 6 LTS (hỗ trợ dài hạn)
Bazel
Bạn nên thêm đoạn mã sau vào tệp WORKSPACE
của dự án:
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 cung cấp các thư viện Go sau đây:
- Một thư viện Tink cốt lõi, tink-go. Bản phát hành mới nhất là v2.2.0
- Tiện ích AWS KMS, tink-go-awskms Bản phát hành mới nhất là 2.1.0.
- Một tiện ích của Google Cloud KMS, tink-go-gcpkms. Bản phát hành mới nhất là 2.2.0.
- Một tiện ích HashiCorp Vault, tink-go-hcvault. Bản phát hành mới nhất là 2.1.0.
Tất cả thư viện Tink Go đều được xuất bản dưới dạng mô-đun Go có thể sử dụng với công cụ Go tiêu chuẩn hoặc Bazel.
Tink Go (di chuyển)
Chuyển đến công cụ
Chạy lệnh sau từ thư mục dự án của bạn:
go get github.com/tink-crypto/tink-go/v2@v2.2.0
Hãy xem tài liệu Go chính thức.
Bazel
Nếu muốn sử dụng Tink Go với Bazel, bạn nên sử dụng bazel-gazelle
.
Bạn có thể sử dụng thuộc tính này như sau trong 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()
Tiện ích Tink Go AWS KMS (tink-go-awskm)
Chuyển đến công cụ
Chạy lệnh sau từ thư mục dự án của bạn:
go get github.com/tink-crypto/tink-go-awskms/v2@2.1.0
Hãy xem tài liệu Go chính thức.
Bazel
Nếu muốn sử dụng tiện ích Tink Go AWS KMS với Bazel., bạn nên sử dụng bazel-gazelle
.
Bạn có thể sử dụng thuộc tính này như sau trong 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()
Tiện ích Tink Go Google Cloud KMS (tink-go-gcp lớp)
Chuyển đến công cụ
Chạy lệnh sau từ thư mục dự án của bạn:
go get github.com/tink-crypto/tink-go-gcpkms/v2@v2.2.0
Hãy xem tài liệu Go chính thức.
Bazel
Nếu muốn sử dụng tiện ích Tink Go của Google Cloud KMS với Bazel, bạn nên sử dụng bazel-gazelle
.
Bạn có thể sử dụng thuộc tính này như sau trong 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()
Tiện ích Tink Go HashiCorp Vault (tink-go-hc Vault)
Chuyển đến công cụ
Chạy lệnh sau từ thư mục dự án của bạn:
go get github.com/tink-crypto/tink-go-hcvault/v2@v2.1.0
Hãy xem tài liệu Go chính thức.
Bazel
Nếu muốn sử dụng tiện ích Tink HashiCorp Vault với Bazel, bạn nên sử dụng bazel-gazelle
.
Bạn có thể sử dụng thuộc tính này như sau trong 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 cung cấp các thư viện Java sau đây:
- Thư viện Java và Android cốt lõi, tink-java Bản phát hành mới nhất là 1.13.0
- Tiện ích AWS KMS, tink-java-awskms Bản phát hành mới nhất là 1.9.1.
- Một tiện ích Google Cloud KMS, tink-java-gcpkms. Bản phát hành mới nhất là 1.10.0
- Một thư viện, tink-java-apps cung cấp các phương thức triển khai cho Mã thông báo phương thức thanh toán của Google, Xác minh phía máy chủ của quảng cáo có tặng thưởng Google AdMob và RFC 8291 – Mã hoá thông báo cho tính năng đẩy trên web. Bản phát hành mới nhất là 1.11.0.
Phiên bản Java của Tink hỗ trợ Java 8 trở lên. Bạn có thể đưa các cấu phần phần mềm Tink Java Maven vào dự án Maven hoặc Gradle hoặc sử dụng Bazel.
Kể từ API cấp 24, Tink Android sẽ được hỗ trợ đầy đủ. Hầu hết các phần của Tink dự kiến sẽ hoạt động kể từ API cấp 21. Dưới đây là những phần mà Tink cũng khá phù hợp với API cấp 21:
- Thư viện JWT yêu cầu API cấp 24 vì thư viện này sử dụng các lớp như
java.util.Optional
. Bạn có thể tránh hạn chế này bằng cách đơn giản hoá. - Các lớp trong
com.google.crypto.tink.integration.android
chỉ được kiểm thử đầy đủ kể từ API cấp 23. - Một số API trong
com.google.crypto.tink.streamingaead
sử dụngSeekableByteBufferChannel
chỉ có từ API cấp 24.
Chúng tôi lưu ý rằng vì lý do kỹ thuật, chúng tôi chỉ thử nghiệm Tink trên Android trên cơ sở hạ tầng nội bộ của Google. Chúng tôi dự kiến sẽ không có bất kỳ vấn đề nào vì điều này, nhưng nếu bạn gặp bất kỳ vấn đề nào, vui lòng báo cáo vấn đề.
Tink Android không yêu cầu cấu hình Proguard.
Tink Java (tink-java)
Maven
Bạn có thể thêm Tink Java và thư viện Tink Android bằng cách sử dụng Maven:
<dependency>
<groupId>com.google.crypto.tink</groupId>
<artifactId>tink</artifactId>
<version>1.13.0</version>
</dependency>
Nếu đang nhắm đến Android thì bạn có thể dùng tink-android
trên Gradle bằng cách sử dụng:
dependencies {
implementation 'com.google.crypto.tink:tink-android:1.13.0'
}
Bazel
Người dùng Bazel có thể thêm Tink Java làm phần phụ thuộc theo cách đề xuất bằng cách cài đặt cấu phần phần mềm phát hành Maven thông qua công cụ rules_jvm_external
trong tệp WORKSPACE
của họ:
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.13.0",
# ... other dependencies ...
],
repositories = [
"https://maven.google.com",
"https://repo1.maven.org/maven2",
],
)
Nếu muốn tạo tink-java
từ nguồn, chẳng hạn như để ghim một cam kết cụ thể, bạn có thể thêm nó vào dưới dạng http_archive
trong tệp WORKSPACE
:
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",
],
)
Tiện ích Tink Java AWS KMS (tink-java-awskm)
Maven
Bạn có thể thêm Tink Java và thư viện Tink Android bằng cách sử dụng Maven:
<dependencies>
<dependency>
<groupId>com.google.crypto.tink</groupId>
<artifactId>tink-awskms</artifactId>
<version>1.9.1</version>
</dependency>
</dependencies>
Bazel
Bạn có thể cài đặt cấu phần phần mềm Maven com.google.crypto.tink:tink-awskms
cùng với com.google.crypto.tink:tink
bằng công cụ rules_jvm_external
.
# ...
maven_install(
artifacts = [
"com.google.crypto.tink:tink:1.13.0",
"com.google.crypto.tink:tink-awskms:1.9.1",
# ... other dependencies ...
],
repositories = [
"https://maven.google.com",
"https://repo1.maven.org/maven2",
],
)
Ngoài ra, bạn có thể thêm phần này dưới dạng phần phụ thuộc http_archive
:
# ...
http_archive(
name = "tink_java",
urls = ["https://github.com/tink-crypto/tink-java/releases/download/v1.13.0/tink-java-1.13.0.zip"],
strip_prefix = "tink-java-1.13.0",
sha256 = "d795e05bd264d78f438670f7d56dbe38eeb14b16e5f73adaaf20b6bb2bd11683",
)
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",
],
)
Tiện ích Tink Java Google Cloud KMS (tink-java-gcp Xóa)
Maven
<dependencies>
<dependency>
<groupId>com.google.crypto.tink</groupId>
<artifactId>tink-gcpkms</artifactId>
<version>1.10.0/version>
</dependency>
</dependencies>
Bazel
Bạn có thể cài đặt cấu phần phần mềm Maven com.google.crypto.tink:tink-gcpkms
cùng với com.google.crypto.tink:tink
bằng công cụ rules_jvm_external
.
# ...
maven_install(
artifacts = [
"com.google.crypto.tink:tink:1.13.0",
"com.google.crypto.tink:tink-gcpkms:1.10.0",
# ... other dependencies ...
],
repositories = [
"https://maven.google.com",
"https://repo1.maven.org/maven2",
],
)
Ngoài ra, bạn có thể thêm phần này dưới dạng phần phụ thuộc http_archive
:
# ...
http_archive(
name = "tink_java",
urls = ["https://github.com/tink-crypto/tink-java/releases/download/v1.13.0/tink-java-1.13.0.zip"],
strip_prefix = "tink-java-1.13.0",
sha256 = "d795e05bd264d78f438670f7d56dbe38eeb14b16e5f73adaaf20b6bb2bd11683",
)
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",
],
)
Tiện ích Tink Java Apps (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
Bạn có thể cài đặt bất kỳ cấu phần phần mềm Maven com.google.crypto.tink:apps-*
nào bằng công cụ rules_jvm_external
.
# ...
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
Python
Thư viện Tink Python tink-py hỗ trợ Python 3.8 trở lên trên macOS (x86-64 và ARM64), Linux (x86-64 và ARM64) và Windows (x86-64). Bản phát hành mới nhất là 1.10.0. Bạn có thể cài đặt cục bộ này bằng Pip hoặc dùng với Bazel.
Tink Python cung cấp dịch vụ tích hợp với AWS KMS, Google Cloud KMS và HashiCorp Vault.
Số Pip
Bạn có thể cài đặt bản phát hành nhị phân Tink Python cho hệ thống của mình qua PyPI bằng cách chạy lệnh sau:
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
Nếu gói nhị phân không được xuất bản cho môi trường của bạn, pip
sẽ tự động sử dụng quá trình xây dựng dự án bằng cách sử dụng bản phân phối nguồn đã xuất bản lên PyPI. Nếu trường hợp này xảy ra, bạn cần cài đặt Bazel hoặc Bazelisk và trình biên dịch protobuf để tạo dự án thành công.
Bazel
Người dùng Bazel có thể thêm Tink Python vào tệp WORKSPACE
của họ như sau:
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")
Các bước tiếp theo
Sau khi thiết lập xong Tink, hãy tiếp tục với các bước sử dụng Tink tiêu chuẩn:
- Chọn một dữ liệu gốc – Quyết định dữ liệu gốc cần sử dụng dựa trên trường hợp sử dụng của bạn
- Quản lý khoá – Bảo vệ khoá bằng KMS bên ngoài, tạo bộ khoá và xoay khoá