Configurare Tink Java

Dopo aver installato e configurato Tink, continua con i passaggi successivi.

Tink Java

La libreria Java principale è tink-java con 1.21.0 come ultima release. Tink Java supporta Java 11 o versioni successive.

Maven

Puoi includere Tink Java utilizzando Maven:

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

Bazel

Gli utenti di Bazel possono aggiungere Tink Java come dipendenza aggiungendo quanto segue al file MODULE.bazel:

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

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

Tink Android

La libreria Android principale è tink-java con 1.21.0 come ultima release.

Tink Android è completamente supportato a partire dal livello API 24. La maggior parte delle parti di Tink dovrebbe funzionare a partire dal livello API 23. Le parti in cui Tink non funziona immediatamente con il livello API 23 sono:

  • La libreria JWT richiede il livello API 24 perché utilizza classi come java.util.Optional. Questa limitazione può essere evitata con il desugaring.

  • Alcune API in com.google.crypto.tink.streamingaead utilizzano SeekableByteBufferChannel, disponibile solo dal livello API 24.

Per motivi tecnici, testiamo Tink su Android solo sull'infrastruttura interna di Google. Non prevediamo problemi, ma se ne riscontri, segnala un problema.

Tink Android non richiede alcuna configurazione di ProGuard.

Gradle

Puoi utilizzare tink-android da Gradle:

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

Estensione KMS AWS

L'estensione Tink Java AWS KMS è tink-java-awskms con 1.11.0 come ultima release.

Maven

Puoi includere l'estensione Tink Java AWS KMS utilizzando Maven:

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

Bazel

Artefatto di release Maven

Puoi installare l'artefatto Maven com.google.crypto.tink:tink-awskmsinsieme a com.google.crypto.tink:tink utilizzando lo strumento rules_jvm_external.

# ...

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

Creazione dal codice sorgente

Se vuoi creare tink-awskms dal codice sorgente, ad esempio per bloccare un commit specifico, puoi includerlo come http_archive nel file WORKSPACE:

# ...

http_archive(
    name = "tink_java",
    urls = ["https://github.com/tink-crypto/tink-java/releases/download/v1.21.0/tink-java-1.21.0.zip"],
    strip_prefix = "tink-java-1.21.0",
    sha256 = "771051851184047a3fdfbe2aca552e00c2984ac4a596951a7ad1ea8837b178da",
)

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

Estensione Cloud KMS

L'estensione Tink Java Cloud KMS di Google è tink-java-gcpkms con 1.10.0 come ultima release.

Maven

Puoi includere l'estensione Tink Java Cloud KMS Google Cloud utilizzando Maven:

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

Bazel

Artefatto di release Maven

Puoi installare l'artefatto Maven com.google.crypto.tink:tink-gcpkmsinsieme a com.google.crypto.tink:tink utilizzando lo strumento rules_jvm_external.

# ...

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

Creazione dal codice sorgente

Se vuoi creare tink-gcpkms dal codice sorgente, ad esempio per bloccare un commit specifico, puoi includerlo come http_archive nel file WORKSPACE:

# ...

http_archive(
    name = "tink_java",
    urls = ["https://github.com/tink-crypto/tink-java/archive/refs/tags/v1.21.0.zip],
    urls = ["https://github.com/tink-crypto/tink-java/releases/download/v1.21.0/tink-java-1.21.0.zip"],
    strip_prefix = "tink-java-1.21.0",
    sha256 = "771051851184047a3fdfbe2aca552e00c2984ac4a596951a7ad1ea8837b178da",
)

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

App Tink Java

La libreria Tink Java Apps fornisce implementazioni per il token del metodo di pagamento Google, la verifica lato server degli annunci con premio di Google AdMob, e RFC 8291 - Crittografia dei messaggi per le notifiche push web con 1.14.0 come ultima release.

Maven

Puoi includere la libreria Tink Java Apps utilizzando Maven:

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

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

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

Bazel

Puoi installare uno qualsiasi degli artefatti Maven com.google.crypto.tink:apps-* utilizzando lo strumento rules_jvm_external.

# ...

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

Passaggi successivi

Una volta terminata la configurazione di Tink, continua con i passaggi standard di utilizzo di Tink: