aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authortholenst <tholenst@google.com>2023-07-21 06:40:26 -0700
committerCopybara-Service <copybara-worker@google.com>2023-07-21 06:41:42 -0700
commit7eab20215cd36782545257b9683d4d66d14f58bd (patch)
treebe13a01353e89bb2766946014262428065df8205
parente4b834a045e99f78b57b68473fcff51fb7e5bbbb (diff)
downloadtink-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
-rw-r--r--java_src/src/main/java/com/google/crypto/tink/aead/AesCtrHmacAeadKeyManager.java40
-rw-r--r--java_src/src/main/java/com/google/crypto/tink/aead/AesEaxKeyManager.java57
-rw-r--r--java_src/src/main/java/com/google/crypto/tink/aead/AesGcmKeyManager.java53
-rw-r--r--java_src/src/main/java/com/google/crypto/tink/aead/BUILD.bazel12
-rw-r--r--java_src/src/test/java/com/google/crypto/tink/internal/BUILD.bazel1
-rw-r--r--java_src/src/test/java/com/google/crypto/tink/internal/KeyTemplateProtoConverterTest.java6
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 {