إعداد Tink

يمكنك إنشاء Tink من المصدر أو استخدام الحِزم الخاصة بلغة معيّنة. يمكنك اتّباع التعليمات التالية للبدء.

بعد الانتهاء من تثبيت Tink وإعداده، تابِع الخطوات التالية في نهاية هذه الصفحة.

C++‎

توفّر Tink مكتبات C++ التالية:

Tink C++ (tink-cc)

تعتمد حزمة Tink C++ على ما يلي:

تتيح مكتبة 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 على ما يلي:

تتوافق خدمة 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

يجب إضافة ما يلي إلى ملف 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++ Google Cloud KMS ما يلي:

  • ‫C++‏ >= 14
  • نظام التشغيل:
    • ‫UbuntuLTS‏ >= 20.04 (x86_64)
    • الإصدار 12.5 من نظام التشغيل macOS أو الإصدارات الأحدث من Monterey (x86_64)
  • المُجمِّع:
    • ‫GCC ‏ >= 7.5.0
    • Apple Clang ‏ >= 14
  • نظام الإنشاء:

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

إعداد Tink 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) الخارجي، وإنشاء مجموعات مفاتيح، وتبديل مفاتيحك.