إعداد Tink Java

بعد تثبيت Tink وإعداده، يمكنك متابعة الخطوات التالية.

Tink Java

مكتبة Java الأساسية هي tink-java، وأحدث إصدار لها هو 1.21.0. تتوافق Tink Java مع Java 11 أو الإصدارات الأحدث.

Maven

يمكنك تضمين Tink Java باستخدام Maven:

<dependency>
  <groupId>com.google.crypto.tink</groupId>
  <artifactId>tink</artifactId>
  <version>1.21.0</version>
</dependency>

Bazel

يمكن لمستخدمي Bazel إضافة Tink Java كاعتمادية من خلال إضافة ما يلي في ملف MODULE.bazel الخاص بهم:

  bazel_dep(name = "tink_java", version = "1.21.0")

  git_override(
      module_name = "tink_java",
      remote = "https://github.com/tink-crypto/tink-java",
      tag = "v1.21.0",
  )

Tink Android

مكتبة Android الأساسية هي tink-java، وأحدث إصدار لها هو 1.21.0.

تتوافق Tink Android بشكل كامل بدءًا من المستوى 24 من واجهة برمجة التطبيقات. من المتوقّع أن تعمل معظم أجزاء Tink بدءًا من المستوى 23 من واجهة برمجة التطبيقات. في ما يلي الأجزاء التي لا تعمل فيها Tink تلقائيًا مع المستوى 23 من واجهة برمجة التطبيقات:

  • تتطلّب مكتبة JWT المستوى 24 من واجهة برمجة التطبيقات لأنّها تستخدم فئات مثل java.util.Optional. يمكن تجنُّب هذا القيد باستخدام إزالة التجميل اللغوي.

  • تستخدم بعض واجهات برمجة التطبيقات في com.google.crypto.tink.streamingaead السمة SeekableByteBufferChannel التي لا تتوفّر إلا بدءًا من المستوى 24 من واجهة برمجة التطبيقات.

لأسباب فنية، لا نختبر Tink على Android إلا على البنية الأساسية الداخلية من Google. لا نتوقّع حدوث أي مشاكل بسبب ذلك، ولكن إذا واجهت أي مشاكل، يُرجى الإبلاغ عن مشكلة.

لا تتطلّب Tink Android أي إعدادات لبرنامج Proguard.

Gradle

يمكنك استخدام tink-android من Gradle:

dependencies {
  implementation 'com.google.crypto.tink:tink-android:1.21.0'
}

إضافة AWS KMS

إضافة Tink Java AWS KMS هي tink-java-awskms، وأحدث إصدار لها هو 2.0.0.

Maven

يمكنك تضمين إضافة Tink Java AWS KMS باستخدام Maven:

<dependencies>
  <dependency>
    <groupId>com.google.crypto.tink</groupId>
    <artifactId>tink-awskms</artifactId>
    <version>2.0.0</version>
  </dependency>
</dependencies>

Bazel

عنصر إصدار Maven

يمكنك تثبيت عنصر Maven‏ com.google.crypto.tink:tink-awskms بجانب com.google.crypto.tink:tink باستخدام rules_jvm_external أداة.

# ...

maven_install(
    artifacts = [
        "com.google.crypto.tink:tink:1.21.0",
        "com.google.crypto.tink:tink-awskms:2.0.0",
        # ... other dependencies ...
    ],
    repositories = [
        "https://maven.google.com",
        "https://repo1.maven.org/maven2",
    ],
)

إضافة Google Cloud KMS

إضافة Tink Java Google Cloud KMS هي tink-java-gcpkms، وأحدث إصدار لها هو 1.10.0.

Maven

يمكنك تضمين إضافة Tink Java Google Cloud KMS باستخدام Maven:

<dependencies>
  <dependency>
    <groupId>com.google.crypto.tink</groupId>
    <artifactId>tink-gcpkms</artifactId>
    <version>1.10.0/version>
  </dependency>
</dependencies>

Bazel

عنصر إصدار Maven

يمكنك تثبيت عنصر Maven‏ com.google.crypto.tink:tink-gcpkmsبجانب com.google.crypto.tink:tink باستخدام أداة rules_jvm_external.

# ...

