diff options
author | Janis Danisevskis <jdanis@google.com> | 2020-12-17 10:05:15 -0800 |
---|---|---|
committer | Janis Danisevskis <jdanis@google.com> | 2020-12-18 08:34:20 -0800 |
commit | 5ba093377c40a2ce976093d046f3723feae9c953 (patch) | |
tree | 3c689726c2abaf52711bb1b848e51a52eb7d112f /security/keymint/aidl/vts/functional/KeyMintTest.cpp | |
parent | 83fa6413ac4e0d5af8782bb9e806f1fa02a56347 (diff) |
Revise keymint_tags.h
* replace NullOr with std::optional.
* Add mising tag.
* Undefine helper macros so that keymint_tags.h can be used together
with keymaster_tags.h
* Check if KeyParameterValue variant matches KeyParameterTag in
accessors.
Test: VtsAidlKeyMintTargetTest
Change-Id: I6c951071f30fd27c8c21a2e8cc86f421a3bc37d9
Diffstat (limited to 'security/keymint/aidl/vts/functional/KeyMintTest.cpp')
-rw-r--r-- | security/keymint/aidl/vts/functional/KeyMintTest.cpp | 31 |
1 files changed, 17 insertions, 14 deletions
diff --git a/security/keymint/aidl/vts/functional/KeyMintTest.cpp b/security/keymint/aidl/vts/functional/KeyMintTest.cpp index 6e38539a36..30601538dd 100644 --- a/security/keymint/aidl/vts/functional/KeyMintTest.cpp +++ b/security/keymint/aidl/vts/functional/KeyMintTest.cpp @@ -80,7 +80,10 @@ namespace { template <TagType tag_type, Tag tag, typename ValueT> bool contains(vector<KeyParameter>& set, TypedTag<tag_type, tag> ttag, ValueT expected_value) { auto it = std::find_if(set.begin(), set.end(), [&](const KeyParameter& param) { - return param.tag == tag && accessTagValue(ttag, param) == expected_value; + if (auto p = authorizationValue(ttag, param)) { + return *p == expected_value; + } + return false; }); return (it != set.end()); } @@ -251,10 +254,10 @@ class NewKeyGenerationTest : public KeyMintAidlTestBase { EXPECT_TRUE(auths.Contains(TAG_OS_VERSION, os_version())) << "OS version is " << os_version() << " key reported " - << auths.GetTagValue(TAG_OS_VERSION); + << auths.GetTagValue(TAG_OS_VERSION)->get(); EXPECT_TRUE(auths.Contains(TAG_OS_PATCHLEVEL, os_patch_level())) << "OS patch level is " << os_patch_level() << " key reported " - << auths.GetTagValue(TAG_OS_PATCHLEVEL); + << auths.GetTagValue(TAG_OS_PATCHLEVEL)->get(); } }; @@ -2333,8 +2336,8 @@ TEST_P(EncryptionOperationsTest, AesEcbPkcs7PaddingCorrupted) { vector<uint8_t> CopyIv(const AuthorizationSet& set) { auto iv = set.GetTagValue(TAG_NONCE); - EXPECT_TRUE(iv.isOk()); - return iv.value(); + EXPECT_TRUE(iv); + return iv->get(); } /* @@ -2459,13 +2462,13 @@ TEST_P(EncryptionOperationsTest, AesIncremental) { case BlockMode::CBC: case BlockMode::GCM: case BlockMode::CTR: - ASSERT_TRUE(iv.isOk()) << "No IV for block mode " << block_mode; - EXPECT_EQ(block_mode == BlockMode::GCM ? 12U : 16U, iv.value().size()); - params.push_back(TAG_NONCE, iv.value()); + ASSERT_TRUE(iv) << "No IV for block mode " << block_mode; + EXPECT_EQ(block_mode == BlockMode::GCM ? 12U : 16U, iv->get().size()); + params.push_back(TAG_NONCE, iv->get()); break; case BlockMode::ECB: - EXPECT_FALSE(iv.isOk()) << "ECB mode should not generate IV"; + EXPECT_FALSE(iv) << "ECB mode should not generate IV"; break; } @@ -2649,9 +2652,9 @@ TEST_P(EncryptionOperationsTest, AesCallerNonce) { AuthorizationSet out_params; string ciphertext = EncryptMessage(message, params, &out_params); EXPECT_EQ(message.size(), ciphertext.size()); - EXPECT_EQ(16U, out_params.GetTagValue(TAG_NONCE).value().size()); + EXPECT_EQ(16U, out_params.GetTagValue(TAG_NONCE)->get().size()); - params.push_back(TAG_NONCE, out_params.GetTagValue(TAG_NONCE).value()); + params.push_back(TAG_NONCE, out_params.GetTagValue(TAG_NONCE)->get()); string plaintext = DecryptMessage(ciphertext, params); EXPECT_EQ(message, plaintext); @@ -2697,9 +2700,9 @@ TEST_P(EncryptionOperationsTest, AesCallerNonceProhibited) { AuthorizationSet out_params; string ciphertext = EncryptMessage(message, params, &out_params); EXPECT_EQ(message.size(), ciphertext.size()); - EXPECT_EQ(16U, out_params.GetTagValue(TAG_NONCE).value().size()); + EXPECT_EQ(16U, out_params.GetTagValue(TAG_NONCE)->get().size()); - params.push_back(TAG_NONCE, out_params.GetTagValue(TAG_NONCE).value()); + params.push_back(TAG_NONCE, out_params.GetTagValue(TAG_NONCE)->get()); string plaintext = DecryptMessage(ciphertext, params); EXPECT_EQ(message, plaintext); @@ -2893,7 +2896,7 @@ TEST_P(EncryptionOperationsTest, AesGcmTooShortTagOnDecrypt) { AuthorizationSet begin_out_params; EXPECT_EQ(ErrorCode::OK, Begin(KeyPurpose::ENCRYPT, params, &begin_out_params)); EXPECT_EQ(1U, begin_out_params.size()); - ASSERT_TRUE(begin_out_params.GetTagValue(TAG_NONCE).isOk()); + ASSERT_TRUE(begin_out_params.GetTagValue(TAG_NONCE)); AuthorizationSet finish_out_params; string ciphertext; |