aboutsummaryrefslogtreecommitdiff
path: root/java_src/src/test/java/com/google/crypto/tink
diff options
context:
space:
mode:
authortholenst <tholenst@google.com>2023-07-12 00:09:52 -0700
committerCopybara-Service <copybara-worker@google.com>2023-07-12 00:11:09 -0700
commitf647c002dfff19f506d7dbe60cac6a678c00e147 (patch)
tree6ff84af8aa275dcac773bf5f62f02f891572f844 /java_src/src/test/java/com/google/crypto/tink
parent6cfccff086008fb68e9fd45573a3cac7a8541e78 (diff)
downloadtink-f647c002dfff19f506d7dbe60cac6a678c00e147.tar.gz
Delete KeyDerivationkeyTemplates.
This isn't needed anymore -- we now fully support Parameters. Also, this was never in a release, so I'm sure that it's never used. Note that even if a user uses it, they can just replace KeyTemplate keyDerivationTemplate = KeyDerivationKeyTemplates.createPrfBasedKeyTemplate(a, b); with PrfBasedKeyDerivationParameters.builder() .setPrfParameters((PrfParameters) a.toParameters()) .setDerivedKeyParameters(b.toParameters()) .build(); (Typically, one doesn't need to convert it into a KeyTemplate -- if one does, one can just call KeyTemplate.fromProto()). PiperOrigin-RevId: 547406999
Diffstat (limited to 'java_src/src/test/java/com/google/crypto/tink')
-rw-r--r--java_src/src/test/java/com/google/crypto/tink/keyderivation/BUILD.bazel28
-rw-r--r--java_src/src/test/java/com/google/crypto/tink/keyderivation/KeyDerivationKeyTemplatesTest.java110
-rw-r--r--java_src/src/test/java/com/google/crypto/tink/keyderivation/KeyDerivationTest.java23
3 files changed, 17 insertions, 144 deletions
diff --git a/java_src/src/test/java/com/google/crypto/tink/keyderivation/BUILD.bazel b/java_src/src/test/java/com/google/crypto/tink/keyderivation/BUILD.bazel
index 57bbf8cf6..33c784dcb 100644
--- a/java_src/src/test/java/com/google/crypto/tink/keyderivation/BUILD.bazel
+++ b/java_src/src/test/java/com/google/crypto/tink/keyderivation/BUILD.bazel
@@ -15,29 +15,6 @@ java_test(
)
java_test(
- name = "KeyDerivationKeyTemplatesTest",
- size = "small",
- srcs = ["KeyDerivationKeyTemplatesTest.java"],
- deps = [
- "//proto:tink_java_proto",
- "//src/main/java/com/google/crypto/tink:aead",
- "//src/main/java/com/google/crypto/tink:key_template",
- "//src/main/java/com/google/crypto/tink:key_templates",
- "//src/main/java/com/google/crypto/tink:registry_cluster",
- "//src/main/java/com/google/crypto/tink/aead:aead_config",
- "//src/main/java/com/google/crypto/tink/internal:key_template_proto_converter",
- "//src/main/java/com/google/crypto/tink/internal:util",
- "//src/main/java/com/google/crypto/tink/keyderivation:key_derivation_config",
- "//src/main/java/com/google/crypto/tink/keyderivation:key_derivation_key_templates",
- "//src/main/java/com/google/crypto/tink/keyderivation:keyset_deriver",
- "//src/main/java/com/google/crypto/tink/prf:prf_config",
- "//src/main/java/com/google/crypto/tink/testing:test_util",
- "@maven//:com_google_truth_truth",
- "@maven//:junit_junit",
- ],
-)
-
-java_test(
name = "KeyDerivationTest",
size = "small",
srcs = ["KeyDerivationTest.java"],
@@ -45,18 +22,19 @@ java_test(
"//src/main/java/com/google/crypto/tink:aead",
"//src/main/java/com/google/crypto/tink:deterministic_aead",
"//src/main/java/com/google/crypto/tink:insecure_secret_key_access",
- "//src/main/java/com/google/crypto/tink:key_template",
"//src/main/java/com/google/crypto/tink:key_templates",
"//src/main/java/com/google/crypto/tink:mac",
+ "//src/main/java/com/google/crypto/tink:parameters",
"//src/main/java/com/google/crypto/tink:registry_cluster",
"//src/main/java/com/google/crypto/tink:tink_json_proto_keyset_format",
"//src/main/java/com/google/crypto/tink/aead:aead_config",
"//src/main/java/com/google/crypto/tink/daead:deterministic_aead_config",
"//src/main/java/com/google/crypto/tink/keyderivation:key_derivation_config",
- "//src/main/java/com/google/crypto/tink/keyderivation:key_derivation_key_templates",
"//src/main/java/com/google/crypto/tink/keyderivation:keyset_deriver",
+ "//src/main/java/com/google/crypto/tink/keyderivation:prf_based_key_derivation_parameters",
"//src/main/java/com/google/crypto/tink/mac:mac_config",
"//src/main/java/com/google/crypto/tink/prf:prf_config",
+ "//src/main/java/com/google/crypto/tink/prf:prf_parameters",
"//src/main/java/com/google/crypto/tink/testing:test_util",
"@maven//:com_google_truth_truth",
"@maven//:junit_junit",
diff --git a/java_src/src/test/java/com/google/crypto/tink/keyderivation/KeyDerivationKeyTemplatesTest.java b/java_src/src/test/java/com/google/crypto/tink/keyderivation/KeyDerivationKeyTemplatesTest.java
deleted file mode 100644
index fe4ef7d86..000000000
--- a/java_src/src/test/java/com/google/crypto/tink/keyderivation/KeyDerivationKeyTemplatesTest.java
+++ /dev/null
@@ -1,110 +0,0 @@
-// Copyright 2023 Google LLC
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-//
-////////////////////////////////////////////////////////////////////////////////
-
-package com.google.crypto.tink.keyderivation;
-
-import static com.google.common.truth.Truth.assertThat;
-import static com.google.crypto.tink.internal.Util.UTF_8;
-import static org.junit.Assert.assertThrows;
-
-import com.google.crypto.tink.Aead;
-import com.google.crypto.tink.KeyTemplate;
-import com.google.crypto.tink.KeyTemplates;
-import com.google.crypto.tink.KeysetHandle;
-import com.google.crypto.tink.aead.AeadConfig;
-import com.google.crypto.tink.internal.KeyTemplateProtoConverter;
-import com.google.crypto.tink.prf.PrfConfig;
-import com.google.crypto.tink.proto.OutputPrefixType;
-import com.google.crypto.tink.testing.TestUtil;
-import java.security.GeneralSecurityException;
-import java.util.ArrayList;
-import java.util.List;
-import org.junit.Assume;
-import org.junit.BeforeClass;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.junit.runners.JUnit4;
-
-@RunWith(JUnit4.class)
-public final class KeyDerivationKeyTemplatesTest {
-
- @BeforeClass
- public static void setUp() throws Exception {
- KeyDerivationConfig.register();
- PrfConfig.register();
- AeadConfig.register();
- }
-
- @Test
- public void createPrfBasedKeyTemplate_succeeds() throws Exception {
- Assume.assumeFalse(TestUtil.isAndroid()); // Some Android versions don't support AES-GCM.
-
- KeyTemplate prfTemplate = KeyTemplates.get("HKDF_SHA256");
- KeyTemplate aeadTemplate = KeyTemplates.get("AES256_GCM");
-
- List<OutputPrefixType> outputPrefixTypes = new ArrayList<>();
- outputPrefixTypes.add(OutputPrefixType.TINK);
- outputPrefixTypes.add(OutputPrefixType.RAW);
- outputPrefixTypes.add(OutputPrefixType.CRUNCHY);
-
- for (OutputPrefixType outputPrefixType : outputPrefixTypes) {
- com.google.crypto.tink.proto.KeyTemplate protoAeadTemplate =
- KeyTemplateProtoConverter.toProto(aeadTemplate);
- com.google.crypto.tink.proto.KeyTemplate protoDerivedTemplate =
- com.google.crypto.tink.proto.KeyTemplate.newBuilder(protoAeadTemplate)
- .setOutputPrefixType(outputPrefixType)
- .build();
- KeyTemplate derivedTemplate = KeyTemplateProtoConverter.fromProto(protoDerivedTemplate);
- KeyTemplate prfBasedTemplate =
- KeyDerivationKeyTemplates.createPrfBasedKeyTemplate(prfTemplate, derivedTemplate);
-
- KeysetHandle handle = KeysetHandle.generateNew(prfBasedTemplate);
- KeysetDeriver deriver = handle.getPrimitive(KeysetDeriver.class);
- KeysetHandle derivedHandle = deriver.deriveKeyset("salty".getBytes(UTF_8));
- assertThat(derivedHandle.getKeysetInfo().getKeyInfoCount()).isEqualTo(1);
- assertThat(derivedHandle.getKeysetInfo().getKeyInfo(0).getOutputPrefixType().toString())
- .isEqualTo(outputPrefixType.toString());
-
- // Use derivedHandle, which contains an AES256_GCM key.
- Aead aead = derivedHandle.getPrimitive(Aead.class);
- byte[] plaintext = "plaintext".getBytes(UTF_8);
- byte[] associatedData = "associatedData".getBytes(UTF_8);
- byte[] ciphertext = aead.encrypt(plaintext, associatedData);
- assertThat(aead.decrypt(ciphertext, associatedData)).isEqualTo(plaintext);
- }
- }
-
- @Test
- public void createPrfBasedKeyTemplate_failsForNotPrf() throws Exception {
- assertThrows(
- GeneralSecurityException.class,
- () ->
- KeyDerivationKeyTemplates.createPrfBasedKeyTemplate(
- KeyTemplates.get("AES256_GCM"), KeyTemplates.get("AES256_GCM")));
- }
-
- @Test
- public void createPrfBasedKeyTemplate_failsForNotDerivableKeyType() throws Exception {
- KeyTemplate derivedTemplate =
- KeyDerivationKeyTemplates.createPrfBasedKeyTemplate(
- KeyTemplates.get("HKDF_SHA256"), KeyTemplates.get("AES256_GCM"));
- assertThrows(
- GeneralSecurityException.class,
- () ->
- KeyDerivationKeyTemplates.createPrfBasedKeyTemplate(
- KeyTemplates.get("HKDF_SHA256"), derivedTemplate));
- }
-}
diff --git a/java_src/src/test/java/com/google/crypto/tink/keyderivation/KeyDerivationTest.java b/java_src/src/test/java/com/google/crypto/tink/keyderivation/KeyDerivationTest.java
index bf32afa4e..db8857f06 100644
--- a/java_src/src/test/java/com/google/crypto/tink/keyderivation/KeyDerivationTest.java
+++ b/java_src/src/test/java/com/google/crypto/tink/keyderivation/KeyDerivationTest.java
@@ -23,15 +23,16 @@ import static org.junit.Assert.assertThrows;
import com.google.crypto.tink.Aead;
import com.google.crypto.tink.DeterministicAead;
import com.google.crypto.tink.InsecureSecretKeyAccess;
-import com.google.crypto.tink.KeyTemplate;
import com.google.crypto.tink.KeyTemplates;
import com.google.crypto.tink.KeysetHandle;
import com.google.crypto.tink.Mac;
+import com.google.crypto.tink.Parameters;
import com.google.crypto.tink.TinkJsonProtoKeysetFormat;
import com.google.crypto.tink.aead.AeadConfig;
import com.google.crypto.tink.daead.DeterministicAeadConfig;
import com.google.crypto.tink.mac.MacConfig;
import com.google.crypto.tink.prf.PrfConfig;
+import com.google.crypto.tink.prf.PrfParameters;
import com.google.crypto.tink.testing.TestUtil;
import java.security.GeneralSecurityException;
import org.junit.Assume;
@@ -56,11 +57,13 @@ public final class KeyDerivationTest {
@Test
public void createTemplateAndDeriveAesGcmKeyset_success() throws Exception {
Assume.assumeFalse(TestUtil.isAndroid()); // some android versions don't support AesGcm
- KeyTemplate keyDerivationTemplate =
- KeyDerivationKeyTemplates.createPrfBasedKeyTemplate(
- KeyTemplates.get("HKDF_SHA256"), KeyTemplates.get("AES256_GCM"));
+ Parameters keyDerivationParameters =
+ PrfBasedKeyDerivationParameters.builder()
+ .setPrfParameters((PrfParameters) KeyTemplates.get("HKDF_SHA256").toParameters())
+ .setDerivedKeyParameters(KeyTemplates.get("AES256_GCM").toParameters())
+ .build();
- KeysetHandle handle = KeysetHandle.generateNew(keyDerivationTemplate);
+ KeysetHandle handle = KeysetHandle.generateNew(keyDerivationParameters);
KeysetDeriver deriver = handle.getPrimitive(KeysetDeriver.class);
KeysetHandle derivedHandle = deriver.deriveKeyset("salt".getBytes(UTF_8));
@@ -190,11 +193,13 @@ public final class KeyDerivationTest {
@Test
public void createTemplateAndDeriveHmacKeyset_success() throws Exception {
- KeyTemplate keyDerivationTemplate =
- KeyDerivationKeyTemplates.createPrfBasedKeyTemplate(
- KeyTemplates.get("HKDF_SHA256"), KeyTemplates.get("HMAC_SHA256_128BITTAG"));
+ Parameters keyDerivationParameters =
+ PrfBasedKeyDerivationParameters.builder()
+ .setPrfParameters((PrfParameters) KeyTemplates.get("HKDF_SHA256").toParameters())
+ .setDerivedKeyParameters(KeyTemplates.get("HMAC_SHA256_128BITTAG").toParameters())
+ .build();
- KeysetHandle handle = KeysetHandle.generateNew(keyDerivationTemplate);
+ KeysetHandle handle = KeysetHandle.generateNew(keyDerivationParameters);
KeysetDeriver deriver = handle.getPrimitive(KeysetDeriver.class);
KeysetHandle derivedHandle = deriver.deriveKeyset("salt".getBytes(UTF_8));