Как настроить Tink Java

После установки и настройки Tink перейдите к разделу Дальнейшие действия.

Tink Java

Основная библиотека Java – tink-java. Последняя версия – 1.24.0. Tink Java поддерживает Java 11 и более поздние версии.

Maven

Вы можете включить Tink Java с помощью Maven:

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

Bazel

Пользователи Bazel могут добавить Tink Java в качестве зависимости, указав в файле MODULE.bazel следующее:

  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.

Tink Android полностью поддерживается начиная с уровня API 24. Большинство компонентов Tink должны работать начиная с уровня API 23. Части, в которых Tink не работает по умолчанию с уровнем API 23:

  • Для библиотеки JWT требуется API уровня 24, поскольку она использует такие классы, как java.util.Optional. Это ограничение можно обойти с помощью десахаризации.

  • Некоторые API в com.google.crypto.tink.streamingaead используют SeekableByteBufferChannel, который доступен только начиная с уровня API 24.

По техническим причинам мы тестируем Tink на Android только во внутренней инфраструктуре Google. Мы не ожидаем, что это вызовет какие-либо проблемы, но если вы столкнетесь с ними, сообщите нам.

Для Tink Android не требуется конфигурация ProGuard.

Gradle

Вы можете использовать tink-android из Gradle:

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

Расширение AWS KMS

Расширение Tink Java AWS KMS – это tink-java-awskms, последняя версия которого – 2.2.0.

Maven

Вы можете включить расширение Tink Java AWS KMS с помощью Maven:

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

Bazel

Объект выпуска Maven

Вы можете установить артефакт Maven com.google.crypto.tink:tink-awskms вместе с com.google.crypto.tink:tink, используя инструмент rules_jvm_external.

# ...

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

Вы можете включить расширение Tink Java Google Cloud KMS с помощью Maven:

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

Bazel

Объект выпуска Maven

Вы можете установить артефакт Maven com.google.crypto.tink:tink-gcpkms вместе с com.google.crypto.tink:tink, используя инструмент rules_jvm_external.

# ...

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

Библиотека Tink Java Apps содержит реализации для токена способа оплаты Google, проверки на стороне сервера объявлений Google AdMob с вознаграждением и RFC 8291 – шифрования сообщений для веб-пуш-уведомлений. Последняя версия – 1.15.0.

Maven

Вы можете включить библиотеку Tink Java Apps с помощью Maven:

<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

Вы можете установить любой из артефактов Maven com.google.crypto.tink:apps-* с помощью инструмента rules_jvm_external.

# ...

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:

  • Выберите примитив в зависимости от вашего сценария использования.
  • Управление ключами. Защищайте ключи с помощью внешнего сервиса управления ключами, генерируйте наборы ключей и меняйте ключи.