设置 Tink Java

安装并设置 Tink 后,请继续执行后续步骤。

Tink Java

核心 Java 库为 tink-java,最新版本为 1.24.0。Tink Java 支持 Java 11 或更高版本。

Maven

您可以使用 Maven 添加 Tink Java:

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

Bazel

Bazel 用户可以通过在 MODULE.bazel 文件中添加以下内容,将 Tink Java 添加为依赖项:

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

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

Tink Android

核心 Android 库为 tink-java,最新版本为 1.24.0。

从 API 级别 24 开始,Tink Android 得到全面支持。Tink 的大多数部分应该从 API 级别 23 开始运行。Tink 无法在 API 级别 23 上开箱即用的部分包括:

  • JWT 库需要 API 级别 24,因为它使用 java.util.Optional 等类。通过脱糖可以避免此限制。

  • com.google.crypto.tink.streamingaead 中的某些 API 使用 SeekableByteBufferChannel,后者仅从 API 级别 24 开始提供。

由于技术原因,我们仅在 Google 内部基础架构上测试 Android 版 Tink。我们预计这不会导致任何问题,但如果您遇到任何问题,请提交问题。

Tink Android 不需要任何 ProGuard 配置。

Gradle

您可以从 Gradle 使用 tink-android:

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

AWS KMS 扩展程序

Tink Java AWS KMS 扩展程序为 tink-java-awskms,最新版本为 2.2.0。

Maven

您可以使用 Maven 添加 Tink Java AWS KMS 扩展程序:

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

Bazel

Maven 发布版本制品

您可以使用 rules_jvm_external 工具将 com.google.crypto.tink:tink-awskms Maven 工件与 com.google.crypto.tink:tink 一起安装。

# ...

maven_install(
    artifacts = [
        "com.google.crypto.tink:tink:1.24.0",
        "com.google.crypto.tink:tink-awskms:2.2.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.12.0。

Maven

您可以使用 Maven 添加 Tink Java Google Cloud KMS 扩展程序:

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

Bazel

Maven 发布版本制品

您可以使用 rules_jvm_external 工具将 com.google.crypto.tink:tink-gcpkms Maven 工件与 com.google.crypto.tink:tink 一起安装。

# ...

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

从源代码构建

将以下内容添加到 MODULE.bazel 文件中。

bazel_dep(name = "tink_java_gcpkms")

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

Tink Java Apps

Tink Java Apps 库提供了 Google 支付方式令牌、Google AdMob 激励广告的服务器端验证和 RFC 8291 - 针对 Web 推送的消息加密的实现,最新版本为 1.15.0。

Maven

您可以使用 Maven 添加 Tink Java 应用库:

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

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

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

Bazel

您可以使用 rules_jvm_external 工具安装任何 com.google.crypto.tink:apps-* Maven 工件。

# ...

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

后续步骤

完成 Tink 设置后,请继续执行标准 Tink 使用步骤:

  • 选择原语 - 根据您的应用场景决定要使用的原语
  • 管理密钥 - 使用外部 KMS 保护密钥、生成密钥集以及轮替密钥