Anda dapat mem-build Tink dari sumber atau menggunakan paket khusus bahasa. Petunjuk berikut akan membantu Anda memulai.
Setelah selesai menginstal dan menyiapkan Tink, lanjutkan dengan Langkah Berikutnya di akhir halaman ini.
C++
Tink menyediakan library C++ berikut:
- Library C++ inti, tink-cc. Rilis terbaru adalah 2.3.0
- Ekstensi AWS KMS, tink-cc-awskms. Rilis terbaru adalah 2.0.1.
- Ekstensi Google Cloud KMS, tink-cc-gcpkms. Rilis terbaru adalah 2.3.0.
Tink C++ (tink-cc)
Tink C++ bergantung pada:
- Protobuf 26.1
- Abseil LTS 20230802.0
- BoringSSL atau OpenSSL >=1.1.1
- RapidJSON 1.1.0
- googletest 1.14.0 (khusus pengujian)
- Wycheproof (khusus pengujian)
Tink C++ mendukung:
- C++ >= 14
- OS:
- UbuntuLTS >= 20.04 (x86_64)
- macOS >= 12.5 Monterey (x86_64)
- Windows Server >= 2019 (x86_64)
- Compiler:
- GCC >= 7.5.0
- Apple Clang >= 14
- MSVC >= 2019
- Sistem build:
CMake
Anda harus menambahkan tink-cc
sebagai dependensi dalam hierarki. Contoh:
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
Jika Anda menggunakan Bazel dengan modul, tambahkan
kode berikut di file MODULE.bazel
:
bazel_dep(name = "tink_cc", version = "2.3.0")
WORKSPACE
Jika Anda menggunakan Bazel dengan file WORKSPACE
, tambahkan kode berikut di
file 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()
Ekstensi AWS KMS Tink C++ (tink-cc-awskms)
Tink C++ Google Cloud KMS bergantung pada:
- Tink C++ 2.1.0
- AWS C++ SDK 1.7.345
- googletest 1.11.0 (khusus pengujian)
Tink C++ AWS KMS mendukung:
- C++ >= 14
- OS:
- UbuntuLTS >= 20.04 (x86_64)
- macOS >= 12.5 Monterey (x86_64)
- Compiler:
- GCC >= 7.5.0
- Apple Clang >= 14
- Sistem build:
- Bazel >= 6 LTS
Bazel
Anda harus menambahkan kode berikut ke file WORKSPACE
project:
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()
Ekstensi Google Cloud KMS Tink C++ (tink-cc-gcpkms)
Tink C++ Google Cloud KMS bergantung pada:
- Tink C++ 2.1.0
- gRPC 1.59.3
- Library Klien C++ Google Cloud 2.16.0
- googletest 1.11.0 (khusus pengujian)
Tink C++ Google Cloud KMS mendukung:
- C++ >= 14
- OS:
- UbuntuLTS >= 20.04 (x86_64)
- macOS >= 12.5 Monterey (x86_64)
- Compiler:
- GCC >= 7.5.0
- Apple Clang >= 14
- Sistem build:
- Bazel >= 6 LTS
Bazel
Anda harus menambahkan kode berikut ke file WORKSPACE
project:
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 menyediakan library Go berikut:
- Library Tink inti, tink-go. Rilis terbarunya adalah v2.2.0
- Ekstensi AWS KMS, tink-go-awskms Rilis terbarunya adalah 2.1.0.
- Ekstensi Google Cloud KMS, tink-go-gcpkms. Rilis terbaru adalah 2.2.0.
- Ekstensi HashiCorp Vault, tink-go-hcvault. Rilis terbaru adalah 2.2.0.
Semua library Tink Go dipublikasikan sebagai modul Go yang dapat digunakan dengan alat Go standar atau Bazel.
Tink Go (tink-go)
Alat Go
Jalankan perintah berikut dari direktori project Anda:
go get github.com/tink-crypto/tink-go/v2@v2.2.0
Lihat dokumentasi Go resmi.
Ekstensi AWS KMS Tink Go (tink-go-awskms)
Alat Go
Jalankan perintah berikut dari direktori project Anda:
go get github.com/tink-crypto/tink-go-awskms/v2@2.1.0
Lihat dokumentasi Go resmi.
Ekstensi Tink Go Google Cloud KMS (tink-go-gcpkms)
Alat Go
Jalankan perintah berikut dari direktori project Anda:
go get github.com/tink-crypto/tink-go-gcpkms/v2@v2.2.0
Lihat dokumentasi Go resmi.
Ekstensi HashiCorp Vault Tink Go (tink-go-hcvault)
Alat Go
Jalankan perintah berikut dari direktori project Anda:
go get github.com/tink-crypto/tink-go-hcvault/v2@v2.2.0
Lihat dokumentasi Go resmi.
Java
ObjC
Lihat HOWTO di GitHub
Python
Library Python Tink, tink-py, mendukung Python 3.8 atau yang lebih baru di macOS (x86-64 dan ARM64), Linux (x86-64 dan ARM64), serta Windows (x86-64). Rilis terbaru adalah 1.10.0. Alat ini dapat diinstal secara lokal menggunakan Pip atau digunakan dengan Bazel.
Tink Python menyediakan integrasi dengan AWS KMS, Google Cloud KMS, dan HashiCorp Vault.
Pip
Anda dapat menginstal rilis biner Tink Python untuk sistem Anda dari PyPI, dengan menjalankan perintah berikut:
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
Jika paket biner tidak dipublikasikan untuk lingkungan Anda, pip
akan otomatis menggunakan build project menggunakan distribusi sumber
yang dipublikasikan ke PyPI. Jika demikian, Anda memerlukan Bazel
atau Bazelisk dan compiler
protobuf yang diinstal agar berhasil mem-build project.
Bazel
Pengguna Bazel dapat menyertakan Tink Python dalam
file WORKSPACE
mereka sebagai berikut:
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")
Langkah berikutnya
Setelah selesai menyiapkan Tink, lanjutkan dengan langkah-langkah penggunaan Tink standar:
- Memilih primitif – Tentukan primitif yang akan digunakan berdasarkan kasus penggunaan Anda
- Mengelola kunci – Melindungi kunci dengan KMS eksternal, membuat kumpulan kunci, dan memutar kunci