Menyiapkan Tink Java

Setelah menginstal dan menyiapkan Tink, lanjutkan dengan Langkah Berikutnya.

Tink Java

Library Java inti adalah tink-java dengan 1.16.0 sebagai rilis terbaru. Tink Java mendukung Java 8 atau yang lebih baru.

Maven

Anda dapat menyertakan Tink Java menggunakan Maven:

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

Bazel

Artefak rilis Maven

Cara yang direkomendasikan bagi pengguna Bazel untuk menambahkan Tink Java sebagai dependensi adalah dengan menginstal artefak rilis Maven menggunakan alat rules_jvm_external dalam file WORKSPACE mereka:

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",
    ],
)

Mem-build dari sumber

Jika ingin mem-build tink-java dari sumber, misalnya untuk menyematkan commit tertentu, Anda dapat menyertakannya sebagai http_archive dalam file 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

Library Android inti adalah tink-java dengan 1.16.0 sebagai rilis terbaru.

Tink Android didukung sepenuhnya mulai dari API level 24. Sebagian besar bagian Tink diharapkan berfungsi mulai dari API level 21. Bagian tempat Tink tidak berjalan secara otomatis dengan API level 21 adalah:

  • Library JWT memerlukan API level 24 karena menggunakan class seperti java.util.Optional. Batasan ini dapat dihindari dengan desugaring.

  • Class di com.google.crypto.tink.integration.android hanya diuji sepenuhnya mulai dari API level 23.

  • Beberapa API di com.google.crypto.tink.streamingaead menggunakan SeekableByteBufferChannel yang hanya tersedia dari API level 24.

Karena alasan teknis, kami hanya menguji Tink di Android pada infrastruktur internal Google. Kami tidak memperkirakan masalah apa pun karena hal ini, tetapi jika Anda mengalami masalah, harap laporkan masalah.

Tink Android tidak memerlukan konfigurasi proguard.

Gradle

Anda dapat menggunakan tink-android dari Gradle:

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

Ekstensi AWS KMS

Ekstensi AWS KMS Tink Java adalah tink-java-awskms dengan 1.11.0 sebagai rilis terbaru.

Maven

Anda dapat menyertakan ekstensi Tink Java AWS KMS menggunakan Maven:

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

Bazel

Artefak rilis Maven

Anda dapat menginstal artefak Maven com.google.crypto.tink:tink-awskms bersama com.google.crypto.tink:tink menggunakan alat 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",
    ],
)

Mem-build dari sumber

Jika ingin mem-build tink-awskms dari sumber, misalnya untuk menyematkan commit tertentu, Anda dapat menyertakannya sebagai http_archive dalam file 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",
    ],
)

Ekstensi Google Cloud KMS

Ekstensi Google Cloud KMS Tink Java adalah tink-java-gcpkms dengan 1.10.0 sebagai rilis terbaru.

Maven

Anda dapat menyertakan ekstensi Google Cloud KMS Tink Java menggunakan Maven:

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

Bazel

Artefak rilis Maven

Anda dapat menginstal artefak Maven com.google.crypto.tink:tink-gcpkms bersama com.google.crypto.tink:tink menggunakan alat 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",
    ],
)

Mem-build dari sumber

Jika ingin mem-build tink-gcpkms dari sumber, misalnya untuk menyematkan commit tertentu, Anda dapat menyertakannya sebagai http_archive dalam file 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",
    ],
)

Aplikasi Java Tink

Library Aplikasi Java Tink menyediakan implementasi untuk Token Metode Pembayaran Google, Verifikasi Sisi Server untuk Iklan Berimbalan Google AdMob, dan RFC 8291 - Enkripsi Pesan untuk Web Push dengan 1.11.0 sebagai rilis terbaru.

Maven

Anda dapat menyertakan library Aplikasi Java Tink menggunakan 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

Anda dapat menginstal artefak Maven com.google.crypto.tink:apps-* mana pun menggunakan alat 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",
    ],
)

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