Tink Java'yı ayarlama

Tink'i yükleyip ayarladıktan sonra Sonraki Adımlar'a geçin.

Tink Java

Temel Java kitaplığı tink-java'dır ve en son sürüm 1.16.0'dır. Tink Java, Java 8 veya sonraki sürümleri destekler.

Maven

Tink Java'yı Maven kullanarak ekleyebilirsiniz:

<dependency>
  <groupId>com.google.crypto.tink</groupId>
  <artifactId>tink</artifactId>
  <version>1.16.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ında 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.16.0",
        # ... other dependencies ...
    ],
    repositories = [
        "https://maven.google.com",
        "https://repo1.maven.org/maven2",
    ],
)

Kaynaktan derleme

tink-java'ü kaynaktan derlemek istiyorsanız (ör. belirli bir commit'i sabitlemek için) 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ığı tink-java'dır ve en son sürüm 1.16.0'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 21'den itibaren çalışacağı beklenir. Tink'in API düzeyi 21 ile kutudan çıktığı bölümler şunlardır:

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

  • com.google.crypto.tink.integration.android sınıfları yalnızca API düzeyi 23'ten itibaren tam olarak test edilmiştir.

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

Teknik nedenlerden dolayı Tink'i Android'de yalnızca Google'ın dahili altyapısında test ederiz. Bu nedenle herhangi bir sorunla karşılaşmayacaksınız ancak sorunla karşılaşırsanız lütfen sorun kaydı oluşturun.

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

Gradle

Gradle'den tink-android kullanabilirsiniz:

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

AWS KMS Uzantısı

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

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.16.0",
        "com.google.crypto.tink:tink-awskms:1.11.0",
        # ... other dependencies ...
    ],
    repositories = [
        "https://maven.google.com",
        "https://repo1.maven.org/maven2",
    ],
)

Kaynaktan derleme

tink-awskms'ü kaynaktan derlemek istiyorsanız (ör. belirli bir taahhüt için sabitlemek üzere) WORKSPACE dosyanıza http_archive olarak ekleyebilirsiniz:

# ...

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

Google Cloud KMS Uzantısı

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

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.16.0",
        "com.google.crypto.tink:tink-gcpkms:1.10.0",
        # ... other dependencies ...
    ],
    repositories = [
        "https://maven.google.com",
        "https://repo1.maven.org/maven2",
    ],
)

Kaynaktan derleme

tink-gcpkms'ü kaynaktan derlemek istiyorsanız (ör. belirli bir taahhüt için sabitlemek üzere) WORKSPACE dosyanıza http_archive olarak ekleyebilirsiniz:

# ...

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

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 için en son sürüm 1.11.0 ile birlikte uygulama sağlar.

Maven

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

<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

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

# ...

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

Sonraki adımlar

Tink'i kurmayı tamamladıktan sonra standart Tink kullanım adımlarına devam edin:

  • Basit öğe seçin: Kullanım alanınıza göre hangi basit öğenin 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