Skip to content

Commit d3ba082

Browse files
tholenstcopybara-github
authored andcommitted
Replace some calls to "KeyTemplate.create" with "KeyTemplate.createFrom", taking a Parameters object.
PiperOrigin-RevId: 559682869 Change-Id: I39f19409bcd2dc1f6d0fedc3aabf1514f2f27bb6
1 parent a9985ea commit d3ba082

File tree

8 files changed

+126
-55
lines changed

8 files changed

+126
-55
lines changed

src/main/java/com/google/crypto/tink/aead/AesCtrHmacAeadKeyManager.java

Lines changed: 24 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,8 @@
1616

1717
package com.google.crypto.tink.aead;
1818

19+
import static com.google.crypto.tink.internal.TinkBugException.exceptionIsBug;
20+
1921
import com.google.crypto.tink.Aead;
2022
import com.google.crypto.tink.KeyTemplate;
2123
import com.google.crypto.tink.Mac;
@@ -202,7 +204,17 @@ public static void register(boolean newKeyAllowed) throws GeneralSecurityExcepti
202204
* </ul>
203205
*/
204206
public static final KeyTemplate aes128CtrHmacSha256Template() {
205-
return createKeyTemplate(16, 16, 32, 16, HashType.SHA256);
207+
return exceptionIsBug(
208+
() ->
209+
KeyTemplate.createFrom(
210+
AesCtrHmacAeadParameters.builder()
211+
.setAesKeySizeBytes(16)
212+
.setHmacKeySizeBytes(32)
213+
.setIvSizeBytes(16)
214+
.setTagSizeBytes(16)
215+
.setHashType(AesCtrHmacAeadParameters.HashType.SHA256)
216+
.setVariant(AesCtrHmacAeadParameters.Variant.TINK)
217+
.build()));
206218
}
207219

208220
/**
@@ -217,21 +229,17 @@ public static final KeyTemplate aes128CtrHmacSha256Template() {
217229
* </ul>
218230
*/
219231
public static final KeyTemplate aes256CtrHmacSha256Template() {
220-
return createKeyTemplate(32, 16, 32, 32, HashType.SHA256);
221-
}
222-
223-
/**
224-
* @return a {@link KeyTemplate} containing a {@link AesCtrHmacAeadKeyFormat} with some specific
225-
* parameters.
226-
*/
227-
private static KeyTemplate createKeyTemplate(
228-
int aesKeySize, int ivSize, int hmacKeySize, int tagSize, HashType hashType) {
229-
AesCtrHmacAeadKeyFormat format =
230-
createKeyFormat(aesKeySize, ivSize, hmacKeySize, tagSize, hashType);
231-
return KeyTemplate.create(
232-
new AesCtrHmacAeadKeyManager().getKeyType(),
233-
format.toByteArray(),
234-
KeyTemplate.OutputPrefixType.TINK);
232+
return exceptionIsBug(
233+
() ->
234+
KeyTemplate.createFrom(
235+
AesCtrHmacAeadParameters.builder()
236+
.setAesKeySizeBytes(32)
237+
.setHmacKeySizeBytes(32)
238+
.setIvSizeBytes(16)
239+
.setTagSizeBytes(32)
240+
.setHashType(AesCtrHmacAeadParameters.HashType.SHA256)
241+
.setVariant(AesCtrHmacAeadParameters.Variant.TINK)
242+
.build()));
235243
}
236244

