إعداد Tink Java

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

Tink Java

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

Maven

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

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

Bazel

عنصر إصدار Maven

الطريقة المقترَحة لمستخدمي Bazel لإضافة Tink Java كأحد تبعات التحميل هي تثبيت عنصر إصدار Maven باستخدام أداة rules_jvm_external في ملف WORKSPACE:

load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive")

RULES_JVM_EXTERNAL_TAG = "6.1"
RULES_JVM_EXTERNAL_SHA ="d31e369b854322ca5098ea12c69d7175ded971435e55c18dd9dd5f29cc5249ac"

http_archive(
    name = "rules_jvm_external",
    strip_prefix = "rules_jvm_external-%s" % RULES_JVM_EXTERNAL_TAG,
    sha256 = RULES_JVM_EXTERNAL_SHA,
    url = "https://github.com/bazelbuild/rules_jvm_external/releases/download/%s/rules_jvm_external-%s.tar.gz" % (RULES_JVM_EXTERNAL_TAG, RULES_JVM_EXTERNAL_TAG)
)

load("@rules_jvm_external//:repositories.bzl", "rules_jvm_external_deps")

rules_jvm_external_deps()

load("@rules_jvm_external//:setup.bzl", "rules_jvm_external_setup")

rules_jvm_external_setup()

load("@rules_jvm_external//:defs.bzl", "maven_install")

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

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

إذا كنت تريد إنشاء tink-java من المصدر، على سبيل المثال لتثبيت تعهّد معيّن، يمكنك تضمينه كملف http_archive في ملف WORKSPACE:

load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive")

TINK_COMMIT="f4127f6b6ab9c367d41ade1f50db6f0ef9909044"
TINK_SHA256="e246f848f7749e37f558955ecb50345b04d79ddb9d8d1e8ae19f61e8de530582"

http_archive(
    name = "tink_java",
    urls = ["https://github.com/tink-crypto/tink-java/archive/%s.zip" % TINK_COMMIT],
    strip_prefix = "tink-%s" % TINK_COMMIT,
    sha256 = TINK_SHA256
)

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

# rules_jvm_external is imported and initialized by tink_java_deps and
# tink_java_deps_init.
load("@rules_jvm_external//:defs.bzl", "maven_install")

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

Tink Android

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

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

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

  • لا يتم اختبار الفئات في com.google.crypto.tink.integration.android بالكامل إلا بدءًا من المستوى 23 من واجهة برمجة التطبيقات.

  • تستخدِم بعض واجهات برمجة التطبيقات في 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.16.0'
}

إضافة AWS KMS

امتداد AWS KMS في Tink Java هو tink-java-awskms مع 1.11.0 كأحدث إصدار.

Maven

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

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

Bazel

عنصر إصدار Maven

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

# ...

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

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

إذا كنت تريد إنشاء tink-awskms من المصدر، على سبيل المثال لتثبيت تعهُّد معيّن، يمكنك تضمينه كملف http_archive في ملف WORKSPACE:

# ...

http_archive(
    name = "tink_java",
    urls = ["https://github.com/tink-crypto/tink-java/releases/download/v1.16.0/tink-java-1.16.0.zip"],
    strip_prefix = "tink-java-1.16.0",
    sha256 = "6bf0bb13281257fdf07d70abfc025f0e3ab18abd22646b1ada3fe297f7feaedb",
)

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_awskms",
    urls = ["https://github.com/tink-crypto/tink-java-awskms/releases/download/v1.11.0/tink-java-awskms-1.11.0.zip"],
    strip_prefix = "tink-java-awskms-1.11.0",
    sha256 = "18f8faa7ba0019fc584f9e03f94221ebbcc83f059568d2277a4866003153e151",
)

load("@tink_java_awskms//:tink_java_awskms_deps.bzl", "TINK_JAVA_AWSKMS_MAVEN_ARTIFACTS")

maven_install(
    artifacts = TINK_MAVEN_ARTIFACTS + TINK_JAVA_AWSKMS_MAVEN_ARTIFACTS + [
        # ... 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

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

# ...

maven_install(
    artifacts = [
        "com.google.crypto.tink:tink:1.16.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/releases/download/v1.16.0/tink-java-1.16.0.zip"],
    strip_prefix = "tink-java-1.16.0",
    sha256 = "6bf0bb13281257fdf07d70abfc025f0e3ab18abd22646b1ada3fe297f7feaedb",
)

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 Apps عمليات تنفيذ رمز مفتاح طريقة الدفع من Google، التحقّق من جهة الخادم للإعلانات التي تضم مكافآت من AdMob، RFC 8291 - تشفير الرسائل لرسائل Web Push مع 1.11.0 كأحدث إصدار.

Maven

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

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

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

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

Bazel

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

# ...

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

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

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

  • اختيار عنصر أساسي: حدِّد العنصر الأساسي الذي تريد استخدامه استنادًا إلى حالة الاستخدام.
  • إدارة المفاتيح: يمكنك حماية مفاتيحك باستخدام تدبير إدارة مفاتيح التشفير (KMS) الخارجي، وإنشاء مجموعات مفاتيح، وتبديل مفاتيحك.