Add out of bounds testing for LoadKeys()
[ Merge of http://go/wvgerrit/146249 ] Update the OEMCryptoMemoryLoadLicense* tests so they cover LoadKeys() for v15 and prior and LoadLicense() for v16 and later versions. Merged from https://widevine-internal-review.googlesource.com/145951 Bug: 190749256 Test: GtsMediaTestCases on sunfish Change-Id: If90f7afd82819375f52a2fe619675bf0c4c4dd3a
This commit is contained in:
@@ -265,7 +265,7 @@ TEST_F(OEMCryptoClientTest, FreeUnallocatedSecureBufferNoFailure) {
|
|||||||
*/
|
*/
|
||||||
TEST_F(OEMCryptoClientTest, VersionNumber) {
|
TEST_F(OEMCryptoClientTest, VersionNumber) {
|
||||||
const std::string log_message =
|
const std::string log_message =
|
||||||
"OEMCrypto unit tests for API 17.0. Tests last updated 2021-12-03";
|
"OEMCrypto unit tests for API 17.0. Tests last updated 2022-02-18";
|
||||||
cout << " " << log_message << "\n";
|
cout << " " << log_message << "\n";
|
||||||
cout << " "
|
cout << " "
|
||||||
<< "These tests are part of Android T."
|
<< "These tests are part of Android T."
|
||||||
@@ -1569,59 +1569,6 @@ class OEMCryptoSessionTests : public OEMCryptoClientTest {
|
|||||||
license_messages.EncryptAndSignResponse();
|
license_messages.EncryptAndSignResponse();
|
||||||
return license_messages.LoadResponse();
|
return license_messages.LoadResponse();
|
||||||
}
|
}
|
||||||
|
|
||||||
void TestLoadLicenseForHugeBufferLengths(
|
|
||||||
const std::function<void(size_t, LicenseRoundTrip*)> f, bool check_status,
|
|
||||||
bool update_core_message_substring_values) {
|
|
||||||
auto oemcrypto_function = [&](size_t message_length) {
|
|
||||||
Session s;
|
|
||||||
LicenseRoundTrip license_messages(&s);
|
|
||||||
s.open();
|
|
||||||
InstallTestRSAKey(&s);
|
|
||||||
bool verify_keys_loaded = true;
|
|
||||||
license_messages.SignAndVerifyRequest();
|
|
||||||
license_messages.CreateDefaultResponse();
|
|
||||||
if (update_core_message_substring_values) {
|
|
||||||
// Make the license message big enough so that updated core message
|
|
||||||
// substring offset and length values from tests are still able to read
|
|
||||||
// data from license_message buffer rather than reading some garbage
|
|
||||||
// data.
|
|
||||||
license_messages.set_message_size(
|
|
||||||
sizeof(license_messages.response_data()) + message_length);
|
|
||||||
}
|
|
||||||
f(message_length, &license_messages);
|
|
||||||
if (update_core_message_substring_values) {
|
|
||||||
// We will be updating offset for these tests, which will cause verify
|
|
||||||
// keys to fail with an assertion. Hence skipping verification.
|
|
||||||
verify_keys_loaded = false;
|
|
||||||
}
|
|
||||||
license_messages.EncryptAndSignResponse();
|
|
||||||
OEMCryptoResult result =
|
|
||||||
license_messages.LoadResponse(&s, verify_keys_loaded);
|
|
||||||
s.close();
|
|
||||||
return result;
|
|
||||||
};
|
|
||||||
TestHugeLengthDoesNotCrashAPI(oemcrypto_function, check_status);
|
|
||||||
}
|
|
||||||
|
|
||||||
void TestLoadLicenseForOutOfRangeSubStringOffSetAndLengths(
|
|
||||||
const std::function<void(size_t, LicenseRoundTrip*)> f) {
|
|
||||||
Session s;
|
|
||||||
LicenseRoundTrip license_messages(&s);
|
|
||||||
s.open();
|
|
||||||
InstallTestRSAKey(&s);
|
|
||||||
license_messages.SignAndVerifyRequest();
|
|
||||||
license_messages.CreateDefaultResponse();
|
|
||||||
size_t message_length = sizeof(license_messages.response_data());
|
|
||||||
f(message_length, &license_messages);
|
|
||||||
license_messages.EncryptAndSignResponse();
|
|
||||||
OEMCryptoResult result = license_messages.LoadResponse();
|
|
||||||
s.close();
|
|
||||||
// Verifying error is not due to signature failure which can be caused due
|
|
||||||
// to test code.
|
|
||||||
ASSERT_NE(OEMCrypto_ERROR_SIGNATURE_FAILURE, result);
|
|
||||||
ASSERT_NE(OEMCrypto_SUCCESS, result);
|
|
||||||
}
|
|
||||||
};
|
};
|
||||||
|
|
||||||
TEST_F(OEMCryptoSessionTests,
|
TEST_F(OEMCryptoSessionTests,
|
||||||
@@ -1695,6 +1642,77 @@ TEST_F(OEMCryptoSessionTests,
|
|||||||
!kCheckStatus);
|
!kCheckStatus);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
class OEMCryptoLicenseOverflowTest : public OEMCryptoSessionTests,
|
||||||
|
public WithParamInterface<uint32_t> {
|
||||||
|
public:
|
||||||
|
OEMCryptoLicenseOverflowTest() : license_api_version_(kCurrentAPI) {}
|
||||||
|
|
||||||
|
void SetUp() override {
|
||||||
|
OEMCryptoSessionTests::SetUp();
|
||||||
|
license_api_version_ = GetParam();
|
||||||
|
}
|
||||||
|
|
||||||
|
void TearDown() override { OEMCryptoSessionTests::TearDown(); }
|
||||||
|
|
||||||
|
void TestLoadLicenseForHugeBufferLengths(
|
||||||
|
const std::function<void(size_t, LicenseRoundTrip*)> f, bool check_status,
|
||||||
|
bool update_core_message_substring_values) {
|
||||||
|
auto oemcrypto_function = [&](size_t message_length) {
|
||||||
|
Session s;
|
||||||
|
LicenseRoundTrip license_messages(&s);
|
||||||
|
license_messages.set_api_version(license_api_version_);
|
||||||
|
s.open();
|
||||||
|
InstallTestRSAKey(&s);
|
||||||
|
bool verify_keys_loaded = true;
|
||||||
|
license_messages.SignAndVerifyRequest();
|
||||||
|
license_messages.CreateDefaultResponse();
|
||||||
|
if (update_core_message_substring_values) {
|
||||||
|
// Make the license message big enough so that updated core message
|
||||||
|
// substring offset and length values from tests are still able to read
|
||||||
|
// data from license_message buffer rather than reading some garbage
|
||||||
|
// data.
|
||||||
|
license_messages.set_message_size(
|
||||||
|
sizeof(license_messages.response_data()) + message_length);
|
||||||
|
}
|
||||||
|
f(message_length, &license_messages);
|
||||||
|
if (update_core_message_substring_values) {
|
||||||
|
// We will be updating offset for these tests, which will cause verify
|
||||||
|
// keys to fail with an assertion. Hence skipping verification.
|
||||||
|
verify_keys_loaded = false;
|
||||||
|
}
|
||||||
|
license_messages.EncryptAndSignResponse();
|
||||||
|
OEMCryptoResult result =
|
||||||
|
license_messages.LoadResponse(&s, verify_keys_loaded);
|
||||||
|
s.close();
|
||||||
|
return result;
|
||||||
|
};
|
||||||
|
TestHugeLengthDoesNotCrashAPI(oemcrypto_function, check_status);
|
||||||
|
}
|
||||||
|
|
||||||
|
void TestLoadLicenseForOutOfRangeSubStringOffSetAndLengths(
|
||||||
|
const std::function<void(size_t, LicenseRoundTrip*)> f) {
|
||||||
|
Session s;
|
||||||
|
LicenseRoundTrip license_messages(&s);
|
||||||
|
license_messages.set_api_version(license_api_version_);
|
||||||
|
s.open();
|
||||||
|
InstallTestRSAKey(&s);
|
||||||
|
license_messages.SignAndVerifyRequest();
|
||||||
|
license_messages.CreateDefaultResponse();
|
||||||
|
size_t message_length = sizeof(license_messages.response_data());
|
||||||
|
OEMCryptoResult result = license_messages.LoadResponse();
|
||||||
|
f(message_length, &license_messages);
|
||||||
|
license_messages.EncryptAndSignResponse();
|
||||||
|
s.close();
|
||||||
|
// Verifying error is not due to signature failure which can be caused due
|
||||||
|
// to test code.
|
||||||
|
ASSERT_NE(OEMCrypto_ERROR_SIGNATURE_FAILURE, result);
|
||||||
|
ASSERT_NE(OEMCrypto_SUCCESS, result);
|
||||||
|
}
|
||||||
|
|
||||||
|
protected:
|
||||||
|
uint32_t license_api_version_;
|
||||||
|
};
|
||||||
|
|
||||||
// This class is for testing a single license with the default API version
|
// This class is for testing a single license with the default API version
|
||||||
// of 16. Used for buffer overflow tests.
|
// of 16. Used for buffer overflow tests.
|
||||||
class OEMCryptoMemoryLicenseTest : public OEMCryptoLicenseTestAPI16 {
|
class OEMCryptoMemoryLicenseTest : public OEMCryptoLicenseTestAPI16 {
|
||||||
@@ -3424,7 +3442,7 @@ TEST_F(OEMCryptoSessionTests,
|
|||||||
TestHugeLengthDoesNotCrashAPI(oemcrypto_function, !kCheckStatus);
|
TestHugeLengthDoesNotCrashAPI(oemcrypto_function, !kCheckStatus);
|
||||||
}
|
}
|
||||||
|
|
||||||
TEST_F(OEMCryptoSessionTests,
|
TEST_P(OEMCryptoLicenseOverflowTest,
|
||||||
OEMCryptoMemoryLoadLicenseForHugeCoreMessageSubstringKeyIdLength) {
|
OEMCryptoMemoryLoadLicenseForHugeCoreMessageSubstringKeyIdLength) {
|
||||||
TestLoadLicenseForHugeBufferLengths(
|
TestLoadLicenseForHugeBufferLengths(
|
||||||
[](size_t length, LicenseRoundTrip* license_messages) {
|
[](size_t length, LicenseRoundTrip* license_messages) {
|
||||||
@@ -3434,7 +3452,7 @@ TEST_F(OEMCryptoSessionTests,
|
|||||||
!kCheckStatus, kUpdateCoreMessageSubstringValues);
|
!kCheckStatus, kUpdateCoreMessageSubstringValues);
|
||||||
}
|
}
|
||||||
|
|
||||||
TEST_F(OEMCryptoSessionTests,
|
TEST_P(OEMCryptoLicenseOverflowTest,
|
||||||
OEMCryptoMemoryLoadLicenseForHugeCoreMessageSubstringKeyIdOffset) {
|
OEMCryptoMemoryLoadLicenseForHugeCoreMessageSubstringKeyIdOffset) {
|
||||||
TestLoadLicenseForHugeBufferLengths(
|
TestLoadLicenseForHugeBufferLengths(
|
||||||
[](size_t offset, LicenseRoundTrip* license_messages) {
|
[](size_t offset, LicenseRoundTrip* license_messages) {
|
||||||
@@ -3443,7 +3461,7 @@ TEST_F(OEMCryptoSessionTests,
|
|||||||
!kCheckStatus, kUpdateCoreMessageSubstringValues);
|
!kCheckStatus, kUpdateCoreMessageSubstringValues);
|
||||||
}
|
}
|
||||||
|
|
||||||
TEST_F(OEMCryptoSessionTests,
|
TEST_P(OEMCryptoLicenseOverflowTest,
|
||||||
OEMCryptoMemoryLoadLicenseForOutOfRangeCoreMessageSubstringKeyIdLength) {
|
OEMCryptoMemoryLoadLicenseForOutOfRangeCoreMessageSubstringKeyIdLength) {
|
||||||
TestLoadLicenseForOutOfRangeSubStringOffSetAndLengths(
|
TestLoadLicenseForOutOfRangeSubStringOffSetAndLengths(
|
||||||
[](size_t response_message_length, LicenseRoundTrip* license_messages) {
|
[](size_t response_message_length, LicenseRoundTrip* license_messages) {
|
||||||
@@ -3452,7 +3470,7 @@ TEST_F(OEMCryptoSessionTests,
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
TEST_F(OEMCryptoSessionTests,
|
TEST_P(OEMCryptoLicenseOverflowTest,
|
||||||
OEMCryptoMemoryLoadLicenseForOutOfRangeCoreMessageSubstringKeyIdOffset) {
|
OEMCryptoMemoryLoadLicenseForOutOfRangeCoreMessageSubstringKeyIdOffset) {
|
||||||
TestLoadLicenseForOutOfRangeSubStringOffSetAndLengths(
|
TestLoadLicenseForOutOfRangeSubStringOffSetAndLengths(
|
||||||
[](size_t response_message_length, LicenseRoundTrip* license_messages) {
|
[](size_t response_message_length, LicenseRoundTrip* license_messages) {
|
||||||
@@ -3461,7 +3479,7 @@ TEST_F(OEMCryptoSessionTests,
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
TEST_F(OEMCryptoSessionTests,
|
TEST_P(OEMCryptoLicenseOverflowTest,
|
||||||
OEMCryptoMemoryLoadLicenseForHugeCoreMessageSubstringKeyDataIvLength) {
|
OEMCryptoMemoryLoadLicenseForHugeCoreMessageSubstringKeyDataIvLength) {
|
||||||
TestLoadLicenseForHugeBufferLengths(
|
TestLoadLicenseForHugeBufferLengths(
|
||||||
[](size_t length, LicenseRoundTrip* license_messages) {
|
[](size_t length, LicenseRoundTrip* license_messages) {
|
||||||
@@ -3471,7 +3489,7 @@ TEST_F(OEMCryptoSessionTests,
|
|||||||
!kCheckStatus, kUpdateCoreMessageSubstringValues);
|
!kCheckStatus, kUpdateCoreMessageSubstringValues);
|
||||||
}
|
}
|
||||||
|
|
||||||
TEST_F(OEMCryptoSessionTests,
|
TEST_P(OEMCryptoLicenseOverflowTest,
|
||||||
OEMCryptoMemoryLoadLicenseForHugeCoreMessageSubstringKeyDataIvOffset) {
|
OEMCryptoMemoryLoadLicenseForHugeCoreMessageSubstringKeyDataIvOffset) {
|
||||||
TestLoadLicenseForHugeBufferLengths(
|
TestLoadLicenseForHugeBufferLengths(
|
||||||
[](size_t offset, LicenseRoundTrip* license_messages) {
|
[](size_t offset, LicenseRoundTrip* license_messages) {
|
||||||
@@ -3481,8 +3499,8 @@ TEST_F(OEMCryptoSessionTests,
|
|||||||
!kCheckStatus, kUpdateCoreMessageSubstringValues);
|
!kCheckStatus, kUpdateCoreMessageSubstringValues);
|
||||||
}
|
}
|
||||||
|
|
||||||
TEST_F(
|
TEST_P(
|
||||||
OEMCryptoSessionTests,
|
OEMCryptoLicenseOverflowTest,
|
||||||
OEMCryptoMemoryLoadLicenseForOutOfRangeCoreMessageSubstringKeyDataIvLength) {
|
OEMCryptoMemoryLoadLicenseForOutOfRangeCoreMessageSubstringKeyDataIvLength) {
|
||||||
TestLoadLicenseForOutOfRangeSubStringOffSetAndLengths(
|
TestLoadLicenseForOutOfRangeSubStringOffSetAndLengths(
|
||||||
[](size_t response_message_length, LicenseRoundTrip* license_messages) {
|
[](size_t response_message_length, LicenseRoundTrip* license_messages) {
|
||||||
@@ -3492,8 +3510,8 @@ TEST_F(
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
TEST_F(
|
TEST_P(
|
||||||
OEMCryptoSessionTests,
|
OEMCryptoLicenseOverflowTest,
|
||||||
OEMCryptoMemoryLoadLicenseForOutOfRangeCoreMessageSubstringKeyDataIvOffset) {
|
OEMCryptoMemoryLoadLicenseForOutOfRangeCoreMessageSubstringKeyDataIvOffset) {
|
||||||
TestLoadLicenseForOutOfRangeSubStringOffSetAndLengths(
|
TestLoadLicenseForOutOfRangeSubStringOffSetAndLengths(
|
||||||
[](size_t response_message_length, LicenseRoundTrip* license_messages) {
|
[](size_t response_message_length, LicenseRoundTrip* license_messages) {
|
||||||
@@ -3503,7 +3521,7 @@ TEST_F(
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
TEST_F(OEMCryptoSessionTests,
|
TEST_P(OEMCryptoLicenseOverflowTest,
|
||||||
OEMCryptoMemoryLoadLicenseForHugeCoreMessageSubstringKeyDataLength) {
|
OEMCryptoMemoryLoadLicenseForHugeCoreMessageSubstringKeyDataLength) {
|
||||||
TestLoadLicenseForHugeBufferLengths(
|
TestLoadLicenseForHugeBufferLengths(
|
||||||
[](size_t length, LicenseRoundTrip* license_messages) {
|
[](size_t length, LicenseRoundTrip* license_messages) {
|
||||||
@@ -3513,7 +3531,7 @@ TEST_F(OEMCryptoSessionTests,
|
|||||||
!kCheckStatus, kUpdateCoreMessageSubstringValues);
|
!kCheckStatus, kUpdateCoreMessageSubstringValues);
|
||||||
}
|
}
|
||||||
|
|
||||||
TEST_F(OEMCryptoSessionTests,
|
TEST_P(OEMCryptoLicenseOverflowTest,
|
||||||
OEMCryptoMemoryLoadLicenseForHugeCoreMessageSubstringKeyDataOffset) {
|
OEMCryptoMemoryLoadLicenseForHugeCoreMessageSubstringKeyDataOffset) {
|
||||||
TestLoadLicenseForHugeBufferLengths(
|
TestLoadLicenseForHugeBufferLengths(
|
||||||
[](size_t offset, LicenseRoundTrip* license_messages) {
|
[](size_t offset, LicenseRoundTrip* license_messages) {
|
||||||
@@ -3522,8 +3540,8 @@ TEST_F(OEMCryptoSessionTests,
|
|||||||
!kCheckStatus, kUpdateCoreMessageSubstringValues);
|
!kCheckStatus, kUpdateCoreMessageSubstringValues);
|
||||||
}
|
}
|
||||||
|
|
||||||
TEST_F(
|
TEST_P(
|
||||||
OEMCryptoSessionTests,
|
OEMCryptoLicenseOverflowTest,
|
||||||
OEMCryptoMemoryLoadLicenseForOutOfRangeCoreMessageSubstringKeyDataLength) {
|
OEMCryptoMemoryLoadLicenseForOutOfRangeCoreMessageSubstringKeyDataLength) {
|
||||||
TestLoadLicenseForOutOfRangeSubStringOffSetAndLengths(
|
TestLoadLicenseForOutOfRangeSubStringOffSetAndLengths(
|
||||||
[](size_t response_message_length, LicenseRoundTrip* license_messages) {
|
[](size_t response_message_length, LicenseRoundTrip* license_messages) {
|
||||||
@@ -3533,8 +3551,8 @@ TEST_F(
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
TEST_F(
|
TEST_P(
|
||||||
OEMCryptoSessionTests,
|
OEMCryptoLicenseOverflowTest,
|
||||||
OEMCryptoMemoryLoadLicenseForOutOfRangeCoreMessageSubstringKeyDataOffset) {
|
OEMCryptoMemoryLoadLicenseForOutOfRangeCoreMessageSubstringKeyDataOffset) {
|
||||||
TestLoadLicenseForOutOfRangeSubStringOffSetAndLengths(
|
TestLoadLicenseForOutOfRangeSubStringOffSetAndLengths(
|
||||||
[](size_t response_message_length, LicenseRoundTrip* license_messages) {
|
[](size_t response_message_length, LicenseRoundTrip* license_messages) {
|
||||||
@@ -3544,8 +3562,8 @@ TEST_F(
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
TEST_F(
|
TEST_P(
|
||||||
OEMCryptoSessionTests,
|
OEMCryptoLicenseOverflowTest,
|
||||||
OEMCryptoMemoryLoadLicenseForHugeCoreMessageSubstringKeyControlIvLength) {
|
OEMCryptoMemoryLoadLicenseForHugeCoreMessageSubstringKeyControlIvLength) {
|
||||||
TestLoadLicenseForHugeBufferLengths(
|
TestLoadLicenseForHugeBufferLengths(
|
||||||
[](size_t length, LicenseRoundTrip* license_messages) {
|
[](size_t length, LicenseRoundTrip* license_messages) {
|
||||||
@@ -3555,8 +3573,8 @@ TEST_F(
|
|||||||
!kCheckStatus, kUpdateCoreMessageSubstringValues);
|
!kCheckStatus, kUpdateCoreMessageSubstringValues);
|
||||||
}
|
}
|
||||||
|
|
||||||
TEST_F(
|
TEST_P(
|
||||||
OEMCryptoSessionTests,
|
OEMCryptoLicenseOverflowTest,
|
||||||
OEMCryptoMemoryLoadLicenseForHugeCoreMessageSubstringKeyControlIvOffset) {
|
OEMCryptoMemoryLoadLicenseForHugeCoreMessageSubstringKeyControlIvOffset) {
|
||||||
TestLoadLicenseForHugeBufferLengths(
|
TestLoadLicenseForHugeBufferLengths(
|
||||||
[](size_t offset, LicenseRoundTrip* license_messages) {
|
[](size_t offset, LicenseRoundTrip* license_messages) {
|
||||||
@@ -3566,8 +3584,8 @@ TEST_F(
|
|||||||
!kCheckStatus, kUpdateCoreMessageSubstringValues);
|
!kCheckStatus, kUpdateCoreMessageSubstringValues);
|
||||||
}
|
}
|
||||||
|
|
||||||
TEST_F(
|
TEST_P(
|
||||||
OEMCryptoSessionTests,
|
OEMCryptoLicenseOverflowTest,
|
||||||
OEMCryptoMemoryLoadLicenseForOutOfRangeCoreMessageSubstringKeyControlIvLength) {
|
OEMCryptoMemoryLoadLicenseForOutOfRangeCoreMessageSubstringKeyControlIvLength) {
|
||||||
TestLoadLicenseForOutOfRangeSubStringOffSetAndLengths(
|
TestLoadLicenseForOutOfRangeSubStringOffSetAndLengths(
|
||||||
[](size_t response_message_length, LicenseRoundTrip* license_messages) {
|
[](size_t response_message_length, LicenseRoundTrip* license_messages) {
|
||||||
@@ -3578,8 +3596,8 @@ TEST_F(
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
TEST_F(
|
TEST_P(
|
||||||
OEMCryptoSessionTests,
|
OEMCryptoLicenseOverflowTest,
|
||||||
OEMCryptoMemoryLoadLicenseForOutOfRangeCoreMessageSubstringKeyControlIvOffset) {
|
OEMCryptoMemoryLoadLicenseForOutOfRangeCoreMessageSubstringKeyControlIvOffset) {
|
||||||
TestLoadLicenseForOutOfRangeSubStringOffSetAndLengths(
|
TestLoadLicenseForOutOfRangeSubStringOffSetAndLengths(
|
||||||
[](size_t response_message_length, LicenseRoundTrip* license_messages) {
|
[](size_t response_message_length, LicenseRoundTrip* license_messages) {
|
||||||
@@ -3590,7 +3608,7 @@ TEST_F(
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
TEST_F(OEMCryptoSessionTests,
|
TEST_P(OEMCryptoLicenseOverflowTest,
|
||||||
OEMCryptoMemoryLoadLicenseForHugeCoreMessageSubstringKeyControlLength) {
|
OEMCryptoMemoryLoadLicenseForHugeCoreMessageSubstringKeyControlLength) {
|
||||||
TestLoadLicenseForHugeBufferLengths(
|
TestLoadLicenseForHugeBufferLengths(
|
||||||
[](size_t length, LicenseRoundTrip* license_messages) {
|
[](size_t length, LicenseRoundTrip* license_messages) {
|
||||||
@@ -3600,7 +3618,7 @@ TEST_F(OEMCryptoSessionTests,
|
|||||||
!kCheckStatus, kUpdateCoreMessageSubstringValues);
|
!kCheckStatus, kUpdateCoreMessageSubstringValues);
|
||||||
}
|
}
|
||||||
|
|
||||||
TEST_F(OEMCryptoSessionTests,
|
TEST_P(OEMCryptoLicenseOverflowTest,
|
||||||
OEMCryptoMemoryLoadLicenseForHugeCoreMessageSubstringKeyControlOffset) {
|
OEMCryptoMemoryLoadLicenseForHugeCoreMessageSubstringKeyControlOffset) {
|
||||||
TestLoadLicenseForHugeBufferLengths(
|
TestLoadLicenseForHugeBufferLengths(
|
||||||
[](size_t offset, LicenseRoundTrip* license_messages) {
|
[](size_t offset, LicenseRoundTrip* license_messages) {
|
||||||
@@ -3610,8 +3628,8 @@ TEST_F(OEMCryptoSessionTests,
|
|||||||
!kCheckStatus, kUpdateCoreMessageSubstringValues);
|
!kCheckStatus, kUpdateCoreMessageSubstringValues);
|
||||||
}
|
}
|
||||||
|
|
||||||
TEST_F(
|
TEST_P(
|
||||||
OEMCryptoSessionTests,
|
OEMCryptoLicenseOverflowTest,
|
||||||
OEMCryptoMemoryLoadLicenseForOutOfRangeCoreMessageSubstringKeyControlLength) {
|
OEMCryptoMemoryLoadLicenseForOutOfRangeCoreMessageSubstringKeyControlLength) {
|
||||||
TestLoadLicenseForOutOfRangeSubStringOffSetAndLengths(
|
TestLoadLicenseForOutOfRangeSubStringOffSetAndLengths(
|
||||||
[](size_t response_message_length, LicenseRoundTrip* license_messages) {
|
[](size_t response_message_length, LicenseRoundTrip* license_messages) {
|
||||||
@@ -3621,8 +3639,8 @@ TEST_F(
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
TEST_F(
|
TEST_P(
|
||||||
OEMCryptoSessionTests,
|
OEMCryptoLicenseOverflowTest,
|
||||||
OEMCryptoMemoryLoadLicenseForOutOfRangeCoreMessageSubstringKeyControlOffset) {
|
OEMCryptoMemoryLoadLicenseForOutOfRangeCoreMessageSubstringKeyControlOffset) {
|
||||||
TestLoadLicenseForOutOfRangeSubStringOffSetAndLengths(
|
TestLoadLicenseForOutOfRangeSubStringOffSetAndLengths(
|
||||||
[](size_t response_message_length, LicenseRoundTrip* license_messages) {
|
[](size_t response_message_length, LicenseRoundTrip* license_messages) {
|
||||||
@@ -3632,7 +3650,7 @@ TEST_F(
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
TEST_F(OEMCryptoSessionTests,
|
TEST_P(OEMCryptoLicenseOverflowTest,
|
||||||
OEMCryptoMemoryLoadLicenseForHugeCoreMessageSubstringEncMacKeyIvLength) {
|
OEMCryptoMemoryLoadLicenseForHugeCoreMessageSubstringEncMacKeyIvLength) {
|
||||||
TestLoadLicenseForHugeBufferLengths(
|
TestLoadLicenseForHugeBufferLengths(
|
||||||
[](size_t length, LicenseRoundTrip* license_messages) {
|
[](size_t length, LicenseRoundTrip* license_messages) {
|
||||||
@@ -3641,7 +3659,7 @@ TEST_F(OEMCryptoSessionTests,
|
|||||||
!kCheckStatus, kUpdateCoreMessageSubstringValues);
|
!kCheckStatus, kUpdateCoreMessageSubstringValues);
|
||||||
}
|
}
|
||||||
|
|
||||||
TEST_F(OEMCryptoSessionTests,
|
TEST_P(OEMCryptoLicenseOverflowTest,
|
||||||
OEMCryptoMemoryLoadLicenseForHugeCoreMessageSubstringEncMacKeyIvOffset) {
|
OEMCryptoMemoryLoadLicenseForHugeCoreMessageSubstringEncMacKeyIvOffset) {
|
||||||
TestLoadLicenseForHugeBufferLengths(
|
TestLoadLicenseForHugeBufferLengths(
|
||||||
[](size_t offset, LicenseRoundTrip* license_messages) {
|
[](size_t offset, LicenseRoundTrip* license_messages) {
|
||||||
@@ -3650,8 +3668,8 @@ TEST_F(OEMCryptoSessionTests,
|
|||||||
!kCheckStatus, kUpdateCoreMessageSubstringValues);
|
!kCheckStatus, kUpdateCoreMessageSubstringValues);
|
||||||
}
|
}
|
||||||
|
|
||||||
TEST_F(
|
TEST_P(
|
||||||
OEMCryptoSessionTests,
|
OEMCryptoLicenseOverflowTest,
|
||||||
OEMCryptoMemoryLoadLicenseForOutOfRangeCoreMessageSubstringEncMacKeyIvLength) {
|
OEMCryptoMemoryLoadLicenseForOutOfRangeCoreMessageSubstringEncMacKeyIvLength) {
|
||||||
TestLoadLicenseForOutOfRangeSubStringOffSetAndLengths(
|
TestLoadLicenseForOutOfRangeSubStringOffSetAndLengths(
|
||||||
[](size_t response_message_length, LicenseRoundTrip* license_messages) {
|
[](size_t response_message_length, LicenseRoundTrip* license_messages) {
|
||||||
@@ -3662,8 +3680,8 @@ TEST_F(
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
TEST_F(
|
TEST_P(
|
||||||
OEMCryptoSessionTests,
|
OEMCryptoLicenseOverflowTest,
|
||||||
OEMCryptoMemoryLoadLicenseForOutOfRangeCoreMessageSubstringEncMacKeyIvOffset) {
|
OEMCryptoMemoryLoadLicenseForOutOfRangeCoreMessageSubstringEncMacKeyIvOffset) {
|
||||||
TestLoadLicenseForOutOfRangeSubStringOffSetAndLengths(
|
TestLoadLicenseForOutOfRangeSubStringOffSetAndLengths(
|
||||||
[](size_t response_message_length, LicenseRoundTrip* license_messages) {
|
[](size_t response_message_length, LicenseRoundTrip* license_messages) {
|
||||||
@@ -3674,7 +3692,7 @@ TEST_F(
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
TEST_F(OEMCryptoSessionTests,
|
TEST_P(OEMCryptoLicenseOverflowTest,
|
||||||
OEMCryptoMemoryLoadLicenseForHugeCoreMessageSubstringEncMacKeyLength) {
|
OEMCryptoMemoryLoadLicenseForHugeCoreMessageSubstringEncMacKeyLength) {
|
||||||
TestLoadLicenseForHugeBufferLengths(
|
TestLoadLicenseForHugeBufferLengths(
|
||||||
[](size_t length, LicenseRoundTrip* license_messages) {
|
[](size_t length, LicenseRoundTrip* license_messages) {
|
||||||
@@ -3683,7 +3701,7 @@ TEST_F(OEMCryptoSessionTests,
|
|||||||
!kCheckStatus, kUpdateCoreMessageSubstringValues);
|
!kCheckStatus, kUpdateCoreMessageSubstringValues);
|
||||||
}
|
}
|
||||||
|
|
||||||
TEST_F(OEMCryptoSessionTests,
|
TEST_P(OEMCryptoLicenseOverflowTest,
|
||||||
OEMCryptoMemoryLoadLicenseForHugeCoreMessageSubstringEncMacKeyOffset) {
|
OEMCryptoMemoryLoadLicenseForHugeCoreMessageSubstringEncMacKeyOffset) {
|
||||||
TestLoadLicenseForHugeBufferLengths(
|
TestLoadLicenseForHugeBufferLengths(
|
||||||
[](size_t offset, LicenseRoundTrip* license_messages) {
|
[](size_t offset, LicenseRoundTrip* license_messages) {
|
||||||
@@ -3692,8 +3710,8 @@ TEST_F(OEMCryptoSessionTests,
|
|||||||
!kCheckStatus, kUpdateCoreMessageSubstringValues);
|
!kCheckStatus, kUpdateCoreMessageSubstringValues);
|
||||||
}
|
}
|
||||||
|
|
||||||
TEST_F(
|
TEST_P(
|
||||||
OEMCryptoSessionTests,
|
OEMCryptoLicenseOverflowTest,
|
||||||
OEMCryptoMemoryLoadLicenseForOutOfRangeCoreMessageSubstringEncMacKeyLength) {
|
OEMCryptoMemoryLoadLicenseForOutOfRangeCoreMessageSubstringEncMacKeyLength) {
|
||||||
TestLoadLicenseForOutOfRangeSubStringOffSetAndLengths(
|
TestLoadLicenseForOutOfRangeSubStringOffSetAndLengths(
|
||||||
[](size_t response_message_length, LicenseRoundTrip* license_messages) {
|
[](size_t response_message_length, LicenseRoundTrip* license_messages) {
|
||||||
@@ -3702,8 +3720,8 @@ TEST_F(
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
TEST_F(
|
TEST_P(
|
||||||
OEMCryptoSessionTests,
|
OEMCryptoLicenseOverflowTest,
|
||||||
OEMCryptoMemoryLoadLicenseForOutOfRangeCoreMessageSubstringEncMacKeyOffset) {
|
OEMCryptoMemoryLoadLicenseForOutOfRangeCoreMessageSubstringEncMacKeyOffset) {
|
||||||
TestLoadLicenseForOutOfRangeSubStringOffSetAndLengths(
|
TestLoadLicenseForOutOfRangeSubStringOffSetAndLengths(
|
||||||
[](size_t response_message_length, LicenseRoundTrip* license_messages) {
|
[](size_t response_message_length, LicenseRoundTrip* license_messages) {
|
||||||
@@ -3712,7 +3730,7 @@ TEST_F(
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
TEST_F(OEMCryptoSessionTests,
|
TEST_P(OEMCryptoLicenseOverflowTest,
|
||||||
OEMCryptoMemoryLoadLicenseForHugeCoreMessageSubstringPstLength) {
|
OEMCryptoMemoryLoadLicenseForHugeCoreMessageSubstringPstLength) {
|
||||||
TestLoadLicenseForHugeBufferLengths(
|
TestLoadLicenseForHugeBufferLengths(
|
||||||
[](size_t length, LicenseRoundTrip* license_messages) {
|
[](size_t length, LicenseRoundTrip* license_messages) {
|
||||||
@@ -3721,7 +3739,7 @@ TEST_F(OEMCryptoSessionTests,
|
|||||||
!kCheckStatus, kUpdateCoreMessageSubstringValues);
|
!kCheckStatus, kUpdateCoreMessageSubstringValues);
|
||||||
}
|
}
|
||||||
|
|
||||||
TEST_F(OEMCryptoSessionTests,
|
TEST_P(OEMCryptoLicenseOverflowTest,
|
||||||
OEMCryptoMemoryLoadLicenseForHugeCoreMessageSubstringPstOffset) {
|
OEMCryptoMemoryLoadLicenseForHugeCoreMessageSubstringPstOffset) {
|
||||||
TestLoadLicenseForHugeBufferLengths(
|
TestLoadLicenseForHugeBufferLengths(
|
||||||
[](size_t offset, LicenseRoundTrip* license_messages) {
|
[](size_t offset, LicenseRoundTrip* license_messages) {
|
||||||
@@ -3730,7 +3748,7 @@ TEST_F(OEMCryptoSessionTests,
|
|||||||
!kCheckStatus, kUpdateCoreMessageSubstringValues);
|
!kCheckStatus, kUpdateCoreMessageSubstringValues);
|
||||||
}
|
}
|
||||||
|
|
||||||
TEST_F(OEMCryptoSessionTests,
|
TEST_P(OEMCryptoLicenseOverflowTest,
|
||||||
OEMCryptoMemoryLoadLicenseForOutOfRangeCoreMessageSubstringPstLength) {
|
OEMCryptoMemoryLoadLicenseForOutOfRangeCoreMessageSubstringPstLength) {
|
||||||
TestLoadLicenseForOutOfRangeSubStringOffSetAndLengths(
|
TestLoadLicenseForOutOfRangeSubStringOffSetAndLengths(
|
||||||
[](size_t response_message_length, LicenseRoundTrip* license_messages) {
|
[](size_t response_message_length, LicenseRoundTrip* license_messages) {
|
||||||
@@ -3739,7 +3757,7 @@ TEST_F(OEMCryptoSessionTests,
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
TEST_F(OEMCryptoSessionTests,
|
TEST_P(OEMCryptoLicenseOverflowTest,
|
||||||
OEMCryptoMemoryLoadLicenseForOutOfRangeCoreMessageSubstringPstOffset) {
|
OEMCryptoMemoryLoadLicenseForOutOfRangeCoreMessageSubstringPstOffset) {
|
||||||
TestLoadLicenseForOutOfRangeSubStringOffSetAndLengths(
|
TestLoadLicenseForOutOfRangeSubStringOffSetAndLengths(
|
||||||
[](size_t response_message_length, LicenseRoundTrip* license_messages) {
|
[](size_t response_message_length, LicenseRoundTrip* license_messages) {
|
||||||
@@ -3748,8 +3766,8 @@ TEST_F(OEMCryptoSessionTests,
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
TEST_F(
|
TEST_P(
|
||||||
OEMCryptoSessionTests,
|
OEMCryptoLicenseOverflowTest,
|
||||||
OEMCryptoMemoryLoadLicenseForHugeCoreMessageSubstringSrmRestrictionDataLength) {
|
OEMCryptoMemoryLoadLicenseForHugeCoreMessageSubstringSrmRestrictionDataLength) {
|
||||||
TestLoadLicenseForHugeBufferLengths(
|
TestLoadLicenseForHugeBufferLengths(
|
||||||
[](size_t length, LicenseRoundTrip* license_messages) {
|
[](size_t length, LicenseRoundTrip* license_messages) {
|
||||||
@@ -3758,8 +3776,8 @@ TEST_F(
|
|||||||
!kCheckStatus, kUpdateCoreMessageSubstringValues);
|
!kCheckStatus, kUpdateCoreMessageSubstringValues);
|
||||||
}
|
}
|
||||||
|
|
||||||
TEST_F(
|
TEST_P(
|
||||||
OEMCryptoSessionTests,
|
OEMCryptoLicenseOverflowTest,
|
||||||
OEMCryptoMemoryLoadLicenseForHugeCoreMessageSubstringSrmRestrictionDataOffset) {
|
OEMCryptoMemoryLoadLicenseForHugeCoreMessageSubstringSrmRestrictionDataOffset) {
|
||||||
TestLoadLicenseForHugeBufferLengths(
|
TestLoadLicenseForHugeBufferLengths(
|
||||||
[](size_t offset, LicenseRoundTrip* license_messages) {
|
[](size_t offset, LicenseRoundTrip* license_messages) {
|
||||||
@@ -3768,8 +3786,8 @@ TEST_F(
|
|||||||
!kCheckStatus, kUpdateCoreMessageSubstringValues);
|
!kCheckStatus, kUpdateCoreMessageSubstringValues);
|
||||||
}
|
}
|
||||||
|
|
||||||
TEST_F(
|
TEST_P(
|
||||||
OEMCryptoSessionTests,
|
OEMCryptoLicenseOverflowTest,
|
||||||
OEMCryptoMemoryLoadLicenseForOutOfRangeCoreMessageSubstringSrmRestrictionDataLength) {
|
OEMCryptoMemoryLoadLicenseForOutOfRangeCoreMessageSubstringSrmRestrictionDataLength) {
|
||||||
TestLoadLicenseForOutOfRangeSubStringOffSetAndLengths(
|
TestLoadLicenseForOutOfRangeSubStringOffSetAndLengths(
|
||||||
[](size_t response_message_length, LicenseRoundTrip* license_messages) {
|
[](size_t response_message_length, LicenseRoundTrip* license_messages) {
|
||||||
@@ -3780,8 +3798,8 @@ TEST_F(
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
TEST_F(
|
TEST_P(
|
||||||
OEMCryptoSessionTests,
|
OEMCryptoLicenseOverflowTest,
|
||||||
OEMCryptoMemoryLoadLicenseForOutOfRangeCoreMessageSubstringSrmRestrictionDataOffset) {
|
OEMCryptoMemoryLoadLicenseForOutOfRangeCoreMessageSubstringSrmRestrictionDataOffset) {
|
||||||
TestLoadLicenseForOutOfRangeSubStringOffSetAndLengths(
|
TestLoadLicenseForOutOfRangeSubStringOffSetAndLengths(
|
||||||
[](size_t response_message_length, LicenseRoundTrip* license_messages) {
|
[](size_t response_message_length, LicenseRoundTrip* license_messages) {
|
||||||
@@ -3792,7 +3810,8 @@ TEST_F(
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
TEST_F(OEMCryptoSessionTests, OEMCryptoMemoryLoadLicenseForHugeResponseLength) {
|
TEST_P(OEMCryptoLicenseOverflowTest,
|
||||||
|
OEMCryptoMemoryLoadLicenseForHugeResponseLength) {
|
||||||
TestLoadLicenseForHugeBufferLengths(
|
TestLoadLicenseForHugeBufferLengths(
|
||||||
[](size_t message_size, LicenseRoundTrip* license_messages) {
|
[](size_t message_size, LicenseRoundTrip* license_messages) {
|
||||||
license_messages->set_message_size(message_size);
|
license_messages->set_message_size(message_size);
|
||||||
@@ -3800,7 +3819,7 @@ TEST_F(OEMCryptoSessionTests, OEMCryptoMemoryLoadLicenseForHugeResponseLength) {
|
|||||||
!kCheckStatus, !kUpdateCoreMessageSubstringValues);
|
!kCheckStatus, !kUpdateCoreMessageSubstringValues);
|
||||||
}
|
}
|
||||||
|
|
||||||
TEST_F(OEMCryptoSessionTests,
|
TEST_P(OEMCryptoLicenseOverflowTest,
|
||||||
OEMCryptoMemoryLoadLicenseForHugeCoreMessageLength) {
|
OEMCryptoMemoryLoadLicenseForHugeCoreMessageLength) {
|
||||||
TestLoadLicenseForHugeBufferLengths(
|
TestLoadLicenseForHugeBufferLengths(
|
||||||
[](size_t message_size, LicenseRoundTrip* license_messages) {
|
[](size_t message_size, LicenseRoundTrip* license_messages) {
|
||||||
@@ -3809,6 +3828,9 @@ TEST_F(OEMCryptoSessionTests,
|
|||||||
!kCheckStatus, !kUpdateCoreMessageSubstringValues);
|
!kCheckStatus, !kUpdateCoreMessageSubstringValues);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
INSTANTIATE_TEST_SUITE_P(TestAll, OEMCryptoLicenseOverflowTest,
|
||||||
|
Range<uint32_t>(kCurrentAPI - 1, kCurrentAPI + 1));
|
||||||
|
|
||||||
TEST_F(OEMCryptoSessionTests, OEMCryptoMemoryLoadRenewalForHugeResponseLength) {
|
TEST_F(OEMCryptoSessionTests, OEMCryptoMemoryLoadRenewalForHugeResponseLength) {
|
||||||
auto oemcrypto_function = [&](size_t message_size) {
|
auto oemcrypto_function = [&](size_t message_size) {
|
||||||
Session s;
|
Session s;
|
||||||
|
|||||||
Reference in New Issue
Block a user