237245
private static KeyFactory.KeyFormat<AesCtrHmacAeadKeyFormat> createKeyFormat(

src/main/java/com/google/crypto/tink/aead/AesEaxKeyManager.java

Lines changed: 38 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,8 @@
1616

1717
package com.google.crypto.tink.aead;
1818

19+
import static com.google.crypto.tink.internal.TinkBugException.exceptionIsBug;
20+
1921
import com.google.crypto.tink.Aead;
2022
import com.google.crypto.tink.KeyTemplate;
2123
import com.google.crypto.tink.Registry;
@@ -139,7 +141,15 @@ public static void register(boolean newKeyAllowed) throws GeneralSecurityExcepti
139141
* </ul>
140142
*/
141143
public static final KeyTemplate aes128EaxTemplate() {
142-
return createKeyTemplate(16, 16, KeyTemplate.OutputPrefixType.TINK);
144+
return exceptionIsBug(
145+
() ->
146+
KeyTemplate.createFrom(
147+
AesEaxParameters.builder()
148+
.setIvSizeBytes(16)
149+
.setKeySizeBytes(16)
150+
.setTagSizeBytes(16)
151+
.setVariant(AesEaxParameters.Variant.TINK)
152+
.build()));
143153
}
144154

145155
/**
@@ -152,7 +162,15 @@ public static final KeyTemplate aes128EaxTemplate() {
152162
* </ul>
153163
*/
154164
public static final KeyTemplate rawAes128EaxTemplate() {
155-
return createKeyTemplate(16, 16, KeyTemplate.OutputPrefixType.RAW);
165+
return exceptionIsBug(
166+
() ->
167+
KeyTemplate.createFrom(
168+
AesEaxParameters.builder()
169+
.setIvSizeBytes(16)
170+
.setKeySizeBytes(16)
171+
.setTagSizeBytes(16)
172+
.setVariant(AesEaxParameters.Variant.NO_PREFIX)
173+
.build()));
156174
}
157175

158176
/**
@@ -165,7 +183,15 @@ public static final KeyTemplate rawAes128EaxTemplate() {
165183
* </ul>
166184
*/
167185
public static final KeyTemplate aes256EaxTemplate() {
168-
return createKeyTemplate(32, 16, KeyTemplate.OutputPrefixType.TINK);
186+
return exceptionIsBug(
187+
() ->
188+
KeyTemplate.createFrom(
189+
AesEaxParameters.builder()
190+
.setIvSizeBytes(16)
191+
.setKeySizeBytes(32)
192+
.setTagSizeBytes(16)
193+
.setVariant(AesEaxParameters.Variant.TINK)
194+
.build()));
169195
}
170196

171197
/**
@@ -178,22 +204,15 @@ public static final KeyTemplate aes256EaxTemplate() {
178204
* </ul>
179205
*/
180206
public static final KeyTemplate rawAes256EaxTemplate() {
181-
return createKeyTemplate(32, 16, KeyTemplate.OutputPrefixType.RAW);
182-
}
183-
184-
/**
185-
* @return a {@link KeyTemplate} containing a {@link AesEaxKeyFormat} with some specified
186-
* parameters.
187-
*/
188-
private static KeyTemplate createKeyTemplate(
189-
int keySize, int ivSize, KeyTemplate.OutputPrefixType prefixType) {
190-
AesEaxKeyFormat format =
191-
AesEaxKeyFormat.newBuilder()
192-
.setKeySize(keySize)
193-
.setParams(AesEaxParams.newBuilder().setIvSize(ivSize).build())
194-
.build();
195-
return KeyTemplate.create(
196-
new AesEaxKeyManager().getKeyType(), format.toByteArray(), prefixType);
207+
return exceptionIsBug(
208+
() ->
209+
KeyTemplate.createFrom(
210+
AesEaxParameters.builder()
211+
.setIvSizeBytes(16)
212+
.setKeySizeBytes(32)
213+
.setTagSizeBytes(16)
214+
.setVariant(AesEaxParameters.Variant.NO_PREFIX)
215+
.build()));
197216
}
198217

199218
private static KeyFactory.KeyFormat<AesEaxKeyFormat> createKeyFormat(

src/main/java/com/google/crypto/tink/aead/AesGcmKeyManager.java

Lines changed: 38 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,8 @@
1616

1717
package com.google.crypto.tink.aead;
1818

19+
import static com.google.crypto.tink.internal.TinkBugException.exceptionIsBug;
20+
1921
import com.google.crypto.tink.Aead;
2022
import com.google.crypto.tink.KeyTemplate;
2123
import com.google.crypto.tink.Registry;
@@ -149,7 +151,15 @@ public static void register(boolean newKeyAllowed) throws GeneralSecurityExcepti
149151
* in older versions.
150152
*/
151153
public static final KeyTemplate aes128GcmTemplate() {
152-
return createKeyTemplate(16, KeyTemplate.OutputPrefixType.TINK);
154+
return exceptionIsBug(
155+
() ->
156+
KeyTemplate.createFrom(
157+
AesGcmParameters.builder()
158+
.setIvSizeBytes(12)
159+
.setKeySizeBytes(16)
160+
.setTagSizeBytes(16)
161+
.setVariant(AesGcmParameters.Variant.TINK)
162+
.build()));
153163
}
154164

155165
/**
@@ -166,7 +176,15 @@ public static final KeyTemplate aes128GcmTemplate() {
166176
* in older versions.
167177
*/
168178
public static final KeyTemplate rawAes128GcmTemplate() {
169-
return createKeyTemplate(16, KeyTemplate.OutputPrefixType.RAW);
179+
return exceptionIsBug(
180+
() ->
181+
KeyTemplate.createFrom(
182+
AesGcmParameters.builder()
183+
.setIvSizeBytes(12)
184+
.setKeySizeBytes(16)
185+
.setTagSizeBytes(16)
186+
.setVariant(AesGcmParameters.Variant.NO_PREFIX)
187+
.build()));
170188
}
171189

172190
/**
@@ -181,7 +199,15 @@ public static final KeyTemplate rawAes128GcmTemplate() {
181199
* in older versions.
182200
*/
183201
public static final KeyTemplate aes256GcmTemplate() {
184-
return createKeyTemplate(32, KeyTemplate.OutputPrefixType.TINK);
202+
return exceptionIsBug(
203+
() ->
204+
KeyTemplate.createFrom(
205+
AesGcmParameters.builder()
206+
.setIvSizeBytes(12)
207+
.setKeySizeBytes(32)
208+
.setTagSizeBytes(16)
209+
.setVariant(AesGcmParameters.Variant.TINK)
210+
.build()));
185211
}
186212

187213
/**
@@ -198,18 +224,15 @@ public static final KeyTemplate aes256GcmTemplate() {
198224
* in older versions.
199225
*/
200226
public static final KeyTemplate rawAes256GcmTemplate() {
201-
return createKeyTemplate(32, KeyTemplate.OutputPrefixType.RAW);
202-
}
203-
204-
/**
205-
* @return a {@link KeyTemplate} containing a {@link AesGcmKeyFormat} with some specified
206-
* parameters.
207-
*/
208-
private static KeyTemplate createKeyTemplate(
209-
int keySize, KeyTemplate.OutputPrefixType prefixType) {
210-
AesGcmKeyFormat format = AesGcmKeyFormat.newBuilder().setKeySize(keySize).build();
211-
return KeyTemplate.create(
212-
new AesGcmKeyManager().getKeyType(), format.toByteArray(), prefixType);
227+
return exceptionIsBug(
228+
() ->
229+
KeyTemplate.createFrom(
230+
AesGcmParameters.builder()
231+
.setIvSizeBytes(12)
232+
.setKeySizeBytes(32)
233+
.setTagSizeBytes(16)
234+
.setVariant(AesGcmParameters.Variant.NO_PREFIX)
235+
.build()));
213236
}
214237

215238
private static KeyFactory.KeyFormat<AesGcmKeyFormat> createKeyFormat(

src/main/java/com/google/crypto/tink/aead/BUILD.bazel

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ java_library(
88
name = "aes_gcm_key_manager",
99
srcs = ["AesGcmKeyManager.java"],
1010
deps = [
11+
":aes_gcm_parameters",
1112
":aes_gcm_proto_serialization",
1213
"//proto:aes_gcm_java_proto",
1314
"//proto:tink_java_proto",
@@ -17,6 +18,7 @@ java_library(
1718
"//src/main/java/com/google/crypto/tink/config/internal:tink_fips_util",
1819
"//src/main/java/com/google/crypto/tink/internal:key_type_manager",
1920
"//src/main/java/com/google/crypto/tink/internal:primitive_factory",
21+
"//src/main/java/com/google/crypto/tink/internal:tink_bug_exception",
2022
"//src/main/java/com/google/crypto/tink/subtle:aes_gcm_jce",
2123
"//src/main/java/com/google/crypto/tink/subtle:random",
2224
"//src/main/java/com/google/crypto/tink/subtle:validators",
@@ -72,6 +74,7 @@ java_library(
7274
name = "aes_ctr_hmac_aead_key_manager",
7375
srcs = ["AesCtrHmacAeadKeyManager.java"],
7476
deps = [
77+
":aes_ctr_hmac_aead_parameters",
7578
":aes_ctr_hmac_aead_proto_serialization",
7679
":aes_ctr_key_manager",
7780
"//proto:aes_ctr_hmac_aead_java_proto",
@@ -86,6 +89,7 @@ java_library(
8689
"//src/main/java/com/google/crypto/tink/config/internal:tink_fips_util",
8790
"//src/main/java/com/google/crypto/tink/internal:key_type_manager",
8891
"//src/main/java/com/google/crypto/tink/internal:primitive_factory",
92+
"//src/main/java/com/google/crypto/tink/internal:tink_bug_exception",
8993
"//src/main/java/com/google/crypto/tink/mac:hmac_key_manager",
9094
"//src/main/java/com/google/crypto/tink/subtle:encrypt_then_authenticate",
9195
"//src/main/java/com/google/crypto/tink/subtle:ind_cpa_cipher",
@@ -235,6 +239,7 @@ java_library(
235239
name = "aes_eax_key_manager",
236240
srcs = ["AesEaxKeyManager.java"],
237241
deps = [
242+
":aes_eax_parameters",
238243
":aes_eax_proto_serialization",
239244
"//proto:aes_eax_java_proto",
240245
"//proto:tink_java_proto",
@@ -243,6 +248,7 @@ java_library(
243248
"//src/main/java/com/google/crypto/tink:registry",
244249
"//src/main/java/com/google/crypto/tink/internal:key_type_manager",
245250
"//src/main/java/com/google/crypto/tink/internal:primitive_factory",
251+
"//src/main/java/com/google/crypto/tink/internal:tink_bug_exception",
246252
"//src/main/java/com/google/crypto/tink/subtle:aes_eax_jce",
247253
"//src/main/java/com/google/crypto/tink/subtle:random",
248254
"//src/main/java/com/google/crypto/tink/subtle:validators",
@@ -447,6 +453,7 @@ android_library(
447453
name = "aes_gcm_key_manager-android",
448454
srcs = ["AesGcmKeyManager.java"],
449455
deps = [
456+
":aes_gcm_parameters-android",
450457
":aes_gcm_proto_serialization-android",
451458
"//proto:aes_gcm_java_proto_lite",
452459
"//proto:tink_java_proto_lite",
@@ -456,6 +463,7 @@ android_library(
456463
"//src/main/java/com/google/crypto/tink/config/internal:tink_fips_util-android",
457464
"//src/main/java/com/google/crypto/tink/internal:key_type_manager-android",
458465
"//src/main/java/com/google/crypto/tink/internal:primitive_factory-android",
466+
"//src/main/java/com/google/crypto/tink/internal:tink_bug_exception-android",
459467
"//src/main/java/com/google/crypto/tink/subtle:aes_gcm_jce-android",
460468
"//src/main/java/com/google/crypto/tink/subtle:random-android",
461469
"//src/main/java/com/google/crypto/tink/subtle:validators-android",
@@ -511,6 +519,7 @@ android_library(
511519
name = "aes_ctr_hmac_aead_key_manager-android",
512520
srcs = ["AesCtrHmacAeadKeyManager.java"],
513521
deps = [
522+
":aes_ctr_hmac_aead_parameters-android",
514523
":aes_ctr_hmac_aead_proto_serialization-android",
515524
":aes_ctr_key_manager-android",
516525
"//proto:aes_ctr_hmac_aead_java_proto_lite",
@@ -525,6 +534,7 @@ android_library(
525534
"//src/main/java/com/google/crypto/tink/config/internal:tink_fips_util-android",
526535
"//src/main/java/com/google/crypto/tink/internal:key_type_manager-android",
527536
"//src/main/java/com/google/crypto/tink/internal:primitive_factory-android",
537+
"//src/main/java/com/google/crypto/tink/internal:tink_bug_exception-android",
528538
"//src/main/java/com/google/crypto/tink/mac:hmac_key_manager-android",
529539
"//src/main/java/com/google/crypto/tink/subtle:encrypt_then_authenticate-android",
530540
"//src/main/java/com/google/crypto/tink/subtle:ind_cpa_cipher-android",
@@ -674,6 +684,7 @@ android_library(
674684
name = "aes_eax_key_manager-android",
675685
srcs = ["AesEaxKeyManager.java"],
676686
deps = [
687+
":aes_eax_parameters-android",
677688
":aes_eax_proto_serialization-android",
678689
"//proto:aes_eax_java_proto_lite",
679690
"//proto:tink_java_proto_lite",
@@ -682,6 +693,7 @@ android_library(
682693
"//src/main/java/com/google/crypto/tink:registry-android",
683694
"//src/main/java/com/google/crypto/tink/internal:key_type_manager-android",
684695
"//src/main/java/com/google/crypto/tink/internal:primitive_factory-android",
696+
"//src/main/java/com/google/crypto/tink/internal:tink_bug_exception-android",
685697
"//src/main/java/com/google/crypto/tink/subtle:aes_eax_jce-android",
686698
"//src/main/java/com/google/crypto/tink/subtle:random-android",
687699
"//src/main/java/com/google/crypto/tink/subtle:validators-android",

src/main/java/com/google/crypto/tink/prf/AesCmacPrfKeyManager.java

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,8 @@
1616

1717
package com.google.crypto.tink.prf;
1818

19+
import static com.google.crypto.tink.internal.TinkBugException.exceptionIsBug;
20+
1921
import com.google.crypto.tink.KeyTemplate;
2022
import com.google.crypto.tink.Registry;
2123
import com.google.crypto.tink.internal.KeyTypeManager;
@@ -160,10 +162,6 @@ public static void register(boolean newKeyAllowed) throws GeneralSecurityExcepti
160162
* </ul>
161163
*/
162164
public static final KeyTemplate aes256CmacTemplate() {
163-
AesCmacPrfKeyFormat format = AesCmacPrfKeyFormat.newBuilder().setKeySize(32).build();
164-
return KeyTemplate.create(
165-
new AesCmacPrfKeyManager().getKeyType(),
166-
format.toByteArray(),
167-
KeyTemplate.OutputPrefixType.RAW);
165+
return exceptionIsBug(() -> KeyTemplate.createFrom(AesCmacPrfParameters.create(32)));
168166
}
169167
}

src/main/java/com/google/crypto/tink/prf/BUILD.bazel

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -88,6 +88,7 @@ java_library(
8888
srcs = ["AesCmacPrfKeyManager.java"],
8989
deps = [
9090
":aes_cmac_prf_key",
91+
":aes_cmac_prf_parameters",
9192
":aes_cmac_prf_proto_serialization",
9293
":prf_set",
9394
"//proto:aes_cmac_prf_java_proto",
@@ -98,6 +99,7 @@ java_library(
9899
"//src/main/java/com/google/crypto/tink/internal:mutable_primitive_registry",
99100
"//src/main/java/com/google/crypto/tink/internal:primitive_constructor",
100101
"//src/main/java/com/google/crypto/tink/internal:primitive_factory",
102+
"//src/main/java/com/google/crypto/tink/internal:tink_bug_exception",
101103
"//src/main/java/com/google/crypto/tink/subtle:prf_aes_cmac",
102104
"//src/main/java/com/google/crypto/tink/subtle:random",
103105
"//src/main/java/com/google/crypto/tink/subtle:validators",
@@ -387,6 +389,7 @@ android_library(
387389
srcs = ["AesCmacPrfKeyManager.java"],
388390
deps = [
389391
":aes_cmac_prf_key-android",
392+
":aes_cmac_prf_parameters-android",
390393
":aes_cmac_prf_proto_serialization-android",
391394
":prf_set-android",
392395
"//proto:aes_cmac_prf_java_proto_lite",
@@ -397,6 +400,7 @@ android_library(
397400
"//src/main/java/com/google/crypto/tink/internal:mutable_primitive_registry-android",
398401
"//src/main/java/com/google/crypto/tink/internal:primitive_constructor-android",
399402
"//src/main/java/com/google/crypto/tink/internal:primitive_factory-android",
403+
"//src/main/java/com/google/crypto/tink/internal:tink_bug_exception-android",
400404
"//src/main/java/com/google/crypto/tink/subtle:prf_aes_cmac-android",
401405
"//src/main/java/com/google/crypto/tink/subtle:random-android",
402406
"//src/main/java/com/google/crypto/tink/subtle:validators-android",

src/test/java/com/google/crypto/tink/internal/BUILD.bazel

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ java_test(
99
deps = [
1010
"//proto:tink_java_proto",
1111
"//src/main/java/com/google/crypto/tink:key_template",
12+
"//src/main/java/com/google/crypto/tink/aead:aead_config",
1213
"//src/main/java/com/google/crypto/tink/aead:aes_gcm_key_manager",
1314
"//src/main/java/com/google/crypto/tink/internal:key_template_proto_converter",
1415
"@maven//:com_google_protobuf_protobuf_java",

0 commit comments

Comments
 (0)