From 0269d49d9ac4e07179e98f1c59b54ed3341b6ffe Mon Sep 17 00:00:00 2001 From: David Drysdale Date: Thu, 14 Nov 2024 16:51:58 +0000 Subject: [PATCH] KeyMint VTS: emit values on failure Test: VtsAidlKeyMintTargetTest Change-Id: Iac65b379f22eb2ff9b4d1e47b652d41072eaafe9 --- .../vts/functional/KeyMintAidlTestBase.cpp | 9 +++--- .../aidl/vts/functional/KeyMintTest.cpp | 29 ++++++++++++------- 2 files changed, 23 insertions(+), 15 deletions(-) diff --git a/security/keymint/aidl/vts/functional/KeyMintAidlTestBase.cpp b/security/keymint/aidl/vts/functional/KeyMintAidlTestBase.cpp index 48b12a4b2a..9c1ab3de57 100644 --- a/security/keymint/aidl/vts/functional/KeyMintAidlTestBase.cpp +++ b/security/keymint/aidl/vts/functional/KeyMintAidlTestBase.cpp @@ -149,7 +149,7 @@ void check_attestation_version(uint32_t attestation_version, int32_t aidl_versio // The multiplier should never be higher than the AIDL version, but can be less // (for example, if the implementation is from an earlier version but the HAL service // uses the default libraries and so reports the current AIDL version). - EXPECT_TRUE((attestation_version / 100) <= aidl_version); + EXPECT_LE((attestation_version / 100), aidl_version); } bool avb_verification_enabled() { @@ -1142,13 +1142,12 @@ void KeyMintAidlTestBase::LocalVerifyMessage(const vector& der_cert, co int openssl_padding = RSA_NO_PADDING; switch (padding) { case PaddingMode::NONE: - ASSERT_TRUE(data_size <= key_len); + ASSERT_LE(data_size, key_len); ASSERT_EQ(key_len, signature.size()); openssl_padding = RSA_NO_PADDING; break; case PaddingMode::RSA_PKCS1_1_5_SIGN: - ASSERT_TRUE(data_size + kPkcs1UndigestedSignaturePaddingOverhead <= - key_len); + ASSERT_LE(data_size + kPkcs1UndigestedSignaturePaddingOverhead, key_len); openssl_padding = RSA_PKCS1_PADDING; break; default: @@ -2364,7 +2363,7 @@ void device_id_attestation_check_acceptable_error(Tag tag, const ErrorCode& resu // ATTESTATION_IDS_NOT_PROVISIONED in this case. ASSERT_TRUE((tag == TAG_ATTESTATION_ID_IMEI || tag == TAG_ATTESTATION_ID_MEID || tag == TAG_ATTESTATION_ID_SECOND_IMEI)) - << "incorrect error code on attestation ID mismatch"; + << "incorrect error code on attestation ID mismatch for " << tag; } else { ADD_FAILURE() << "Error code " << result << " returned on attestation ID mismatch, should be CANNOT_ATTEST_IDS"; diff --git a/security/keymint/aidl/vts/functional/KeyMintTest.cpp b/security/keymint/aidl/vts/functional/KeyMintTest.cpp index e32c2db5e5..067db78051 100644 --- a/security/keymint/aidl/vts/functional/KeyMintTest.cpp +++ b/security/keymint/aidl/vts/functional/KeyMintTest.cpp @@ -2584,7 +2584,8 @@ TEST_P(NewKeyGenerationTest, EcdsaMissingCurve) { auto result = GenerateKey( AuthorizationSetBuilder().EcdsaKey(256).Digest(Digest::NONE).SetDefaultValidity()); ASSERT_TRUE(result == ErrorCode::UNSUPPORTED_KEY_SIZE || - result == ErrorCode::UNSUPPORTED_EC_CURVE); + result == ErrorCode::UNSUPPORTED_EC_CURVE) + << "unexpected result " << result; } /* @@ -2605,7 +2606,7 @@ TEST_P(NewKeyGenerationTest, EcdsaMismatchKeySize) { .SigningKey() .Digest(Digest::NONE) .SetDefaultValidity()); - ASSERT_TRUE(result == ErrorCode::INVALID_ARGUMENT); + ASSERT_EQ(result, ErrorCode::INVALID_ARGUMENT); } /* @@ -3184,7 +3185,8 @@ TEST_P(SigningOperationsTest, RsaNoPaddingTooLong) { string result; ErrorCode finish_error_code = Finish(message, &result); EXPECT_TRUE(finish_error_code == ErrorCode::INVALID_INPUT_LENGTH || - finish_error_code == ErrorCode::INVALID_ARGUMENT); + finish_error_code == ErrorCode::INVALID_ARGUMENT) + << "unexpected error code " << finish_error_code; // Very large message that should exceed the transfer buffer size of any reasonable TEE. message = string(128 * 1024, 'a'); @@ -3194,7 +3196,8 @@ TEST_P(SigningOperationsTest, RsaNoPaddingTooLong) { .Padding(PaddingMode::RSA_PKCS1_1_5_SIGN))); finish_error_code = Finish(message, &result); EXPECT_TRUE(finish_error_code == ErrorCode::INVALID_INPUT_LENGTH || - finish_error_code == ErrorCode::INVALID_ARGUMENT); + finish_error_code == ErrorCode::INVALID_ARGUMENT) + << "unexpected error code " << finish_error_code; } /* @@ -3248,7 +3251,8 @@ TEST_P(SigningOperationsTest, RsaNonUniqueParams) { .Digest(Digest::NONE) .Digest(Digest::SHA1) .Padding(PaddingMode::RSA_PKCS1_1_5_SIGN)); - ASSERT_TRUE(result == ErrorCode::UNSUPPORTED_DIGEST || result == ErrorCode::INVALID_ARGUMENT); + ASSERT_TRUE(result == ErrorCode::UNSUPPORTED_DIGEST || result == ErrorCode::INVALID_ARGUMENT) + << "unexpected result " << result; ASSERT_EQ(ErrorCode::UNSUPPORTED_DIGEST, Begin(KeyPurpose::SIGN, @@ -3421,7 +3425,8 @@ TEST_P(SigningOperationsTest, EcdsaAllDigestsAndCurves) { } auto rc = DeleteKey(); - ASSERT_TRUE(rc == ErrorCode::OK || rc == ErrorCode::UNIMPLEMENTED); + ASSERT_TRUE(rc == ErrorCode::OK || rc == ErrorCode::UNIMPLEMENTED) + << "unexpected result " << rc; } } @@ -5705,7 +5710,8 @@ TEST_P(EncryptionOperationsTest, RsaOaepMGFDigestDefaultFail) { // is checked against those values, and found absent. auto result = Begin(KeyPurpose::DECRYPT, params); EXPECT_TRUE(result == ErrorCode::UNSUPPORTED_MGF_DIGEST || - result == ErrorCode::INCOMPATIBLE_MGF_DIGEST); + result == ErrorCode::INCOMPATIBLE_MGF_DIGEST) + << "unexpected result " << result; } /* @@ -5970,14 +5976,16 @@ TEST_P(EncryptionOperationsTest, AesInvalidParams) { .BlockMode(BlockMode::ECB) .Padding(PaddingMode::NONE)); EXPECT_TRUE(result == ErrorCode::INCOMPATIBLE_BLOCK_MODE || - result == ErrorCode::UNSUPPORTED_BLOCK_MODE); + result == ErrorCode::UNSUPPORTED_BLOCK_MODE) + << "unexpected result " << result; result = Begin(KeyPurpose::ENCRYPT, AuthorizationSetBuilder() .BlockMode(BlockMode::ECB) .Padding(PaddingMode::NONE) .Padding(PaddingMode::PKCS7)); EXPECT_TRUE(result == ErrorCode::INCOMPATIBLE_PADDING_MODE || - result == ErrorCode::UNSUPPORTED_PADDING_MODE); + result == ErrorCode::UNSUPPORTED_PADDING_MODE) + << "unexpected result " << result; } /* @@ -8760,7 +8768,8 @@ using DestroyAttestationIdsTest = KeyMintAidlTestBase; // Re-enable and run at your own risk. TEST_P(DestroyAttestationIdsTest, DISABLED_DestroyTest) { auto result = DestroyAttestationIds(); - EXPECT_TRUE(result == ErrorCode::OK || result == ErrorCode::UNIMPLEMENTED); + EXPECT_TRUE(result == ErrorCode::OK || result == ErrorCode::UNIMPLEMENTED) + << "unexpected result " << result; } INSTANTIATE_KEYMINT_AIDL_TEST(DestroyAttestationIdsTest);