Penyiapan tink

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:

Tink C++ (tink-cc)

Tink C++ bergantung pada:

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

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

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:

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

Menyiapkan Tink Java dan ekstensi

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