Tink Java'yı ayarlama

Tink'i yükleyip kurduktan sonra Sonraki Adımlar bölümüne geçin.

Tink Java

Temel Java kitaplığı tink-java'dır ve en son sürümü 1.18.0'dır. Tink Java, Java 11 veya daha yeni sürümleri destekler.

Maven

Maven'ı kullanarak Tink Java'yı ekleyebilirsiniz:

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

Bazel

Maven sürüm yapısı

Bazel kullanıcılarının Tink Java'yı bağımlılık olarak eklemesi için önerilen yöntem, WORKSPACE dosyalarındaki rules_jvm_external aracını kullanarak Maven sürüm yapısını yüklemektir:

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

Kaynaktan derleme

Örneğin belirli bir commit'i sabitlemek için tink-java'ı kaynaktan oluşturmak istiyorsanız WORKSPACE dosyanıza http_archive olarak ekleyebilirsiniz:

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

Temel Android kitaplığı, en son sürümü 1.18.0 olan tink-java'dır.

Tink Android, API düzeyi 24'ten itibaren tam olarak desteklenir. Tink'in çoğu bölümünün API düzeyi 23'ten itibaren çalışması beklenir. Tink'in API düzeyi 23 ile kullanıma hazır olarak çalışmadığı kısımlar şunlardır:

  • JWT kitaplığı, java.util.Optional gibi sınıfları kullandığından API düzeyi 24 gerektirir. Bu sınırlama, desugaring ile önlenebilir.

  • com.google.crypto.tink.streamingaead içindeki bazı API'ler, yalnızca API düzeyi 24'ten itibaren kullanılabilen SeekableByteBufferChannel kullanır.

Teknik nedenlerden dolayı Tink'i yalnızca Google'ın dahili altyapısında Android'de test ediyoruz. Bu durumun herhangi bir soruna yol açmasını beklemiyoruz ancak sorunla karşılaşırsanız lütfen sorun kaydı oluşturun.

Tink Android için proguard yapılandırması gerekmez.

Gradle

Gradle'dan tink-android kullanabilirsiniz:

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

AWS KMS Uzantısı

Tink Java AWS KMS uzantısı, en son sürümü 1.11.0 olan tink-java-awskms'dir.

Maven

Maven'i kullanarak Tink Java AWS KMS uzantısını ekleyebilirsiniz:

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

Bazel

Maven sürüm yapısı

rules_jvm_external aracını kullanarak com.google.crypto.tink:tink-awskms Maven yapısını com.google.crypto.tink:tink ile birlikte yükleyebilirsiniz.

# ...

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

Kaynaktan derleme

Örneğin, belirli bir commit'i sabitlemek için tink-awskms öğesini kaynaktan oluşturmak istiyorsanız bunu WORKSPACE dosyanıza http_archive olarak ekleyebilirsiniz:

# ...

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

Google Cloud KMS Uzantısı

Tink Java Google Cloud KMS uzantısı, en son sürümü 1.10.0 olan tink-java-gcpkms'dir.

Maven

Maven'i kullanarak Tink Java Google Cloud KMS uzantısını ekleyebilirsiniz:

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

Bazel

Maven sürüm yapısı

rules_jvm_external aracını kullanarak com.google.crypto.tink:tink-gcpkms Maven yapısını com.google.crypto.tink:tink ile birlikte yükleyebilirsiniz.

# ...

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

Kaynaktan derleme

Örneğin, belirli bir commit'i sabitlemek için tink-gcpkms öğesini kaynaktan oluşturmak istiyorsanız bunu WORKSPACE dosyanıza http_archive olarak ekleyebilirsiniz:

# ...

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

Tink Java Uygulamaları

Tink Java Apps kitaplığı, Google ödeme yöntemi jetonu, Google AdMob ödüllü reklamlarının sunucu tarafında doğrulanması ve RFC 8291 - Web Push için Mesaj Şifreleme ile ilgili uygulamalar sağlar. En son sürüm 1.12.2'dir.

Maven

Tink Java Apps kitaplığını Maven kullanarak ekleyebilirsiniz:

<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

rules_jvm_external aracını kullanarak com.google.crypto.tink:apps-* Maven yapıtlarından herhangi birini yükleyebilirsiniz.

# ...

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

Sonraki adımlar

Tink'i kurmayı tamamladığınızda standart Tink kullanım adımlarıyla devam edin:

  • Bir temel seçin: Kullanım alanınıza göre hangi temelin kullanılacağına karar verin.
  • Anahtarları yönetme: Anahtarlarınızı harici KMS'nizle koruyun, anahtar kümeleri oluşturun ve anahtarlarınızı döndürün.