From 0933a6d58327d3e5f97ae5aa3250ec3e52015faa Mon Sep 17 00:00:00 2001 From: tholenst <tholenst@google.com> Date: Wed, 24 Jul 2019 10:04:07 -0700 Subject: [PATCH] AES CMAC: Copy the tag size into the key. Previously this was forgotten. I noticed it when the the benchmarks failed. We add this here. PiperOrigin-RevId: 259762823 --- cc/mac/aes_cmac_key_manager.cc | 1 + cc/mac/aes_cmac_key_manager_test.cc | 3 +++ 2 files changed, 4 insertions(+) diff --git a/cc/mac/aes_cmac_key_manager.cc b/cc/mac/aes_cmac_key_manager.cc index f671c7647..9e3e81d16 100644 --- a/cc/mac/aes_cmac_key_manager.cc +++ b/cc/mac/aes_cmac_key_manager.cc @@ -71,6 +71,7 @@ StatusOr<std::unique_ptr<AesCmacKey>> AesCmacKeyFactory::NewKeyFromFormat( cmac_key->set_version(AesCmacKeyManager::kVersion); cmac_key->set_key_value( subtle::Random::GetRandomBytes(cmac_key_format.key_size())); + *cmac_key->mutable_params() = cmac_key_format.params(); return absl::implicit_cast<StatusOr<std::unique_ptr<AesCmacKey>>>( std::move(cmac_key)); } diff --git a/cc/mac/aes_cmac_key_manager_test.cc b/cc/mac/aes_cmac_key_manager_test.cc index a51f6c2d6..75135dc19 100644 --- a/cc/mac/aes_cmac_key_manager_test.cc +++ b/cc/mac/aes_cmac_key_manager_test.cc @@ -213,6 +213,7 @@ TEST_F(AesCmacKeyManagerTest, testNewKeyBasic) { std::unique_ptr<AesCmacKey> cmac_key( static_cast<AesCmacKey*>(key.release())); EXPECT_EQ(0, cmac_key->version()); + EXPECT_EQ(16, cmac_key->params().tag_size()); EXPECT_EQ(key_format.key_size(), cmac_key->key_value().size()); } @@ -224,6 +225,7 @@ TEST_F(AesCmacKeyManagerTest, testNewKeyBasic) { std::unique_ptr<AesCmacKey> cmac_key( static_cast<AesCmacKey*>(key.release())); EXPECT_EQ(0, cmac_key->version()); + EXPECT_EQ(16, cmac_key->params().tag_size()); EXPECT_EQ(key_format.key_size(), cmac_key->key_value().size()); } @@ -236,6 +238,7 @@ TEST_F(AesCmacKeyManagerTest, testNewKeyBasic) { AesCmacKey cmac_key; EXPECT_TRUE(cmac_key.ParseFromString(key_data->value())); EXPECT_EQ(0, cmac_key.version()); + EXPECT_EQ(16, cmac_key.params().tag_size()); EXPECT_EQ(key_format.key_size(), cmac_key.key_value().size()); } } -- GitLab