Menyiapkan Tink Java

Setelah menginstal dan menyiapkan Tink, lanjutkan dengan Langkah Berikutnya.

Tink Java

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

Maven

Anda dapat menyertakan Tink Java menggunakan Maven:

<dependency>
  <groupId>com.google.crypto.tink</groupId>
  <artifactId>tink</artifactId>
  <version>1.18.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 di 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.18.0",
        # ... other dependencies ...
    ],
    repositories = [
        "https://maven.google.com",
        "https://repo1.maven.org/maven2",
    ],
)

Membangun dari sumber

Jika Anda 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.18.0 sebagai rilis terbaru.

Tink Android didukung sepenuhnya mulai dari API level 24. Sebagian besar bagian Tink diharapkan berfungsi mulai dari level API 23. Bagian yang tidak dapat dijalankan Tink langsung dengan API level 23 adalah:

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

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

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

Tink Android tidak memerlukan konfigurasi proguard.

Gradle

Anda dapat menggunakan tink-android dari Gradle:

dependencies {
  implementation 'com.google.crypto.tink:tink-android:1.18.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.18.0",
        "com.google.crypto.tink:tink-awskms:1.11.0",
        # ... other dependencies ...
    ],
    repositories = [
        "https://maven.google.com",
        "https://repo1.maven.org/maven2",
    ],
)

Membangun dari sumber

Jika Anda 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.18.0/tink-java-1.18.0.zip"],
    strip_prefix = "tink-java-1.18.0",
    sha256 = "f74f0b8fa8a6edc129ce6b369764e176d7047d87d8f77cec06a8880f00498571",
)

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 Tink Java Google Cloud KMS 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.18.0",
        "com.google.crypto.tink:tink-gcpkms:1.10.0",
        # ... other dependencies ...
    ],
    repositories = [
        "https://maven.google.com",
        "https://repo1.maven.org/maven2",
    ],
)

Membangun dari sumber

Jika Anda 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.18.0/tink-java-1.18.0.zip"],
    strip_prefix = "tink-java-1.18.0",
    sha256 = "f74f0b8fa8a6edc129ce6b369764e176d7047d87d8f77cec06a8880f00498571",
)

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 Tink Java Apps menyediakan penerapan untuk Token Metode Pembayaran Google, Verifikasi Sisi Server Iklan Reward Google AdMob, dan RFC 8291 - Message Encryption for Web Push dengan 1.12.2 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.12.2</version>
</dependency>

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

<dependency>
  <groupId>com.google.crypto.tink</groupId>
  <artifactId>apps-rewardedads</artifactId>
  <version>1.12.2</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.12.2",
        "com.google.crypto.tink:apps-paymentmethodtoken:1.12.2",
        "com.google.crypto.tink:apps-rewardedads:1.12.2",
        # ... other dependencies ...
    ],
    repositories = [
        "https://maven.google.com",
        "https://repo1.maven.org/maven2",
    ],
)

Langkah berikutnya

Setelah Anda selesai menyiapkan Tink, lanjutkan dengan langkah-langkah penggunaan Tink standar:

  • Pilih primitif – Tentukan primitif yang akan digunakan berdasarkan kasus penggunaan Anda
  • Mengelola kunci – Lindungi kunci Anda dengan KMS eksternal, buat set kunci, dan rotasi kunci Anda