diff options
author | tholenst <tholenst@google.com> | 2023-07-12 00:09:52 -0700 |
---|---|---|
committer | Copybara-Service <copybara-worker@google.com> | 2023-07-12 00:11:09 -0700 |
commit | f647c002dfff19f506d7dbe60cac6a678c00e147 (patch) | |
tree | 6ff84af8aa275dcac773bf5f62f02f891572f844 /java_src/src/test/java/com/google/crypto/tink | |
parent | 6cfccff086008fb68e9fd45573a3cac7a8541e78 (diff) | |
download | tink-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')
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)); |