Thiết lập Tink

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:

Tink C++ (tink-cc)

Tink C++ phụ thuộc vào:

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++ 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

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++ 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

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:

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

Xem tài liệu chính thức về Go.

Java

Thiết lập Tink Java và các tiện ích

ObjC

Xem HƯỚNG DẪN trên GitHub

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 KMSHashiCorp 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 Bazelisktrì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: