يمكنك إنشاء Tink من المصدر أو استخدام الحِزم الخاصة بلغة معيّنة. يمكنك اتّباع التعليمات التالية للبدء.
بعد الانتهاء من تثبيت Tink وإعداده، تابِع الخطوات التالية في نهاية هذه الصفحة.
C++
توفّر Tink مكتبات C++ التالية:
- مكتبة C++ الأساسية، tink-cc أحدث إصدار هو 2.3.0.
- إضافة AWS KMS، tink-cc-awskms أحدث إصدار هو 2.0.1.
- إضافة Google Cloud KMS، tink-cc-gcpkms. أحدث إصدار هو 2.3.0.
Tink C++ (tink-cc)
تعتمد حزمة Tink C++ على ما يلي:
- Protobuf 26.1
- Abseil LTS 20230802.0
- BoringSSL أو OpenSSL >=1.1.1
- RapidJSON 1.1.0
- googletest 1.14.0 (test فقط)
- Wycheproof (اختبار فقط)
تتيح مكتبة Tink C++ ما يلي:
- C++ >= 14
- نظام التشغيل:
- UbuntuLTS >= 20.04 (x86_64)
- الإصدار 12.5 من نظام التشغيل macOS أو الإصدارات الأحدث من Monterey (x86_64)
- Windows Server >= 2019 (x86_64)
- المُجمِّع:
- GCC >= 7.5.0
- Apple Clang >= 14
- MSVC >= 2019
- نظام الإنشاء:
CMake
يجب إضافة tink-cc
كتبعية داخل الشجرة. على سبيل المثال:
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
إذا كنت تستخدم Bazel مع الوحدات، أضِف
ما يلي في ملف MODULE.bazel
:
bazel_dep(name = "tink_cc", version = "2.3.0")
مساحة العمل
إذا كنت تستخدم Bazel مع ملفات WORKSPACE
، أضِف ما يلي في ملف
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()
إضافة Tink C++ AWS KMS (tink-cc-awskms)
تعتمد خدمة Tink C++ Google Cloud KMS على ما يلي:
- Tink C++ 2.1.0
- AWS C++ SDK 1.7.345
- googletest 1.11.0 (اختبار فقط)
تتوافق خدمة AWS KMS في Tink C++ مع ما يلي:
- C++ >= 14
- نظام التشغيل:
- UbuntuLTS >= 20.04 (x86_64)
- الإصدار 12.5 من نظام التشغيل macOS أو الإصدارات الأحدث من Monterey (x86_64)
- المُجمِّع:
- GCC >= 7.5.0
- Apple Clang >= 14
- نظام الإنشاء:
- Bazel >= 6 LTS
Bazel
يجب إضافة ما يلي إلى ملف 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()
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()
إضافة Google Cloud KMS لـ Tink C++ (tink-cc-gcpkms)
تعتمد خدمة Tink C++ Google Cloud KMS على ما يلي:
- Tink C++ 2.1.0
- gRPC 1.59.3
- مكتبات Google Cloud C++ Client Libraries 2.16.0
- googletest 1.11.0 (اختبار فقط)
تتيح مكتبة Tink C++ Google Cloud KMS ما يلي:
- C++ >= 14
- نظام التشغيل:
- UbuntuLTS >= 20.04 (x86_64)
- الإصدار 12.5 من نظام التشغيل macOS أو الإصدارات الأحدث من Monterey (x86_64)
- المُجمِّع:
- GCC >= 7.5.0
- Apple Clang >= 14
- نظام الإنشاء:
- Bazel >= 6 LTS
Bazel
يجب إضافة ما يلي إلى ملف WORKSPACE
في مشروعك:
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)
انتقال
توفّر Tink مكتبات Go التالية:
- مكتبة Tink الأساسية، tink-go: أحدث إصدار هو v2.2.0
- إضافة AWS KMS، tink-go-awskms أحدث إصدار هو 2.1.0.
- إضافة Google Cloud KMS، tink-go-gcpkms أحدث إصدار هو 2.2.0.
- إضافة HashiCorp Vault، tink-go-hcvault أحدث إصدار هو 2.2.0.
يتم نشر جميع مكتبات Tink Go كوحدات Go يمكن استخدامها مع أدوات Go العادية أو Bazel.
Tink Go (tink-go)
أدوات Go
شغِّل الأمر التالي من دليل مشروعك:
go get github.com/tink-crypto/tink-go/v2@v2.2.0
اطّلِع على مستندات Go الرسمية.
إضافة AWS KMS في Tink Go (tink-go-awskms)
أدوات Go
نفِّذ الأمر التالي من دليل المشروع:
go get github.com/tink-crypto/tink-go-awskms/v2@2.1.0
اطّلِع على مستندات Go الرسمية.
إضافة Tink Go Google Cloud KMS (tink-go-gcpkms)
أدوات Go
نفِّذ الأمر التالي من دليل المشروع:
go get github.com/tink-crypto/tink-go-gcpkms/v2@v2.2.0
اطّلِع على مستندات Go الرسمية.
إضافة Tink Go HashiCorp Vault (tink-go-hcvault)
أدوات Go
نفِّذ الأمر التالي من دليل المشروع:
go get github.com/tink-crypto/tink-go-hcvault/v2@v2.2.0
اطّلِع على مستندات Go الرسمية.
Java
ObjC
اطّلِع على HOWTO على GitHub.
Python
تتوافق مكتبة Tink Python، tink-py مع Python 3.8 أو إصدار أحدث على نظام التشغيل macOS (x86-64 وARM64) وLinux (x86-64 و ARM64) وWindows (x86-64). أحدث إصدار هو 1.10.0. ويمكن تثبيته على الجهاز باستخدام Pip أو استخدامه مع Bazel.
توفّر حزمة Tink Python عمليات دمج مع AWS KMS وGoogle Cloud KMS وHashiCorp Vault.
بيب
يمكنك تثبيت إصدار Tink Python الثنائي لنظامك من PyPI، من خلال تنفيذ الأمر التالي:
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
إذا لم يتم نشر حزمة ثنائية لبيئة التشغيل، سيلجأ pip
تلقائيًا إلى إنشاء المشروع باستخدام توزيع المصدر
المنشور على PyPI. في هذه الحالة، يجب تثبيت Bazel
أو Bazelisk ومُجمِّع protoc لإنشاء المشروع بنجاح.
Bazel
يمكن لمستخدمي Bazel تضمين Tink Python في ملف
WORKSPACE
على النحو التالي:
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")
الخطوات التالية
بعد الانتهاء من إعداد Tink، تابِع الخطوات العادية لاستخدام Tink:
- اختيار عنصر أساسي: حدِّد العنصر الأساسي الذي تريد استخدامه استنادًا إلى حالة الاستخدام.
- إدارة المفاتيح: يمكنك حماية مفاتيحك باستخدام تدبير إدارة مفاتيح التشفير (KMS) الخارجي، وإنشاء مجموعات مفاتيح، وتبديل مفاتيحك.