maven_install(
    artifacts = [
        "com.google.crypto.tink:tink:1.21.0",
        "com.google.crypto.tink:tink-gcpkms:1.10.0",
        # ... other dependencies ...
    ],
    repositories = [
        "https://maven.google.com",
        "https://repo1.maven.org/maven2",
    ],
)

الإنشاء من المصدر

إذا أردت إنشاء tink-gcpkms من المصدر، مثلاً لتثبيت عملية تنفيذ معيّنة، يمكنك تضمينها كـ http_archive في ملف WORKSPACE:

# ...

http_archive(
    name = "tink_java",
    urls = ["https://github.com/tink-crypto/tink-java/archive/refs/tags/v1.21.0.zip],
    urls = ["https://github.com/tink-crypto/tink-java/releases/download/v1.21.0/tink-java-1.21.0.zip"],
    strip_prefix = "tink-java-1.21.0",
    sha256 = "771051851184047a3fdfbe2aca552e00c2984ac4a596951a7ad1ea8837b178da",
)

load("@tink_java//:tink_java_deps.bzl", "TINK_MAVEN_ARTIFACTS", "tink_java_deps")

tink_java_deps()

load("@tink_java//:tink_java_deps_init.bzl", "tink_java_deps_init")

tink_java_deps_init()

http_archive(
    name = "tink_java_gcpkms",
    urls = ["https://github.com/tink-crypto/tink-java-gcpkms/releases/download/v1.10.0/tink-java-gcpkms-1.10.0.zip"],
    strip_prefix = "tink-java-gcpkms-1.10.0",
    sha256 = "ad85625cc4409f2f6ab13a8eef39c965501585e9323d59652cce322b3d2c09a2",
)

load("@tink_java_gcpkms//:tink_java_gcpkms_deps.bzl", "TINK_JAVA_GCPKMS_MAVEN_ARTIFACTS")

maven_install(
    artifacts =  TINK_MAVEN_ARTIFACTS + TINK_JAVA_GCPKMS_MAVEN_ARTIFACTS + [
        # ... other dependencies ...
    ],
    repositories = [
        "https://maven.google.com",
        "https://repo1.maven.org/maven2",
    ],
)

تطبيقات Tink Java

توفّر مكتبة تطبيقات Tink Java عمليات تنفيذ لـ رمز طريقة الدفع من Google، وعملية تحقّق من الإعلانات مقابل مكافأة في Google AdMob من جهة الخادم، وRFC 8291 - تشفير الرسائل لإشعارات الويب الفورية، وأحدث إصدار لها هو 1.14.0.

Maven

يمكنك تضمين مكتبة تطبيقات Tink Java باستخدام Maven:

<dependency>
  <groupId>com.google.crypto.tink</groupId>
  <artifactId>apps-webpush</artifactId>
  <version>1.14.0</version>
</dependency>

<dependency>
  <groupId>com.google.crypto.tink</groupId>
  <artifactId>apps-paymentmethodtoken</artifactId>
  <version>1.14.0</version>
</dependency>

<dependency>
  <groupId>com.google.crypto.tink</groupId>
  <artifactId>apps-rewardedads</artifactId>
  <version>1.14.0</version>
</dependency>

Bazel

يمكنك تثبيت أي من عناصر Maven‏ com.google.crypto.tink:apps-* باستخدام أداة rules_jvm_external.

# ...

maven_install(
    artifacts = [
        "com.google.crypto.tink:apps-webpush:1.14.0",
        "com.google.crypto.tink:apps-paymentmethodtoken:1.14.0",
        "com.google.crypto.tink:apps-rewardedads:1.14.0",
        # ... other dependencies ...
    ],
    repositories = [
        "https://maven.google.com",
        "https://repo1.maven.org/maven2",
    ],
)

الخطوات التالية

بعد الانتهاء من إعداد Tink، يمكنك متابعة خطوات استخدام Tink العادية:

  • اختيار أداة أساسية: عليك تحديد الأداة الأساسية التي تريد استخدامها استنادًا إلى حالة الاستخدام.
  • إدارة المفاتيح: يمكنك حماية مفاتيحك باستخدام نظام إدارة المفاتيح الخارجي، وإنشاء مجموعات المفاتيح، وتدوير مفاتيحك.