Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

fix(deps): update dependency com.google.crypto.tink:tink-android to v1.16.0 #61

Open
wants to merge 1 commit into
base: main
Choose a base branch
from

Conversation

renovate[bot]
Copy link
Contributor

@renovate renovate bot commented May 6, 2023

This PR contains the following updates:

Package Change Age Adoption Passing Confidence
com.google.crypto.tink:tink-android 1.7.0 -> 1.16.0 age adoption passing confidence

Release Notes

tink-crypto/tink-java (com.google.crypto.tink:tink-android)

v1.16.0: Tink Java v1.16.0

Tink is a multi-language, cross-platform library that provides simple and misuse-proof APIs for common cryptographic tasks.

This is Tink Java 1.16.0

What's new

The complete list of changes since 1.15.0 can be found here.

  • Added new API AndroidKeystore, which is now the preferred way to interact with the Android Keystore.
  • Before this release, the decision whether to use Conscrypt was done at time of class loading of some specific internal classes. If Conscrypt was not installed before the specific class for a primitive was loaded, Conscrypt was never used. Now, the decision is made whenever a new primitive is instantiated.
  • In HPKE, use Conscrypt implementation of X25519 when available. On Android, it is available since API version 31. This makes HPKE both faster and uses less memory.
  • Updated deps:
    • protobuf (4.28.2)
  • Allow @AccessesPartialKey to be applied to fields and local variables, as well as methods and classes.
  • Added support for X-AES-GCM, which is an AEAD algorithm with extended nonce. It uses AES-CMAC for key derivation and AES-GCM for encryption. It is a generalization of the specification in https://c2sp.org/XAES-256-GCM.
  • Added configurations that allow specifying what key types are when using Tink in your application. Tink provides defaults (ConfigurationV0) that are backwards compatible with behavior before configs were introduced.

Future work

To see what we're working towards, check our project roadmap.

Getting started

To get started using Tink, see the setup guide.

Maven:
<dependency>
    <groupId>com.google.crypto.tink</groupId>
    <artifactId>tink</artifactId>
    <version>1.16.0</version>
</dependency>
Gradle:
dependencies {
  implementation 'com.google.crypto.tink:tink-android:1.16.0'
}
Bazel:
load("@&#8203;bazel_tools//tools/build_defs/repo:http.bzl", "http_archive")

RULES_JVM_EXTERNAL_TAG = "4.5"
RULES_JVM_EXTERNAL_SHA ="b17d7388feb9bfa7f2fa09031b32707df529f26c91ab9e5d909eb1676badd9a6"

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/archive/refs/tags/%s.zip" % RULES_JVM_EXTERNAL_TAG,
)

load("@&#8203;rules_jvm_external//:repositories.bzl", "rules_jvm_external_deps")

rules_jvm_external_deps()

load("@&#8203;rules_jvm_external//:setup.bzl", "rules_jvm_external_setup")

rules_jvm_external_setup()

load("@&#8203;rules_jvm_external//:defs.bzl", "maven_install")

maven_install(
    artifacts = [
        "com.google.crypto.tink:tink:1.16.0",

### ... other dependencies ...
    ],
    repositories = [
        "https://repo1.maven.org/maven2",
    ],
)

Alternatively, one can build Tink from source, and include it with http_archive:

http_archive(
    name = "com_github_tink_crypto_tink_java",
    urls = ["https://github.com/tink-crypto/tink-java/archive/refs/tags/v1.16.0.zip"],
    strip_prefix = "tink-java-1.16.0",
    sha256 = ...
)

load("@&#8203;tink_java//:tink_java_deps.bzl", "TINK_MAVEN_ARTIFACTS", "tink_java_deps")

tink_java_deps()

load("@&#8203;tink_java//:tink_java_deps_init.bzl", "tink_java_deps_init")

tink_java_deps_init()

### ...

maven_install(
    artifacts = TINK_MAVEN_ARTIFACTS + # ... other dependencies ...
    repositories = [
        "https://repo1.maven.org/maven2",
    ],
)

v1.15.0: Tink Java v1.15.0

Tink is a multi-language, cross-platform library that provides simple and misuse-proof APIs for common cryptographic tasks.

This is Tink Java 1.15.0

To get started using Tink, see the setup guide.

What's new?

  • Use Conscrypt to verify RSA SSA PKCS1 signatures if it is available. This fixes a bug when Tink is used in FIPS-only mode and when using ConfigurationFips140v2.
  • Use Conscrypt for RSA SSA PSS signatures if it is available. RSA SSA PSS is now available when Tink is used in FIPS-only mode and when using ConfigurationFips140v2.
  • RsaSsaPssSignJce and RsaSsaPssVerifyJce now throw an exception if sigHash and mgf1Hash are not equal. This makes these functions consistent with the non-subtle API and with other languages.
  • Removed AeadOrDaead and EciesAeadHkdfDemHelper from subtle API. These were internal helper classes for hybrid encryption that are not needed anymore.
  • Upgraded tink-android's androidx.annotation dependency to v1.8.2.

Future work

To see what we're working towards, check our project roadmap.

Getting started

Maven:
<dependency>
    <groupId>com.google.crypto.tink</groupId>
    <artifactId>tink</artifactId>
    <version>1.15.0</version>
</dependency>
Gradle:
dependencies {
  implementation 'com.google.crypto.tink:tink-android:1.15.0'
}

Bazel:

The recommended way to use tink-java is as a Maven dependency through rules_jvm_external.

load("@&#8203;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("@&#8203;rules_jvm_external//:repositories.bzl", "rules_jvm_external_deps")

rules_jvm_external_deps()

load("@&#8203;rules_jvm_external//:setup.bzl", "rules_jvm_external_setup")

rules_jvm_external_setup()

maven_install(
    artifacts = [
        "com.google.crypto.tink:tink:1.15.0",

### ... other dependencies ...
    ],
    repositories = [
        "https://repo1.maven.org/maven2",
    ],
)

Alternatively, one can build Tink from source and include it with http_archive:

http_archive(
    name = "tink_java",
    urls = ["https://github.com/tink-crypto/tink-java/releases/download/v1.15.0/tink-java-1.15.0.zip"],
    strip_prefix = "tink-java-1.15.0",
    sha256 = "e246f848f7749e37f558955ecb50345b04d79ddb9d8d1e8ae19f61e8de530582"
)

load("@&#8203;tink_java//:tink_java_deps.bzl", "TINK_MAVEN_ARTIFACTS", "tink_java_deps")

tink_java_deps()

load("@&#8203;tink_java//:tink_java_deps_init.bzl", "tink_java_deps_init")

tink_java_deps_init()

### ...

maven_install(
    artifacts = TINK_MAVEN_ARTIFACTS + # ... other dependencies ...
    repositories = [
        "https://repo1.maven.org/maven2",
    ],
)

v1.14.1

Tink is a multi-language, cross-platform library that provides simple and misuse-proof APIs for common cryptographic tasks.

This is Tink Java 1.14.1

To get started using Tink, see the setup guide.

What's new?

  • Downgraded protobuf to 25.3; Protobuf 26.x introduced a breaking change for <= 25.x users.

Future work

To see what we're working towards, check our project roadmap.

Getting started

Maven:
<dependency>
    <groupId>com.google.crypto.tink</groupId>
    <artifactId>tink</artifactId>
    <version>1.14.1</version>
</dependency>
Gradle:
dependencies {
  implementation 'com.google.crypto.tink:tink-android:1.14.1'
}

Bazel:

The recommended way to use tink-java is as a Maven dependency through rules_jvm_external.

load("@&#8203;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("@&#8203;rules_jvm_external//:repositories.bzl", "rules_jvm_external_deps")

rules_jvm_external_deps()

load("@&#8203;rules_jvm_external//:setup.bzl", "rules_jvm_external_setup")

rules_jvm_external_setup()

maven_install(
    artifacts = [
        "com.google.crypto.tink:tink:1.14.1",

### ... other dependencies ...
    ],
    repositories = [
        "https://repo1.maven.org/maven2",
    ],
)

Alternatively, one can build Tink from source and include it with http_archive:

http_archive(
    name = "tink_java",
    urls = ["https://github.com/tink-crypto/tink-java/releases/download/v1.14.1/tink-java-1.14.1.zip"],
    strip_prefix = "tink-java-1.14.1",
    sha256 = "1f8a2df8fcbfc9b19fba0d5f58cdcc12021cb33cdc307d22d840b437fd17347c"
)

load("@&#8203;tink_java//:tink_java_deps.bzl", "TINK_MAVEN_ARTIFACTS", "tink_java_deps")

tink_java_deps()

load("@&#8203;tink_java//:tink_java_deps_init.bzl", "tink_java_deps_init")

tink_java_deps_init()

### ...

maven_install(
    artifacts = TINK_MAVEN_ARTIFACTS + # ... other dependencies ...
    repositories = [
        "https://repo1.maven.org/maven2",
    ],
)

v1.14.0: Tink Java 1.14.0

Tink is a multi-language, cross-platform library that provides simple and misuse-proof APIs for common cryptographic tasks.

This is Tink Java 1.14.0

To get started using Tink, see the setup guide.

What's new?

API changes

  • Removed PrimitiveWrapper. We anticipate no impact on users, as this class was already rendered unavailable after Registry.registerPrimitiveWrapper was removed in Tink Java 1.13.0.

Performance improvements

  • Improved performance of AES-EAX AEAD.
  • Improved performance of AES-SIV Deterministic AEAD.
  • Improved performance of AES-CMAC PRF.
  • Improved performance of ECIES Hybrid Encryption.

Bug fixes

  • Fixed bug in binary keyset parsing that resulted in a TinkBugException when parsing invalid input.
  • Fixed bug in JSON keyset parsing that resulted in a RuntimeException when parsing invalid input.
  • Fixed bug where the channel obtained from newSeekableDecryptingChannel falsely returned -1 on read calls. This only happens if read was called with an empty buffer, and if the previous call to read sucessfully read the end of the stream.

Upgraded dependencies

  • protobuf (=> 27.0)

Future work

To see what we're working towards, check our project roadmap.

Getting started

Maven:
<dependency>
    <groupId>com.google.crypto.tink</groupId>
    <artifactId>tink</artifactId>
    <version>1.14.0</version>
</dependency>
Gradle:
dependencies {
  implementation 'com.google.crypto.tink:tink-android:1.14.0'
}

Bazel:

The recommended way to use tink-java is as a Maven dependency through rules_jvm_external.

load("@&#8203;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("@&#8203;rules_jvm_external//:repositories.bzl", "rules_jvm_external_deps")

rules_jvm_external_deps()

load("@&#8203;rules_jvm_external//:setup.bzl", "rules_jvm_external_setup")

rules_jvm_external_setup()

maven_install(
    artifacts = [
        "com.google.crypto.tink:tink:1.14.0",

### ... other dependencies ...
    ],
    repositories = [
        "https://repo1.maven.org/maven2",
    ],
)

Alternatively, one can build Tink from source and include it with http_archive:

http_archive(
    name = "com_github_tink_crypto_tink_java",
    urls = ["https://github.com/tink-crypto/tink-java/archive/refs/tags/v1.14.0.zip"],
    strip_prefix = "tink-java-1.14.0",
    sha256 = ...
)

load("@&#8203;tink_java//:tink_java_deps.bzl", "TINK_MAVEN_ARTIFACTS", "tink_java_deps")

tink_java_deps()

load("@&#8203;tink_java//:tink_java_deps_init.bzl", "tink_java_deps_init")

tink_java_deps_init()

### ...

maven_install(
    artifacts = TINK_MAVEN_ARTIFACTS + # ... other dependencies ...
    repositories = [
        "https://repo1.maven.org/maven2",
    ],
)

v1.13.0: Tink Java 1.13.0

Tink is a multi-language, cross-platform library that provides simple and misuse-proof APIs for common cryptographic tasks.

This is Tink Java 1.13.0

To get started using Tink, see the setup guide.

What's new?

Bugs fixed:

  • JwkSetConverter now encodes RSA public keys without leading zero, as
    required by RFC 7518.

Performance improvements:

  • Encrypted keysets produced with BinaryKeysetWriter or TinkProtoKeysetFormat
    are now smaller, because the unused keyset info metadata is not written
    anymore. JsonKeysetWriter and TinkJsonProtoKeysetFormat still output this
    metadata.
  • Tink now uses the JCE implementation of ChaCha20Poly1305 if available. This
    makes encryption with ChaCha20Poly1305 and XChaCha20Poly1305 about 2-3 times
    faster.
  • AES-GCM is now about 20% faster.

API changes:

  • For Android: Support for SDK 19 has been removed.
  • Removed PrimitiveSet and Registry.registerPrimitiveWrapper from the
    public API. While these were in the public API, they have changed semantics
    in the past and will change more in the future. Code using either
    PrimitiveSet or Registry.registerPrimitiveWrapper will not work after
    upcoming changes. Instead of breaking users silently, we prefer to break
    during compilation. If affected, please file an issue on
    github.com/tink-crypto/tink-java/.
  • For keyset that contain JWT keys, JwtSignatureConfig.register() or
    JwtMacConfig.register() now need to be called before the keyset is parsed.
    If not, calling keysetHandle.getPrimitive(...) will fail with an error
    message: "Unable to get primitive interface
    com.google.crypto.tink.jwt.JwtPublicKeySign for key of type ..." or "Unable
    to get primitive interface com.google.crypto.tink.jwt.JwtPublicKeyVerify for
    key of type ...".
  • Removed the constructors of HmacKeyManager and HmacPrfKeyManager from the
    public API. These were never intended to be public, and we expect that
    nobody used either of them.
  • Removed the constructors of
    com.google.crypto.tink.subtle.EciesAeadHkdfHybridDecrypt and
    com.google.crypto.tink.subtle.EciesAeadHkdfHybridEncrypt from the public
    API. These took as argument a EciesAeadHkdfDemHelper object whose only
    implementation was private to Tink. We are hence confident that this is
    unused.
  • Removed test-only AndroidKeystoreKmsClient.setKeyStore. This function didn't
    work as expected, as in some places, still the real KeyStore was used. If you
    need to test your code with a fake KeyStore instance, it is preferable to
    inject fake security provider using Security.addProvider, see
    FakeAndroidKeystoreProvider.java as an example for such a provider.
  • Added methods in the class LegacyKeysetSerialization. Users do not need to
    consider this. This will be used later for automatic migrations.
  • Introduced ConfigurationFips140v2. Users who do not want to restrict the
    whole binary to FIPS-only but still want to use FIPS-compliant primitives at
    specific call sites can use
    keysetHandle.GetPrimitive(ConfigurationFips140v2.get(), ExamplePrimitive.class).
  • Introduced ConfigurationV0 containing Tink's recommended primitives.
    Usage: keysetHandle.GetPrimitive(ConfigurationV0.get(), ExamplePrimitive.class).

Dependencies changes:

  • Upgraded:
    • com.google.protobuf:protobuf => 3.25.1.

Future work

To see what we're working towards, check our project roadmap.

Getting started

Maven:
<dependency>
    <groupId>com.google.crypto.tink</groupId>
    <artifactId>tink</artifactId>
    <version>1.13.0</version>
</dependency>
Gradle:
dependencies {
  implementation 'com.google.crypto.tink:tink-android:1.13.0'
}

Bazel:

load("@&#8203;bazel_tools//tools/build_defs/repo:http.bzl", "http_archive")

RULES_JVM_EXTERNAL_TAG = "5.3"
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("@&#8203;rules_jvm_external//:repositories.bzl", "rules_jvm_external_deps")

rules_jvm_external_deps()

load("@&#8203;rules_jvm_external//:setup.bzl", "rules_jvm_external_setup")

rules_jvm_external_setup()

maven_install(
    artifacts = [
        "com.google.crypto.tink:tink:1.13.0",

### ... other dependencies ...
    ],
    repositories = [
        "https://repo1.maven.org/maven2",
    ],
)

Alternatively, one can build Tink from source, and include it with http_archive:

http_archive(
    name = "com_github_tink_crypto_tink_java",
    urls = ["https://github.com/tink-crypto/tink-java/archive/refs/tags/v1.13.0.zip"],
    strip_prefix = "tink-java-1.13.0",
    sha256 = ...
)

load("@&#8203;tink_java//:tink_java_deps.bzl", "TINK_MAVEN_ARTIFACTS", "tink_java_deps")

tink_java_deps()

load("@&#8203;tink_java//:tink_java_deps_init.bzl", "tink_java_deps_init")

tink_java_deps_init()

### ...

maven_install(
    artifacts = TINK_MAVEN_ARTIFACTS + # ... other dependencies ...
    repositories = [
        "https://repo1.maven.org/maven2",
    ],
)

v1.12.0: Tink Java 1.12.0

Tink is a multi-language, cross-platform library that provides simple and misuse-proof APIs for common cryptographic tasks.

This is Tink Java 1.12.0

To get started using Tink, see the setup guide.

What's new?

Bugs fixed:

  • On Android, API version 29 and older, AES-GCM-SIV: Due to a bug in Android,
    Tink previously uses an AES-GCM cipher for AES-GCM-SIV keys. Now, Tink will
    throw an exception on encrypt/decrypt calls (issue).

API changes:

  • Disabled registration of custom key managers for primitives other than
    Aead, DeterministicAead, StreamingAead, HybridEncrypt, HybridDecrypt, Mac, PublicKeySign, PublicKeyVerify. To the best of our knowledge there is no
    user using this mechanism for any other class (which would be fairly
    exotic).
  • The parser used in JwkSetConverter.toPublicKeysetHandle has been changed and
    now rejects duplicate map keys.
  • Removed PrivilegedRegistry. This was never intended to be public, and to
    the best of our knowledge there is no user of this class outside of Tink.
  • Removed Registry methods which triggered a TypeParameterUnusedInFormals
    error prone warnings. Using these is a bug, and the methods were deprecated
    in October 2018. See
    https://errorprone.info/bugpattern/TypeParameterUnusedInFormals for
    information about this warning.
  • Removed AesCtrKeyManager. This was never intended to be public, and to the
    best of our knowledge there are no users of this class outside Tink.
  • Remove KMS related constants from the TestUtil class.
  • Added Primitive creation functions to subtle API:
    • AesGcmHkdfStreaming::create.
    • AesCtrHmacStreaming::create.
    • EncryptThenAuthenticate::create for AesCtrHmacAeadKey.
    • ChaCha20Poly1305::create.
    • XChaCha20Poly1305::create.
    • AesGcmSiv::create.
    • AesEaxJce::create.
    • EcdsaSignJce::create, EcdsaVerifyJce::create.
    • RsaSsaPkcsSignJce::create, RsaSsaPkcsVerifyJce::create.
    • RsaSsaPssSignJce::create, RsaSsaPssVerifyJce::create.
    • Ed25519Sign::create, Ed25519Verify::create.

Dependencies changes:

  • Upgraded:
    • com.google.protobuf:protobuf => 3.24.3.
    • com.google.errorprone:error-prone-annotations => 2.22.0
    • com.google.http-client:google-http-client => 2.22.0
    • rules_jvm_external => 5.3
  • Removed:
    • com.google.auto:auto-common:1.2.1
    • com.google.auto.service:auto-service:1.0.1
    • com.google.auto.service:auto-service-annotations:1.0.1

Future work

To see what we're working towards, check our project roadmap.

Getting started

Maven:
<dependency>
    <groupId>com.google.crypto.tink</groupId>
    <artifactId>tink</artifactId>
    <version>1.12.0</version>
</dependency>
Gradle:
dependencies {
  implementation 'com.google.crypto.tink:tink-android:1.12.0'
}

Bazel:

load("@&#8203;bazel_tools//tools/build_defs/repo:http.bzl", "http_archive")

RULES_JVM_EXTERNAL_TAG = "5.3"
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("@&#8203;rules_jvm_external//:repositories.bzl", "rules_jvm_external_deps")

rules_jvm_external_deps()

load("@&#8203;rules_jvm_external//:setup.bzl", "rules_jvm_external_setup")

rules_jvm_external_setup()

maven_install(
    artifacts = [
        "com.google.crypto.tink:tink:1.12.0",

### ... other dependencies ...
    ],
    repositories = [
        "https://repo1.maven.org/maven2",
    ],
)

Alternatively, one can build Tink from source, and include it with http_archive:

http_archive(
    name = "com_github_tink_crypto_tink_java",
    urls = ["https://github.com/tink-crypto/tink-java/archive/refs/tags/v1.12.0.zip"],
    strip_prefix = "tink-java-1.12.0",
    sha256 = "c5f79c4f51e55d5c7bbd52c0b17fc8eeedf36d74a231e134882f9c4a74c3fbb1",
)

load("@&#8203;tink_java//:tink_java_deps.bzl", "TINK_MAVEN_ARTIFACTS", "tink_java_deps")

tink_java_deps()

load("@&#8203;tink_java//:tink_java_deps_init.bzl", "tink_java_deps_init")

tink_java_deps_init()

### ...

maven_install(
    artifacts = TINK_MAVEN_ARTIFACTS + # ... other dependencies ...
    repositories = [
        "https://repo1.maven.org/maven2",
    ],
)

v1.11.0: Tink Java 1.11.0

Tink is a multi-language, cross-platform library that provides simple and misuse-proof APIs for common cryptographic tasks.

This is Tink Java 1.11.0

To get started using Tink, see the setup guide.

What's new?

The complete list of changes since 1.10.0 can be found here.

  • Added new key/parameter classes for all remaining keys: Ecies, JwtRsaSsaPkcs1, JwtRsaSsapss, LegacyKmsAead, LegacyKmsEnvelopeAead.
  • Key IDs of newly generated keys can now be negative (commit).
  • Added APIs:
    • KmsEnvelopeAead.create (commit)
    • HkdfStreamingPrf::create(HkdfPrfKey key) (commit)
  • Removed AeadKeyTemplates.createKmsAeadKeyTemplate (commit)
  • Made InputStreamDecrypter.read() InputStream compliant (issue, commit).

Future work

To see what we're working towards, check our project roadmap.

Getting started

Maven:

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

Gradle:

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

Bazel:

load("@&#8203;bazel_tools//tools/build_defs/repo:http.bzl", "http_archive")

RULES_JVM_EXTERNAL_TAG = "4.5"
RULES_JVM_EXTERNAL_SHA ="b17d7388feb9bfa7f2fa09031b32707df529f26c91ab9e5d909eb1676badd9a6"

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/archive/refs/tags/%s.zip" % RULES_JVM_EXTERNAL_TAG,
)

load("@&#8203;rules_jvm_external//:repositories.bzl", "rules_jvm_external_deps")

rules_jvm_external_deps()

load("@&#8203;rules_jvm_external//:setup.bzl", "rules_jvm_external_setup")

rules_jvm_external_setup()

load("@&#8203;rules_jvm_external//:defs.bzl", "maven_install")

maven_install(
    artifacts = [
        "com.google.crypto.tink:tink:1.11.0",

### ... other dependencies ...
    ],
    repositories = [
        "https://repo1.maven.org/maven2",
    ],
)

Alternatively, one can build Tink from source, and include it with http_archive:

http_archive(
    name = "tink_java",
    urls = ["https://github.com/tink-crypto/tink-java/releases/download/v1.11.0/tink-java-1.11.0.zip"],
    strip_prefix = "tink-java-1.11.0",
    sha256 = "2bd264c2f0c474c77e2d1e04c627398e963b7a6d0164cfb743ab60a59ab998bd",
)

load("@&#8203;tink_java//:tink_java_deps.bzl", "TINK_MAVEN_ARTIFACTS", "tink_java_deps")

tink_java_deps()

load("@&#8203;tink_java//:tink_java_deps_init.bzl", "tink_java_deps_init")

tink_java_deps_init()

### ...

maven_install(
    artifacts = TINK_MAVEN_ARTIFACTS + # ... other dependencies ...
    repositories = [
        "https://repo1.maven.org/maven2",
    ],
)

v1.10.0: Tink Java 1.10.0

Tink is a multi-language, cross-platform library that provides simple and misuse-proof APIs for common cryptographic tasks.

This is Tink Java 1.10.0

What is new?

The complete list of changes since 1.9.0 can be found here.

New Features:

  • Added Key Derivation
  • KeysetHandle#equalsKeyset can now be used to compare keysets
  • Added Key classes: JwtEcdsaPrivateKey, JwtEcdsaPublicKey, RsaSsaPssPrivateKey, RsaSsaPssPublicKey.
  • Added RawJwt.getJsonPayload.
  • Restrict KMS Envelope AEAD DEK key type to only Tink AEAD key types.
  • Use Conscrypt as source of randomness if possible.

Potentially breaking changes:

While we aim to be backwards compatible in minor releases, we removed some APIs that were not meant to be public and/or that we are confident are not widely used. If you are impacted by any of these, please file an issue.

  • Removed PrivilegedRegistry.parseKeyData -- this was never meant to be in the public API.

Future work

To see what we're working towards, check our project roadmap.

Getting started

To get started using Tink, see the setup guide.

Maven:

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

Gradle:

dependencies {
  implementation 'com.google.crypto.tink:tink-android:1.10.0'
}
Bazel:
load("@&#8203;bazel_tools//tools/build_defs/repo:http.bzl", "http_archive")

RULES_JVM_EXTERNAL_TAG = "4.5"
RULES_JVM_EXTERNAL_SHA ="b17d7388feb9bfa7f2fa09031b32707df529f26c91ab9e5d909eb1676badd9a6"

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/archive/refs/tags/%s.zip" % RULES_JVM_EXTERNAL_TAG,
)

load("@&#8203;rules_jvm_external//:repositories.bzl", "rules_jvm_external_deps")

rules_jvm_external_deps()

load("@&#8203;rules_jvm_external//:setup.bzl", "rules_jvm_external_setup")

rules_jvm_external_setup()

load("@&#8203;rules_jvm_external//:defs.bzl", "maven_install")

maven_install(
    artifacts = [
        "com.google.crypto.tink:tink:1.10.0",

### ... other dependencies ...
    ],
    repositories = [
        "https://repo1.maven.org/maven2",
    ],
)

Alternatively, one can build Tink from source, and include it with http_archive:

http_archive(
    name = "com_github_tink_crypto_tink_java",
    urls = ["https://github.com/tink-crypto/tink-java/archive/refs/tags/v1.10.0.zip"],
    strip_prefix = "tink-java-1.10.0",
    sha256 = ...
)

load("@&#8203;tink_java//:tink_java_deps.bzl", "TINK_MAVEN_ARTIFACTS", "tink_java_deps")

tink_java_deps()

load("@&#8203;tink_java//:tink_java_deps_init.bzl", "tink_java_deps_init")

tink_java_deps_init()

### ...

maven_install(
    artifacts = TINK_MAVEN_ARTIFACTS + # ... other dependencies ...
    repositories = [
        "https://repo1.maven.org/maven2",
    ],
)

v1.9.0: Tink Java 1.9.0

Tink is a multi-language, cross-platform library that provides simple and misuse-proof APIs for common cryptographic tasks.

This is Tink Java 1.9.0

To get started using Tink, see the setup guide.

Maven:
<dependency>
    <groupId>com.google.crypto.tink</groupId>
    <artifactId>tink</artifactId>
    <version>1.9.0</version>
</dependency>
Gradle:
dependencies {
  implementation 'com.google.crypto.tink:tink-android:1.9.0'
}
Bazel:
load("@&#8203;bazel_tools//tools/build_defs/repo:http.bzl", "http_archive")

RULES_JVM_EXTERNAL_TAG = "4.5"
RULES_JVM_EXTERNAL_SHA ="b17d7388feb9bfa7f2fa09031b32707df529f26c91ab9e5d909eb1676badd9a6"

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/archive/refs/tags/%s.zip" % RULES_JVM_EXTERNAL_TAG,
)

load("@&#8203;rules_jvm_external//:repositories.bzl", "rules_jvm_external_deps")

rules_jvm_external_deps()

load("@&#8203;rules_jvm_external//:setup.bzl", "rules_jvm_external_setup")

rules_jvm_external_setup()

load("@&#8203;rules_jvm_external//:defs.bzl", "maven_install")

maven_install(
    artifacts = [
        "com.google.crypto.tink:tink:1.9.0",

### ... other dependencies ...
    ],
    repositories = [
        "https://repo1.maven.org/maven2",
    ],
)

Alternatively, one can build Tink from source, and include it with http_archive:

http_archive(
    name = "com_github_tink_crypto_tink_java",
    urls = ["https://github.com/tink-crypto/tink-java/archive/refs/tags/v1.9.0.zip"],
    strip_prefix = "tink-java-1.9.0",
    sha256 = "9735df7992df73d1518661ac6cf8918fa4693673adaaf0bdee253c24c521c832",
)

load("@&#8203;tink_java//:tink_java_deps.bzl", "TINK_MAVEN_ARTIFACTS", "tink_java_deps")

tink_java_deps()

load("@&#8203;tink_java//:tink_java_deps_init.bzl", "tink_java_deps_init")

tink_java_deps_init()

### ...

maven_install(
    artifacts = TINK_MAVEN_ARTIFACTS + # ... other dependencies ...
    repositories = [
        "https://maven.google.com",
        "https://repo1.maven.org/maven2",
    ],
)

WARNING: When building from source users that require KMS extensions as well must now explicitly include them, since they are published in separate repositories:

For example, to use tink-java-gcpkms your WORKSPACE file becomes as follows (analogously for tink-java-awskms):

http_archive(
    name = "com_github_tink_crypto_tink_java",
    urls = ["https://github.com/tink-crypto/tink-java/archive/refs/tags/v1.9.0.zip"],
    strip_prefix = "tink-java-1.9.0",
    sha256 = "9735df7992df73d1518661ac6cf8918fa4693673adaaf0bdee253c24c521c832",
)

http_archive(
    name = "tink_java_gcpkms",
    urls = ["https://github.com/tink-crypto/tink-java-gcpkms/archive/refs/tags/v<SOME_RELEASE>.zip"],
    strip_prefix = "tink-java-gcpkms-<SOME_RELEASE>",
    sha256 = ...
)

load("@&#8203;tink_java//:tink_java_deps.bzl", "TINK_MAVEN_ARTIFACTS", "tink_java_deps")

tink_java_deps()

load("@&#8203;tink_java//:tink_java_deps_init.bzl", "tink_java_deps_init")

tink_java_deps_init()

load("@&#8203;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",
    ],
)

Dependencies to targets in //src/main/java/com/google/crypto/tink/integration/gcpkms now are located in @tink_java_gcpkms.

What's new

The complete list of changes since 1.8.0 can be found here.

  • Removed deprecation of some APIs
  • Minor refactorings/code improvements
  • Added new key/parameter interfaces for StreamingAead, DeterministicAead, HmacPrf and JwtMac
  • Added new key/parameter/serialization classes:
    • AesGcmHkdfStreaming
    • AesCtrHmacAead
    • AesCtrHmacStreaming
    • AesCmacPrf
    • Ed25519
    • RsaSsaPkcs1
    • AesSiv
    • JwtHmac
  • Add Refaster (https://errorprone.info/docs/refaster) templates to easily migrate away from deprecated APIs
  • Improved performance of AesGcmSiv (commit)
  • Fixed Maven dependency issues:
  • Upgraded dependencies:
    • com.google.code.gson:gson:2.10.1
    • com.google.errorprone:error_prone_annotations:2.18
    • com.google.http-client:google-http-client:1.43.1
    • com.google.http-client:google-http-client-gson:1.43.1
    • joda-time:joda-time:2.12.5
    • junit:junit:4.13.2
    • androidx.annotation:annotation:1.5.0

To see what we're working towards, check our project roadmap.

v1.8.0: Tink Java 1.8.0

Tink is a multi-language, cross-platform library that provides simple and misuse-proof APIs for common cryptographic tasks.

This is Tink Java 1.8.0

To get started using Tink, see the setup guide.

Maven:
<dependency>
    <groupId>com.google.crypto.tink</groupId>
    <artifactId>tink</artifactId>
    <version>1.8.0</version>
</dependency>
Gradle:
dependencies {
  implementation 'com.google.crypto.tink:tink-android:1.8.0'
}
Bazel:
load("@&#8203;bazel_tools//tools/build_defs/repo:http.bzl", "http_archive")

RULES_JVM_EXTERNAL_TAG = "4.5"
RULES_JVM_EXTERNAL_SHA ="b17d7388feb9bfa7f2fa09031b32707df529f26c91ab9e5d909eb1676badd9a6"

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/archive/refs/tags/%s.zip" % RULES_JVM_EXTERNAL_TAG,
)

load("@&#8203;rules_jvm_external//:repositories.bzl", "rules_jvm_external_deps")

rules_jvm_external_deps()

load("@&#8203;rules_jvm_external//:setup.bzl", "rules_jvm_external_setup")

rules_jvm_external_setup()

load("@&#8203;rules_jvm_external//:defs.bzl", "maven_install")

maven_install(
    artifacts = [
        "com.google.crypto.tink:tink:1.8.0",

### ... other dependencies ...
    ],
    repositories = [
        "https://maven.google.com",
        "https://repo1.maven.org/maven2",
    ],
)

Alternatively, one can build Tink from source, and include it with http_archive:

http_archive(
    name = "com_github_tink_crypto_tink_java",
    urls = ["https://github.com/tink-crypto/tink-java/archive/refs/tags/v1.8.0.zip"],
    strip_prefix = "tink-java-1.8.0",
    sha256 = "cff458ea60897f7a5edc91d1eb9c58c650c2fd3206d94672f29c950b94398a49"
)

load("@&#8203;tink_java//:tink_java_deps.bzl", "TINK_MAVEN_ARTIFACTS", "tink_java_deps")

tink_java_deps()

load("@&#8203;tink_java//:tink_java_deps_init.bzl", "tink_java_deps_init")

tink_java_deps_init()

### ...

maven_install(
    artifacts = TINK_MAVEN_ARTIFACTS + # ... other dependencies ...
    repositories = [
        "https://maven.google.com",
        "https://repo1.maven.org/maven2",
    ],
)

WARNING: When building from source users that require KMS extensions as well must now explicitly include them, since they are published in separate repositories:

For example, to use tink-java-gcpkms your WORKSPACE file becomes as follows (analogously for tink-java-awskms):

http_archive(
    name = "com_github_tink_crypto_tink_java",
    urls = ["https://github.com/tink-crypto/tink-java/archive/refs/tags/v1.8.0.zip"],
    strip_prefix = "tink-java-1.8.0",
    sha256 = "cff458ea60897f7a5edc91d1eb9c58c650c2fd3206d94672f29c950b94398a49"
)

http_archive(
    name = "tink_java_gcpkms",
    urls = ["https://github.com/tink-crypto/tink-java-gcpkms/archive/refs/tags/v<SOME_RELEASE>.zip"],
    strip_prefix = "tink-java-gcpkms-<SOME_RELEASE>",
    sha256 = ...
)

load("@&#8203;tink_java//:tink_java_deps.bzl", "TINK_MAVEN_ARTIFACTS", "tink_java_deps")

tink_java_deps()

load("@&#8203;tink_java//:tink_java_deps_init.bzl", "tink_java_deps_init")

tink_java_deps_init()

load("@&#8203;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",
    ],
)

Dependencies to targets in //src/main/java/com/google/crypto/tink/integration/gcpkms now are located in @tink_java_gcpkms.

What's new

This is the first release from https://github.com/tink-crypto/tink-java.

The complete list of changes since 1.7.0 can be found here.

  • Changed the tink-java POM file as follows:
    • Added missing dependency on androidx.annotation.annotation.
    • Only direct dependencies are listed.
    • Updated SCM details to point to github.com/tink-crypto/tink-java.
  • Upgraded to Bazel 6.0.
  • The ChunkedMac primitive can now be used, available implementations are AesCmac and Hmac.
  • Added new API to read and write keysets: TinkProtoKeysetFormat and TinkJsonProtoKeysetFormat.
  • JSON parsing now rejects duplicated map entries.
  • Fixed two race conditions in com.google.crypto.tink.integration.android. Also improved the exceptions raised.
  • ECDSA keys are now serialized using fixed size byte arrays.
  • Tink will prefer Conscrypt as a JCE provider for ECDSA if available.
  • Changes to PrimitiveSet API. Please note that the use of this class is discouraged and should be omitted when possible.
    • For the relevant changes see commit.
  • (Only relevant if you use or maintain a custom Wrapper class) Registering a wrapper in Registry now requires that the object being registered is always the same. See examples here and here.
  • Upgraded dependencies:
    • Protobuf to X.21.9 443baab.
    • com.google.errorprone:error_prone_annotations to 2.16.
    • google.http-client:google-http-client to 1.42.3.
    • com.google.api-client:google-api-client to 2.2.0.
    • com.google.code.gson:gson to 2.10.

To see what we're working towards, check our project roadmap.


Configuration

📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

Rebasing: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.

🔕 Ignore: Close this PR and you won't be reminded about this update again.


  • If you want to rebase/retry this PR, check this box

This PR was generated by Mend Renovate. View the repository job log.

@renovate renovate bot requested a review from RyuNen344 as a code owner May 6, 2023 15:14
@github-actions
Copy link
Contributor

github-actions bot commented May 6, 2023

Test Results android

173 tests  ±0   173 ✅ ±0   27s ⏱️ +2s
  9 suites ±0     0 💤 ±0 
  9 files   ±0     0 ❌ ±0 

Results for commit d3129ed. ± Comparison against base commit 112027b.

♻️ This comment has been updated with latest results.

@codecov
Copy link

codecov bot commented May 6, 2023

Codecov Report

All modified and coverable lines are covered by tests ✅

Project coverage is 100.00%. Comparing base (112027b) to head (d3129ed).

Additional details and impacted files
@@              Coverage Diff              @@
##             main       #61        +/-   ##
=============================================
+ Coverage        0   100.00%   +100.00%     
- Complexity      0        26        +26     
=============================================
  Files           0         8         +8     
  Lines           0        31        +31     
=============================================
+ Hits            0        31        +31     

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

@renovate renovate bot force-pushed the renovate/com.google.crypto.tink-tink-android-1.x branch 3 times, most recently from f42dffa to 6b5634b Compare May 6, 2023 15:39
@github-actions
Copy link
Contributor

github-actions bot commented May 6, 2023

Test Results iosX64

172 tests   172 ✔️  1m 7s ⏱️
    9 suites      0 💤
    9 files        0

Results for commit 587590f.

♻️ This comment has been updated with latest results.

@renovate renovate bot force-pushed the renovate/com.google.crypto.tink-tink-android-1.x branch 11 times, most recently from de9d0c6 to 734e145 Compare May 10, 2023 04:42
@renovate renovate bot force-pushed the renovate/com.google.crypto.tink-tink-android-1.x branch 2 times, most recently from db288f5 to 74788da Compare May 16, 2023 05:17
@renovate renovate bot force-pushed the renovate/com.google.crypto.tink-tink-android-1.x branch 4 times, most recently from 1cded03 to fe3606d Compare May 29, 2023 00:36
@renovate renovate bot force-pushed the renovate/com.google.crypto.tink-tink-android-1.x branch from fe3606d to 2010f13 Compare May 29, 2023 10:12
@renovate renovate bot force-pushed the renovate/com.google.crypto.tink-tink-android-1.x branch 3 times, most recently from 02c5157 to 3b83870 Compare June 14, 2023 13:00
@renovate renovate bot force-pushed the renovate/com.google.crypto.tink-tink-android-1.x branch 2 times, most recently from 48d96af to 2eea036 Compare June 19, 2023 20:15
@renovate renovate bot force-pushed the renovate/com.google.crypto.tink-tink-android-1.x branch 4 times, most recently from b31bab9 to 1b135b8 Compare April 16, 2024 10:21
@renovate renovate bot force-pushed the renovate/com.google.crypto.tink-tink-android-1.x branch 3 times, most recently from b25fb23 to 8564ca4 Compare April 23, 2024 04:56
@renovate renovate bot force-pushed the renovate/com.google.crypto.tink-tink-android-1.x branch from 8564ca4 to 91c9e92 Compare July 4, 2024 01:40
@renovate renovate bot changed the title fix(deps): update dependency com.google.crypto.tink:tink-android to v1.13.0 fix(deps): update dependency com.google.crypto.tink:tink-android to v1.14.0 Jul 4, 2024
@renovate renovate bot force-pushed the renovate/com.google.crypto.tink-tink-android-1.x branch from 91c9e92 to 58032c0 Compare August 5, 2024 11:42
@renovate renovate bot changed the title fix(deps): update dependency com.google.crypto.tink:tink-android to v1.14.0 fix(deps): update dependency com.google.crypto.tink:tink-android to v1.14.1 Aug 5, 2024
@renovate renovate bot force-pushed the renovate/com.google.crypto.tink-tink-android-1.x branch from 58032c0 to deb205f Compare August 30, 2024 17:14
@renovate renovate bot changed the title fix(deps): update dependency com.google.crypto.tink:tink-android to v1.14.1 fix(deps): update dependency com.google.crypto.tink:tink-android to v1.15.0 Aug 30, 2024
@renovate renovate bot force-pushed the renovate/com.google.crypto.tink-tink-android-1.x branch 13 times, most recently from 430ba3e to 7bb7130 Compare November 6, 2024 03:02
@renovate renovate bot force-pushed the renovate/com.google.crypto.tink-tink-android-1.x branch from 7bb7130 to 8c1d380 Compare December 18, 2024 09:12
@renovate renovate bot force-pushed the renovate/com.google.crypto.tink-tink-android-1.x branch from 8c1d380 to d3129ed Compare December 18, 2024 13:51
@renovate renovate bot changed the title fix(deps): update dependency com.google.crypto.tink:tink-android to v1.15.0 fix(deps): update dependency com.google.crypto.tink:tink-android to v1.16.0 Dec 18, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

0 participants