Thiết lập Tink Java

Sau khi cài đặt và thiết lập Tink, hãy tiếp tục với Các bước tiếp theo.

Tink Java

Thư viện Java cốt lõi là tink-java với bản phát hành mới nhất là 1.16.0. Tink Java hỗ trợ Java 8 trở lên.

Maven

Bạn có thể đưa Tink Java vào bằng Maven:

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

Bazel

Cấu phần phần mềm phát hành Maven

Người dùng Bazel nên thêm Tink Java làm phần phụ thuộc bằng cách cài đặt cấu phần phần mềm phát hành Maven bằng công cụ rules_jvm_external trong tệp 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",
    ],
)

Tạo bản dựng từ nguồn

Nếu muốn tạo tink-java từ nguồn, chẳng hạn như để ghim một thay đổi cụ thể, bạn có thể đưa thay đổi đó vào dưới dạng http_archive trong tệp 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

Thư viện Android cốt lõi là tink-java với bản phát hành mới nhất là 1.16.0.

Tink Android được hỗ trợ đầy đủ kể từ API cấp 24. Hầu hết các phần của Tink dự kiến sẽ hoạt động kể từ API cấp 21. Những phần mà Tink không chạy ngay từ đầu với API cấp 21 là:

  • Thư viện JWT yêu cầu API cấp 24 vì thư viện này sử dụng các lớp như java.util.Optional. Bạn có thể tránh được hạn chế này bằng cách đơn giản hoá.

  • Các lớp trong com.google.crypto.tink.integration.android chỉ được kiểm thử đầy đủ kể từ API cấp 23.

  • Một số API trong com.google.crypto.tink.streamingaead sử dụng SeekableByteBufferChannel chỉ có trong API cấp 24.

Do lý do kỹ thuật, chúng tôi chỉ kiểm thử Tink trên Android trên cơ sở hạ tầng nội bộ của Google. Chúng tôi không cho rằng việc này sẽ gây ra vấn đề nào, nhưng nếu bạn gặp vấn đề, vui lòng báo cáo vấn đề.

Tink Android không yêu cầu cấu hình proguard.

Gradle

Bạn có thể sử dụng tink-android từ Gradle:

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

Tiện ích AWS KMS

Tiện ích AWS KMS của Tink Java là tink-java-awskms với bản phát hành mới nhất là 1.11.0.

Maven

Bạn có thể đưa tiện ích Tink Java AWS KMS vào bằng cách sử dụng Maven:

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

Bazel

Cấu phần phần mềm phát hành Maven

Bạn có thể cài đặt cấu phần phần mềm Maven com.google.crypto.tink:tink-awskms cùng với com.google.crypto.tink:tink bằng công cụ 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",
    ],
)

Tạo bản dựng từ nguồn

Nếu muốn tạo tink-awskms từ nguồn, chẳng hạn như để ghim một thay đổi cụ thể, bạn có thể đưa thay đổi đó vào dưới dạng http_archive trong tệp 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",
    ],
)

Tiện ích Google Cloud KMS

Tiện ích Google Cloud KMS của Tink Java là tink-java-gcpkms với bản phát hành mới nhất là 1.10.0.

Maven

Bạn có thể đưa tiện ích Tink Java Google Cloud KMS vào bằng cách sử dụng Maven:

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

Bazel

Cấu phần phần mềm phát hành Maven

Bạn có thể cài đặt cấu phần phần mềm Maven com.google.crypto.tink:tink-gcpkms cùng với com.google.crypto.tink:tink bằng công cụ 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",
    ],
)

Tạo bản dựng từ nguồn

Nếu muốn tạo tink-gcpkms từ nguồn, chẳng hạn như để ghim một thay đổi cụ thể, bạn có thể đưa thay đổi đó vào dưới dạng http_archive trong tệp 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",
    ],
)

Ứng dụng Java của Tink

Thư viện Ứng dụng Java Tink cung cấp các phương thức triển khai cho Mã thông báo phương thức thanh toán của Google, Xác minh phía máy chủ của quảng cáo có tặng thưởng của Google AdMobRFC 8291 – Mã hoá thông báo cho Web Push với bản phát hành mới nhất là 1.11.0.

Maven

Bạn có thể đưa thư viện Ứng dụng Java của Tink vào bằng cách sử dụng 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

Bạn có thể cài đặt bất kỳ cấu phần phần mềm Maven com.google.crypto.tink:apps-* nào bằng công cụ 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",
    ],
)

Các bước tiếp theo

Sau khi hoàn tất việc thiết lập Tink, hãy tiếp tục các bước sử dụng Tink tiêu chuẩn: