Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit de149560 authored by Matthew Maurer's avatar Matthew Maurer Committed by Jay Patel
Browse files

Allow INVALID_INPUT_LENGTH for oversized messages

In Keymaster 3, both INVALID_INPUT_LENGTH and INVALID_ARGUMENT were
acceptable for oversized messages. Keymaster 4 VTS requires that
INVALID_ARGUMENT be returned, but the spec has no such restriction. This
loosens VTS to allow either INVALID_INPUT_LENGTH or INVALID_ARGUMENT in
this case.

Bug: 129297054
Test: atest VtsHalKeymasterV4_0TargetTest Pixel 3, Trusty tests
(cherry picked from commit 66f842ce)

Bug: 140789517

Change-Id: I2dd3d51b6913e34b77d0760f7e1bbec57605ba67
parent 13c9e764
Loading
Loading
Loading
Loading
+4 −2
Original line number Diff line number Diff line
@@ -2550,7 +2550,8 @@ TEST_F(EncryptionOperationsTest, RsaOaepTooLarge) {
              Begin(KeyPurpose::ENCRYPT,
                    AuthorizationSetBuilder().Padding(PaddingMode::RSA_OAEP).Digest(Digest::SHA_2_256)));
    string result;
    EXPECT_EQ(ErrorCode::INVALID_ARGUMENT, Finish(message, &result));
    auto error = Finish(message, &result);
    EXPECT_TRUE(error == ErrorCode::INVALID_INPUT_LENGTH || error == ErrorCode::INVALID_ARGUMENT);
    EXPECT_EQ(0U, result.size());
}

@@ -2608,7 +2609,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_ARGUMENT, Finish(message, &result));
    auto error = Finish(message, &result);
    EXPECT_TRUE(error == ErrorCode::INVALID_INPUT_LENGTH || error == ErrorCode::INVALID_ARGUMENT);
    EXPECT_EQ(0U, result.size());
}