Bạn có thể tạo Tink từ nguồn hoặc sử dụng các gói dành riêng cho ngôn ngữ. Hãy làm theo hướng dẫn sau đây để bắt đầu.
Sau khi bạn hoàn tất việc 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:
- Thư viện C++ cốt lõi, tink-cc. Bản phát hành mới nhất là 2.3.0
- Tiện ích AWS KMS, tink-cc-awskms. Bản phát hành mới nhất là 2.0.1.
- Tiện ích Google Cloud KMS, tink-cc-gcpkms. Bản phát hành mới nhất là 2.3.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
- RapidJSON 1.1.0
- googletest 1.14.0 (chỉ kiểm thử)
- Wycheproof (chỉ kiểm thử)
Tink C++ hỗ trợ:
- C++ >= 14
- Hệ điều hành:
- UbuntuLTS >= 20.04 (x86_64)
- macOS >= 12.5 Monterey (x86_64)
- Windows Server >= 2019 (x86_64)
- Trình biên dịch:
- GCC >= 7.5.0
- Apple Clang >= 14
- 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.3.0.zip
URL_HASH SHA256=363ce671ab5ce0b24f279d3647185597a25f407c3608db007315f79f151f436b
)
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.3.0")
WORKSPACE
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.3.0.zip"],
strip_prefix = "tink-2.3.0",
sha256 = "363ce671ab5ce0b24f279d3647185597a25f407c3608db007315f79f151f436b",
)
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()
Tiện ích Tink C++ AWS KMS (tink-cc-awskms)
Tink C++ Google Cloud KMS phụ thuộc vào:
- Tink C++ 2.1.0
- AWS C++ SDK 1.7.345
- googletest 1.11.0 (chỉ kiểm thử)
Tink C++ AWS KMS 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
Bazel
Bạn nên thêm nội dung 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.3.0.zip"],
strip_prefix = "tink-2.3.0",
sha256 = "363ce671ab5ce0b24f279d3647185597a25f407c3608db007315f79f151f436b",
)
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-gcpkms)
Tink C++ Google Cloud KMS phụ thuộc vào:
- Tink C++ 2.1.0
- gRPC 1.59.3
- Thư viện ứng dụng Google Cloud C++ 2.16.0
- googletest 1.11.0 (chỉ kiểm thử)
Tink C++ Google Cloud KMS 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
Bazel
Bạn nên thêm nội dung 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.3.0/tink-cc-gcpkms-2.3.0.zip"],
strip_prefix = "tink-cc-gcpkms-2.3.0",
sha256 = "5af0d0a502afc346bbaa40f226e8f3b28fe3f5def696cbaaa7bc13702af78901",
)
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:
- Thư viện Tink chính, 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.
- Tiện ích Google Cloud KMS, tink-go-gcpkms. Bản phát hành mới nhất là 2.2.0.
- Tiện ích HashiCorp Vault, tink-go-hcvault. Bản phát hành mới nhất là 2.2.0.
Tất cả thư viện Tink Go đều được phát hành dưới dạng mô-đun Go có thể dùng được với công cụ Go tiêu chuẩn hoặc Bazel.
Tink Go (tink-go)
Công cụ Go
Chạy lệnh sau từ thư mục dự án:
go get github.com/tink-crypto/tink-go/v2@v2.2.0
Xem tài liệu chính thức về Go.
Tiện ích Tink Go AWS KMS (tink-go-awskms)
Công cụ Go
Chạy lệnh sau từ thư mục dự án:
go get github.com/tink-crypto/tink-go-awskms/v2@2.1.0
Xem tài liệu chính thức về Go.
Tiện ích Tink Go Google Cloud KMS (tink-go-gcpkms)
Công cụ Go
Chạy lệnh sau từ thư mục dự án:
go get github.com/tink-crypto/tink-go-gcpkms/v2@v2.2.0
Xem tài liệu chính thức về Go.
Tiện ích Tink Go HashiCorp Vault (tink-go-hcvault)
Công cụ Go
Chạy lệnh sau từ thư mục dự án:
go get github.com/tink-crypto/tink-go-hcvault/v2@v2.2.0
Java
ObjC
Python
Thư viện Python Tink, 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ộ bằng Pip hoặc sử dụng với Bazel.
Tink Python cung cấp các tính năng tích hợp với AWS KMS, Google Cloud KMS và HashiCorp Vault.
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 từ 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 phát hành cho môi trường của bạn, pip
sẽ tự động chuyển sang tạo dự án bằng cách sử dụng bản phân phối nguồn được phát hành cho PyPI. Trong trường hợp này, 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ể đưa Tink Python vào tệp WORKSPACE
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 hoàn tất việc thiết lập Tink, hãy tiếp tục các bước sử dụng Tink tiêu chuẩn:
- Chọn một đối tượng gốc – Quyết định sử dụng đối tượng gốc nào 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 nhóm khoá và xoay vòng khoá