From 890d3dfe27e3e0ffc28f70b006ddfcde81b05878 Mon Sep 17 00:00:00 2001 From: Iris Chang Date: Wed, 8 Nov 2017 16:24:45 +0800 Subject: [PATCH] Fix Keymaster VTS for OpenSSL error code change OpenSSL changes error code of large RSA data from KM_ERROR_INVALID_INPUT_LENGTH to KM_ERROR_INVALID_ARGUMENT which causes HidlHalGTest#EncryptionOperationsTest.RsaOaepTooLarge and HidlHalGTest#EncryptionOperationsTest.RsaPkcs1TooLarge tests failed. Fix keymaster VTS to accept both the error codes. Bug: 68289922 Test: HidlHalGTest#EncryptionOperationsTest.RsaOaepTooLarge and HidlHalGTest#EncryptionOperationsTest.RsaPkcs1TooLargeHidlHalGTest#EncryptionOperationsTest.RsaOaepTooLarge and HidlHalGTest#EncryptionOperationsTest.RsaPkcs1TooLarge are passed after applying this modification and other Keymaster 3.0 VTS test cases are not affected. Change-Id: I493bfa1c6e4b69560dfae3585a416b5c3d33e215 --- keymaster/3.0/vts/functional/keymaster_hidl_hal_test.cpp | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/keymaster/3.0/vts/functional/keymaster_hidl_hal_test.cpp b/keymaster/3.0/vts/functional/keymaster_hidl_hal_test.cpp index 78353eaf25..9e7c9f6261 100644 --- a/keymaster/3.0/vts/functional/keymaster_hidl_hal_test.cpp +++ b/keymaster/3.0/vts/functional/keymaster_hidl_hal_test.cpp @@ -2762,7 +2762,8 @@ TEST_F(EncryptionOperationsTest, RsaOaepTooLarge) { Begin(KeyPurpose::ENCRYPT, AuthorizationSetBuilder().Padding(PaddingMode::RSA_OAEP).Digest(Digest::SHA1))); string result; - EXPECT_EQ(ErrorCode::INVALID_INPUT_LENGTH, Finish(message, &result)); + auto error = Finish(message, &result); + EXPECT_TRUE(error == ErrorCode::INVALID_INPUT_LENGTH || error == ErrorCode::INVALID_ARGUMENT); EXPECT_EQ(0U, result.size()); } @@ -2820,7 +2821,8 @@ TEST_F(EncryptionOperationsTest, RsaPkcs1TooLarge) { auto params = AuthorizationSetBuilder().Padding(PaddingMode::RSA_PKCS1_1_5_ENCRYPT); EXPECT_EQ(ErrorCode::OK, Begin(KeyPurpose::ENCRYPT, params)); string result; - EXPECT_EQ(ErrorCode::INVALID_INPUT_LENGTH, Finish(message, &result)); + auto error = Finish(message, &result); + EXPECT_TRUE(error == ErrorCode::INVALID_INPUT_LENGTH || error == ErrorCode::INVALID_ARGUMENT); EXPECT_EQ(0U, result.size()); }