Source release 18.5.0
This commit is contained in:
@@ -175,9 +175,15 @@ TEST_F(OEMCryptoSessionTests, MasterGeneration_IncrementCounterAPI18) {
|
||||
|
||||
ASSERT_TRUE(prov_count2 == prov_count1);
|
||||
ASSERT_TRUE(lic_count2 > lic_count1);
|
||||
ASSERT_TRUE(decrypt_count2 > decrypt_count1);
|
||||
ASSERT_TRUE(master_generation_number2 > master_generation_number1);
|
||||
|
||||
// Log if decrypt counter hasn't gone up. Not a hard requirement, so don't
|
||||
// assert for it.
|
||||
if (decrypt_count2 <= decrypt_count1) {
|
||||
LOGE("Decrypt count did not increase.");
|
||||
}
|
||||
}
|
||||
|
||||
TEST_P(OEMCryptoUsageTableTest,
|
||||
OEMCryptoMemoryLoadUsageEntryForHugeInvalidUsageEntryNumber) {
|
||||
LicenseWithUsageEntry entry;
|
||||
@@ -440,6 +446,9 @@ TEST_P(OEMCryptoUsageTableTest, LoadEntryInMultipleSessions) {
|
||||
|
||||
// Test generic encrypt when the license uses a PST.
|
||||
TEST_P(OEMCryptoUsageTableTest, GenericCryptoEncrypt) {
|
||||
if (!wvoec::global_features.generic_crypto) {
|
||||
GTEST_SKIP() << "Test for devices with generic crypto API only";
|
||||
}
|
||||
LicenseWithUsageEntry entry;
|
||||
entry.license_messages().set_api_version(license_api_version_);
|
||||
entry.set_generic_crypto(true);
|
||||
@@ -479,6 +488,9 @@ TEST_P(OEMCryptoUsageTableTest, GenericCryptoEncrypt) {
|
||||
|
||||
// Test generic decrypt when the license uses a PST.
|
||||
TEST_P(OEMCryptoUsageTableTest, GenericCryptoDecrypt) {
|
||||
if (!wvoec::global_features.generic_crypto) {
|
||||
GTEST_SKIP() << "Test for devices with generic crypto API only";
|
||||
}
|
||||
LicenseWithUsageEntry entry;
|
||||
entry.license_messages().set_api_version(license_api_version_);
|
||||
entry.set_generic_crypto(true);
|
||||
@@ -516,6 +528,9 @@ TEST_P(OEMCryptoUsageTableTest, GenericCryptoDecrypt) {
|
||||
|
||||
// Test generic sign when the license uses a PST.
|
||||
TEST_P(OEMCryptoUsageTableTest, GenericCryptoSign) {
|
||||
if (!wvoec::global_features.generic_crypto) {
|
||||
GTEST_SKIP() << "Test for devices with generic crypto API only";
|
||||
}
|
||||
LicenseWithUsageEntry entry;
|
||||
entry.license_messages().set_api_version(license_api_version_);
|
||||
entry.set_generic_crypto(true);
|
||||
@@ -565,6 +580,9 @@ TEST_P(OEMCryptoUsageTableTest, GenericCryptoSign) {
|
||||
|
||||
// Test generic verify when the license uses a PST.
|
||||
TEST_P(OEMCryptoUsageTableTest, GenericCryptoVerify) {
|
||||
if (!wvoec::global_features.generic_crypto) {
|
||||
GTEST_SKIP() << "Test for devices with generic crypto API only";
|
||||
}
|
||||
LicenseWithUsageEntry entry;
|
||||
entry.license_messages().set_api_version(license_api_version_);
|
||||
entry.set_generic_crypto(true);
|
||||
@@ -983,6 +1001,39 @@ TEST_P(OEMCryptoUsageTableDefragTest, MoveUsageEntries) {
|
||||
FailReloadLicense(&entries[3], OEMCrypto_ERROR_UNKNOWN_FAILURE));
|
||||
}
|
||||
|
||||
TEST_P(OEMCryptoUsageTableDefragTest, MakeAndMoveEntry) {
|
||||
// 1. Make an entry then close.
|
||||
LicenseWithUsageEntry entry;
|
||||
ASSERT_NO_FATAL_FAILURE(entry.set_pst("pst 0"));
|
||||
ASSERT_NO_FATAL_FAILURE(entry.MakeOfflineAndClose(this));
|
||||
ASSERT_NO_FATAL_FAILURE(entry.OpenAndReload(this));
|
||||
ASSERT_NO_FATAL_FAILURE(entry.session().close());
|
||||
|
||||
// 2. Make an entry then immediately move it into the previous slot.
|
||||
// Not using helper functions because they shoehorn the session state into
|
||||
// a limited set of possibilities. We want to create the specific case of
|
||||
// immediately moving a newly created entry.
|
||||
|
||||
// Like LicenseWithUsageEntry::MakeAndLoad() but stop after creating the new
|
||||
// usage entry.
|
||||
Session session;
|
||||
ASSERT_NO_FATAL_FAILURE(session.open());
|
||||
ASSERT_NO_FATAL_FAILURE(InstallTestDrmKey(&session));
|
||||
LicenseRoundTrip license_messages_(&session);
|
||||
license_messages_.set_control(wvoec::kControlNonceOrEntry);
|
||||
ASSERT_NO_FATAL_FAILURE(license_messages_.SignAndVerifyRequest());
|
||||
ASSERT_NO_FATAL_FAILURE(license_messages_.CreateDefaultResponse());
|
||||
ASSERT_NO_FATAL_FAILURE(license_messages_.EncryptAndSignResponse());
|
||||
OEMCryptoResult result;
|
||||
ASSERT_NO_FATAL_FAILURE(session.CreateNewUsageEntry(&result));
|
||||
|
||||
// Not the same as Session::MoveUsageEntry, which opens and closes a session
|
||||
// around the move operation. We just want to call MoveEntry on the current
|
||||
// state.
|
||||
ASSERT_EQ(OEMCrypto_SUCCESS, OEMCrypto_MoveEntry(session.session_id(), 0));
|
||||
ASSERT_NO_FATAL_FAILURE(session.close());
|
||||
}
|
||||
|
||||
// A usage table entry cannot be moved into an entry where an open session is
|
||||
// currently using the entry.
|
||||
TEST_P(OEMCryptoUsageTableDefragTest, MoveUsageEntriesToOpenSession) {
|
||||
@@ -1700,4 +1751,4 @@ INSTANTIATE_TEST_SUITE_P(TestAPI16, OEMCryptoUsageTableDefragTest,
|
||||
INSTANTIATE_TEST_SUITE_P(TestAPI16, OEMCryptoUsageTableTestWallClock,
|
||||
Values<uint32_t>(kCurrentAPI));
|
||||
|
||||
} // namespace wvoec
|
||||
} // namespace wvoec
|
||||
|
||||
Reference in New Issue
Block a user