Tink를 설치하고 설정한 후 다음 단계를 진행합니다.
Tink Java
코어 Java 라이브러리는 tink-java이며 최신 버전은 1.16.0입니다. Tink Java는 Java 8 이상을 지원합니다.
Maven
Maven을 사용하여 Tink Java를 포함할 수 있습니다.
<dependency>
<groupId>com.google.crypto.tink</groupId>
<artifactId>tink</artifactId>
<version>1.16.0</version>
</dependency>
Bazel
Maven 출시 아티팩트
Bazel 사용자가 Tink Java를 종속 항목으로 추가하는 권장 방법은 WORKSPACE
파일에서 rules_jvm_external
도구를 사용하여 Maven 출시 아티팩트를 설치하는 것입니다.
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",
],
)
소스에서 빌드
특정 커밋을 고정하기 위해 소스에서 tink-java
를 빌드하려면 WORKSPACE
파일에 http_archive
로 포함하면 됩니다.
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
핵심 Android 라이브러리는 tink-java이며 최신 버전은 1.16.0입니다.
Tink Android는 API 수준 24부터 완전히 지원됩니다. Tink의 대부분은 API 수준 21부터 작동할 것으로 예상됩니다. API 수준 21에서 Tink가 즉시 실행되지 않는 부분은 다음과 같습니다.
JWT 라이브러리는
java.util.Optional
와 같은 클래스를 사용하므로 API 수준 24가 필요합니다. 이 제한은 디슈가링으로 방지할 수 있습니다.com.google.crypto.tink.integration.android
의 클래스는 API 수준 23부터 완전히 테스트됩니다.com.google.crypto.tink.streamingaead
의 일부 API는 API 수준 24부터만 사용할 수 있는SeekableByteBufferChannel
를 사용합니다.
기술적 이유로 Google은 Google 내부 인프라에서 Android용 Tink만 테스트합니다. 이로 인해 문제가 발생하지는 않을 것으로 예상되지만 문제가 발생하면 문제를 신고해 주세요.
Tink Android에는 ProGuard 구성이 필요하지 않습니다.
Gradle
Gradle에서 tink-android
를 사용할 수 있습니다.
dependencies {
implementation 'com.google.crypto.tink:tink-android:1.16.0'
}
AWS KMS 확장 프로그램
Tink Java AWS KMS 확장 프로그램은 1.11.0이 최신 버전인 tink-java-awskms입니다.
Maven
Maven을 사용하여 Tink Java AWS KMS 확장 프로그램을 포함할 수 있습니다.
<dependencies>
<dependency>
<groupId>com.google.crypto.tink</groupId>
<artifactId>tink-awskms</artifactId>
<version>1.11.0</version>
</dependency>
</dependencies>
Bazel
Maven 출시 아티팩트
rules_jvm_external
도구를 사용하여 com.google.crypto.tink:tink
와 함께 com.google.crypto.tink:tink-awskms
Maven 아티팩트를 설치할 수 있습니다.
# ...
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",
],
)
소스에서 빌드
특정 커밋을 고정하기 위해 소스에서 tink-awskms
를 빌드하려면 WORKSPACE
파일에 http_archive
로 포함하면 됩니다.
# ...
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 확장 프로그램
Tink Java Google Cloud KMS 확장 프로그램은 1.10.0이 최신 버전인 tink-java-gcpkms입니다.
Maven
Maven을 사용하여 Tink Java Google Cloud KMS 확장 프로그램을 포함할 수 있습니다.
<dependencies>
<dependency>
<groupId>com.google.crypto.tink</groupId>
<artifactId>tink-gcpkms</artifactId>
<version>1.10.0/version>
</dependency>
</dependencies>
Bazel
Maven 출시 아티팩트
rules_jvm_external
도구를 사용하여 com.google.crypto.tink:tink
와 함께 com.google.crypto.tink:tink-gcpkms
Maven 아티팩트를 설치할 수 있습니다.
# ...
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",
],
)
소스에서 빌드
특정 커밋을 고정하기 위해 소스에서 tink-gcpkms
를 빌드하려면 WORKSPACE
파일에 http_archive
로 포함하면 됩니다.
# ...
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 앱
Tink Java Apps 라이브러리는 Google 결제 수단 토큰, Google AdMob 리워드 광고의 서버 측 인증, RFC 8291 - 웹 푸시용 메시지 암호화를 구현하며 최신 버전은 1.11.0입니다.
Maven
Maven을 사용하여 Tink Java 앱 라이브러리를 포함할 수 있습니다.
<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
도구를 사용하여 com.google.crypto.tink:apps-*
Maven 아티팩트를 설치할 수 있습니다.
# ...
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",
],
)
다음 단계
Tink 설정을 완료한 후 표준 Tink 사용 단계를 계속 진행합니다.