diff options
author | tholenst <tholenst@google.com> | 2023-07-21 06:40:26 -0700 |
---|---|---|
committer | Copybara-Service <copybara-worker@google.com> | 2023-07-21 06:41:42 -0700 |
commit | 7eab20215cd36782545257b9683d4d66d14f58bd (patch) | |
tree | be13a01353e89bb2766946014262428065df8205 | |
parent | e4b834a045e99f78b57b68473fcff51fb7e5bbbb (diff) | |
download | tink-7eab20215cd36782545257b9683d4d66d14f58bd.tar.gz |
Replace some calls to "KeyTemplate.create" with "KeyTemplate.createFrom", taking a Parameters object.
The call to "create" will be deprecated. Note: if a user calls e.g. AesGcmKeyManager.aes128GcmTemplate() without registering the proto serialization, before this CL, it was possible to get the serialized version. After this CL, this will break.
I don't think this should be an issue since users basically always register everything anyhow.
PiperOrigin-RevId: 549932301
6 files changed, 50 insertions, 119 deletions
diff --git a/java_src/src/main/java/com/google/crypto/tink/aead/AesCtrHmacAeadKeyManager.java b/java_src/src/main/java/com/google/crypto/tink/aead/AesCtrHmacAeadKeyManager.java index c7f32fa6f..6c0b39389 100644 --- a/java_src/src/main/java/com/google/crypto/tink/aead/AesCtrHmacAeadKeyManager.java +++ b/java_src/src/main/java/com/google/crypto/tink/aead/AesCtrHmacAeadKeyManager.java @@ -16,8 +16,6 @@ package com.google.crypto.tink.aead; -import static com.google.crypto.tink.internal.TinkBugException.exceptionIsBug; - import com.google.crypto.tink.Aead; import com.google.crypto.tink.KeyTemplate; import com.google.crypto.tink.Mac; @@ -204,17 +202,7 @@ public final class AesCtrHmacAeadKeyManager extends KeyTypeManager<AesCtrHmacAea * </ul> */ public static final KeyTemplate aes128CtrHmacSha256Template() { - return exceptionIsBug( - () -> - KeyTemplate.createFrom( - AesCtrHmacAeadParameters.builder() - .setAesKeySizeBytes(16) - .setHmacKeySizeBytes(32) - .setTagSizeBytes(16) - .setIvSizeBytes(16) - .setHashType(AesCtrHmacAeadParameters.HashType.SHA256) - .setVariant(AesCtrHmacAeadParameters.Variant.TINK) - .build())); + return createKeyTemplate(16, 16, 32, 16, HashType.SHA256); } /** @@ -229,17 +217,21 @@ public final class AesCtrHmacAeadKeyManager extends KeyTypeManager<AesCtrHmacAea * </ul> */ public static final KeyTemplate aes256CtrHmacSha256Template() { - return exceptionIsBug( - () -> - KeyTemplate.createFrom( - AesCtrHmacAeadParameters.builder() - .setAesKeySizeBytes(32) - .setHmacKeySizeBytes(32) - .setTagSizeBytes(32) - .setIvSizeBytes(16) - .setHashType(AesCtrHmacAeadParameters.HashType.SHA256) - .setVariant(AesCtrHmacAeadParameters.Variant.TINK) - .build())); + return createKeyTemplate(32, 16, 32, 32, HashType.SHA256); + } + + /** + * @return a {@link KeyTemplate} containing a {@link AesCtrHmacAeadKeyFormat} with some specific + * parameters. + */ + private static KeyTemplate createKeyTemplate( + int aesKeySize, int ivSize, int hmacKeySize, int tagSize, HashType hashType) { + AesCtrHmacAeadKeyFormat format = + createKeyFormat(aesKeySize, ivSize, hmacKeySize, tagSize, hashType); + return KeyTemplate.create( + new AesCtrHmacAeadKeyManager().getKeyType(), + format.toByteArray(), + KeyTemplate.OutputPrefixType.TINK); } private static KeyFactory.KeyFormat<AesCtrHmacAeadKeyFormat> createKeyFormat( diff --git a/java_src/src/main/java/com/google/crypto/tink/aead/AesEaxKeyManager.java b/java_src/src/main/java/com/google/crypto/tink/aead/AesEaxKeyManager.java index 294891267..b85206aa3 100644 --- a/java_src/src/main/java/com/google/crypto/tink/aead/AesEaxKeyManager.java +++ b/java_src/src/main/java/com/google/crypto/tink/aead/AesEaxKeyManager.java @@ -16,8 +16,6 @@ package com.google.crypto.tink.aead; -import static com.google.crypto.tink.internal.TinkBugException.exceptionIsBug; - import com.google.crypto.tink.Aead; import com.google.crypto.tink.KeyTemplate; import com.google.crypto.tink.Registry; @@ -141,15 +139,7 @@ public final class AesEaxKeyManager extends KeyTypeManager<AesEaxKey> { * </ul> */ public static final KeyTemplate aes128EaxTemplate() { - return exceptionIsBug( - () -> - KeyTemplate.createFrom( - AesEaxParameters.builder() - .setKeySizeBytes(16) - .setIvSizeBytes(16) - .setTagSizeBytes(16) - .setVariant(AesEaxParameters.Variant.TINK) - .build())); + return createKeyTemplate(16, 16, KeyTemplate.OutputPrefixType.TINK); } /** @@ -162,15 +152,7 @@ public final class AesEaxKeyManager extends KeyTypeManager<AesEaxKey> { * </ul> */ public static final KeyTemplate rawAes128EaxTemplate() { - return exceptionIsBug( - () -> - KeyTemplate.createFrom( - AesEaxParameters.builder() - .setKeySizeBytes(16) - .setIvSizeBytes(16) - .setTagSizeBytes(16) - .setVariant(AesEaxParameters.Variant.NO_PREFIX) - .build())); + return createKeyTemplate(16, 16, KeyTemplate.OutputPrefixType.RAW); } /** @@ -183,15 +165,7 @@ public final class AesEaxKeyManager extends KeyTypeManager<AesEaxKey> { * </ul> */ public static final KeyTemplate aes256EaxTemplate() { - return exceptionIsBug( - () -> - KeyTemplate.createFrom( - AesEaxParameters.builder() - .setKeySizeBytes(32) - .setIvSizeBytes(16) - .setTagSizeBytes(16) - .setVariant(AesEaxParameters.Variant.TINK) - .build())); + return createKeyTemplate(32, 16, KeyTemplate.OutputPrefixType.TINK); } /** @@ -204,15 +178,22 @@ public final class AesEaxKeyManager extends KeyTypeManager<AesEaxKey> { * </ul> */ public static final KeyTemplate rawAes256EaxTemplate() { - return exceptionIsBug( - () -> - KeyTemplate.createFrom( - AesEaxParameters.builder() - .setKeySizeBytes(32) - .setIvSizeBytes(16) - .setTagSizeBytes(16) - .setVariant(AesEaxParameters.Variant.NO_PREFIX) - .build())); + return createKeyTemplate(32, 16, KeyTemplate.OutputPrefixType.RAW); + } + + /** + * @return a {@link KeyTemplate} containing a {@link AesEaxKeyFormat} with some specified + * parameters. + */ + private static KeyTemplate createKeyTemplate( + int keySize, int ivSize, KeyTemplate.OutputPrefixType prefixType) { + AesEaxKeyFormat format = + AesEaxKeyFormat.newBuilder() + .setKeySize(keySize) + .setParams(AesEaxParams.newBuilder().setIvSize(ivSize).build()) + .build(); + return KeyTemplate.create( + new AesEaxKeyManager().getKeyType(), format.toByteArray(), prefixType); } private static KeyFactory.KeyFormat<AesEaxKeyFormat> createKeyFormat( diff --git a/java_src/src/main/java/com/google/crypto/tink/aead/AesGcmKeyManager.java b/java_src/src/main/java/com/google/crypto/tink/aead/AesGcmKeyManager.java index 11c3dd380..e1ff14cf7 100644 --- a/java_src/src/main/java/com/google/crypto/tink/aead/AesGcmKeyManager.java +++ b/java_src/src/main/java/com/google/crypto/tink/aead/AesGcmKeyManager.java @@ -16,8 +16,6 @@ package com.google.crypto.tink.aead; -import static com.google.crypto.tink.internal.TinkBugException.exceptionIsBug; - import com.google.crypto.tink.Aead; import com.google.crypto.tink.KeyTemplate; import com.google.crypto.tink.Registry; @@ -151,15 +149,7 @@ public final class AesGcmKeyManager extends KeyTypeManager<AesGcmKey> { * in older versions. */ public static final KeyTemplate aes128GcmTemplate() { - return exceptionIsBug( - () -> - KeyTemplate.createFrom( - AesGcmParameters.builder() - .setKeySizeBytes(16) - .setIvSizeBytes(12) - .setTagSizeBytes(16) - .setVariant(AesGcmParameters.Variant.TINK) - .build())); + return createKeyTemplate(16, KeyTemplate.OutputPrefixType.TINK); } /** @@ -176,15 +166,7 @@ public final class AesGcmKeyManager extends KeyTypeManager<AesGcmKey> { * in older versions. */ public static final KeyTemplate rawAes128GcmTemplate() { - return exceptionIsBug( - () -> - KeyTemplate.createFrom( - AesGcmParameters.builder() - .setKeySizeBytes(16) - .setIvSizeBytes(12) - .setTagSizeBytes(16) - .setVariant(AesGcmParameters.Variant.NO_PREFIX) - .build())); + return createKeyTemplate(16, KeyTemplate.OutputPrefixType.RAW); } /** @@ -199,15 +181,7 @@ public final class AesGcmKeyManager extends KeyTypeManager<AesGcmKey> { * in older versions. */ public static final KeyTemplate aes256GcmTemplate() { - return exceptionIsBug( - () -> - KeyTemplate.createFrom( - AesGcmParameters.builder() - .setKeySizeBytes(32) - .setIvSizeBytes(12) - .setTagSizeBytes(16) - .setVariant(AesGcmParameters.Variant.TINK) - .build())); + return createKeyTemplate(32, KeyTemplate.OutputPrefixType.TINK); } /** @@ -224,15 +198,18 @@ public final class AesGcmKeyManager extends KeyTypeManager<AesGcmKey> { * in older versions. */ public static final KeyTemplate rawAes256GcmTemplate() { - return exceptionIsBug( - () -> - KeyTemplate.createFrom( - AesGcmParameters.builder() - .setKeySizeBytes(32) - .setIvSizeBytes(12) - .setTagSizeBytes(16) - .setVariant(AesGcmParameters.Variant.NO_PREFIX) - .build())); + return createKeyTemplate(32, KeyTemplate.OutputPrefixType.RAW); + } + + /** + * @return a {@link KeyTemplate} containing a {@link AesGcmKeyFormat} with some specified + * parameters. + */ + private static KeyTemplate createKeyTemplate( + int keySize, KeyTemplate.OutputPrefixType prefixType) { + AesGcmKeyFormat format = AesGcmKeyFormat.newBuilder().setKeySize(keySize).build(); + return KeyTemplate.create( + new AesGcmKeyManager().getKeyType(), format.toByteArray(), prefixType); } private static KeyFactory.KeyFormat<AesGcmKeyFormat> createKeyFormat( diff --git a/java_src/src/main/java/com/google/crypto/tink/aead/BUILD.bazel b/java_src/src/main/java/com/google/crypto/tink/aead/BUILD.bazel index 60d69113c..e59dbe6e8 100644 --- a/java_src/src/main/java/com/google/crypto/tink/aead/BUILD.bazel +++ b/java_src/src/main/java/com/google/crypto/tink/aead/BUILD.bazel @@ -8,7 +8,6 @@ java_library( name = "aes_gcm_key_manager", srcs = ["AesGcmKeyManager.java"], deps = [ - ":aes_gcm_parameters", ":aes_gcm_proto_serialization", "//proto:aes_gcm_java_proto", "//proto:tink_java_proto", @@ -18,7 +17,6 @@ java_library( "//src/main/java/com/google/crypto/tink/config/internal:tink_fips_util", "//src/main/java/com/google/crypto/tink/internal:key_type_manager", "//src/main/java/com/google/crypto/tink/internal:primitive_factory", - "//src/main/java/com/google/crypto/tink/internal:tink_bug_exception", "//src/main/java/com/google/crypto/tink/subtle:aes_gcm_jce", "//src/main/java/com/google/crypto/tink/subtle:random", "//src/main/java/com/google/crypto/tink/subtle:validators", @@ -72,7 +70,6 @@ java_library( name = "aes_ctr_hmac_aead_key_manager", srcs = ["AesCtrHmacAeadKeyManager.java"], deps = [ - ":aes_ctr_hmac_aead_parameters", ":aes_ctr_hmac_aead_proto_serialization", ":aes_ctr_key_manager", "//proto:aes_ctr_hmac_aead_java_proto", @@ -87,7 +84,6 @@ java_library( "//src/main/java/com/google/crypto/tink/config/internal:tink_fips_util", "//src/main/java/com/google/crypto/tink/internal:key_type_manager", "//src/main/java/com/google/crypto/tink/internal:primitive_factory", - "//src/main/java/com/google/crypto/tink/internal:tink_bug_exception", "//src/main/java/com/google/crypto/tink/mac:hmac_key_manager", "//src/main/java/com/google/crypto/tink/subtle:encrypt_then_authenticate", "//src/main/java/com/google/crypto/tink/subtle:ind_cpa_cipher", @@ -230,7 +226,6 @@ java_library( name = "aes_eax_key_manager", srcs = ["AesEaxKeyManager.java"], deps = [ - ":aes_eax_parameters", ":aes_eax_proto_serialization", "//proto:aes_eax_java_proto", "//proto:tink_java_proto", @@ -239,7 +234,6 @@ java_library( "//src/main/java/com/google/crypto/tink:registry", "//src/main/java/com/google/crypto/tink/internal:key_type_manager", "//src/main/java/com/google/crypto/tink/internal:primitive_factory", - "//src/main/java/com/google/crypto/tink/internal:tink_bug_exception", "//src/main/java/com/google/crypto/tink/subtle:aes_eax_jce", "//src/main/java/com/google/crypto/tink/subtle:random", "//src/main/java/com/google/crypto/tink/subtle:validators", @@ -444,7 +438,6 @@ android_library( name = "aes_gcm_key_manager-android", srcs = ["AesGcmKeyManager.java"], deps = [ - ":aes_gcm_parameters-android", ":aes_gcm_proto_serialization-android", "//proto:aes_gcm_java_proto_lite", "//proto:tink_java_proto_lite", @@ -454,7 +447,6 @@ android_library( "//src/main/java/com/google/crypto/tink/config/internal:tink_fips_util-android", "//src/main/java/com/google/crypto/tink/internal:key_type_manager-android", "//src/main/java/com/google/crypto/tink/internal:primitive_factory-android", - "//src/main/java/com/google/crypto/tink/internal:tink_bug_exception-android", "//src/main/java/com/google/crypto/tink/subtle:aes_gcm_jce-android", "//src/main/java/com/google/crypto/tink/subtle:random-android", "//src/main/java/com/google/crypto/tink/subtle:validators-android", @@ -508,7 +500,6 @@ android_library( name = "aes_ctr_hmac_aead_key_manager-android", srcs = ["AesCtrHmacAeadKeyManager.java"], deps = [ - ":aes_ctr_hmac_aead_parameters-android", ":aes_ctr_hmac_aead_proto_serialization-android", ":aes_ctr_key_manager-android", "//proto:aes_ctr_hmac_aead_java_proto_lite", @@ -523,7 +514,6 @@ android_library( "//src/main/java/com/google/crypto/tink/config/internal:tink_fips_util-android", "//src/main/java/com/google/crypto/tink/internal:key_type_manager-android", "//src/main/java/com/google/crypto/tink/internal:primitive_factory-android", - "//src/main/java/com/google/crypto/tink/internal:tink_bug_exception-android", "//src/main/java/com/google/crypto/tink/mac:hmac_key_manager-android", "//src/main/java/com/google/crypto/tink/subtle:encrypt_then_authenticate-android", "//src/main/java/com/google/crypto/tink/subtle:ind_cpa_cipher-android", @@ -666,7 +656,6 @@ android_library( name = "aes_eax_key_manager-android", srcs = ["AesEaxKeyManager.java"], deps = [ - ":aes_eax_parameters-android", ":aes_eax_proto_serialization-android", "//proto:aes_eax_java_proto_lite", "//proto:tink_java_proto_lite", @@ -675,7 +664,6 @@ android_library( "//src/main/java/com/google/crypto/tink:registry-android", "//src/main/java/com/google/crypto/tink/internal:key_type_manager-android", "//src/main/java/com/google/crypto/tink/internal:primitive_factory-android", - "//src/main/java/com/google/crypto/tink/internal:tink_bug_exception-android", "//src/main/java/com/google/crypto/tink/subtle:aes_eax_jce-android", "//src/main/java/com/google/crypto/tink/subtle:random-android", "//src/main/java/com/google/crypto/tink/subtle:validators-android", diff --git a/java_src/src/test/java/com/google/crypto/tink/internal/BUILD.bazel b/java_src/src/test/java/com/google/crypto/tink/internal/BUILD.bazel index baca21c84..5f6b30d6c 100644 --- a/java_src/src/test/java/com/google/crypto/tink/internal/BUILD.bazel +++ b/java_src/src/test/java/com/google/crypto/tink/internal/BUILD.bazel @@ -9,7 +9,6 @@ java_test( deps = [ "//proto:tink_java_proto", "//src/main/java/com/google/crypto/tink:key_template", - "//src/main/java/com/google/crypto/tink/aead:aead_config", "//src/main/java/com/google/crypto/tink/aead:aes_gcm_key_manager", "//src/main/java/com/google/crypto/tink/internal:key_template_proto_converter", "@maven//:com_google_protobuf_protobuf_java", diff --git a/java_src/src/test/java/com/google/crypto/tink/internal/KeyTemplateProtoConverterTest.java b/java_src/src/test/java/com/google/crypto/tink/internal/KeyTemplateProtoConverterTest.java index 1c2d5f196..ffdd2e680 100644 --- a/java_src/src/test/java/com/google/crypto/tink/internal/KeyTemplateProtoConverterTest.java +++ b/java_src/src/test/java/com/google/crypto/tink/internal/KeyTemplateProtoConverterTest.java @@ -21,12 +21,10 @@ import static java.nio.charset.StandardCharsets.UTF_8; import static org.junit.Assert.assertThrows; import com.google.crypto.tink.KeyTemplate; -import com.google.crypto.tink.aead.AeadConfig; import com.google.crypto.tink.aead.AesGcmKeyManager; import com.google.crypto.tink.proto.OutputPrefixType; import com.google.protobuf.ExtensionRegistryLite; import java.security.GeneralSecurityException; -import org.junit.BeforeClass; import org.junit.Test; import org.junit.runner.RunWith; import org.junit.runners.JUnit4; @@ -34,10 +32,6 @@ import org.junit.runners.JUnit4; /** Tests KeyTemplateProtoConverter. */ @RunWith(JUnit4.class) public final class KeyTemplateProtoConverterTest { - @BeforeClass - public static void register() throws Exception { - AeadConfig.register(); - } @Test public void toByteArrayFromByteArray_sameValues() throws Exception { |