Remove shared license code from OEMCrypto
Bug: b/119881112 Merge of http://go/wvgerrit/68983 Test: Android + Linux tests for ref and L3 This CL removes tests from OEMCrypto that test shared license functionality and code in the ref and L3 that handle shared licenses. Change-Id: Ia11510d8db3fa6e471a4ebbdb371fd76b0812984
This commit is contained in:
@@ -1371,8 +1371,6 @@ TEST_F(OEMCryptoSessionTests, LoadKeysWithNoDerivedKeys) {
|
||||
ASSERT_NE(OEMCrypto_SUCCESS, sts);
|
||||
}
|
||||
|
||||
// To prevent initial loading shared licenses without usage table or nonce,
|
||||
// LoadKeys should reject an empty list of keys.
|
||||
TEST_F(OEMCryptoSessionTests, LoadKeyNoKeys) {
|
||||
Session s;
|
||||
ASSERT_NO_FATAL_FAILURE(s.open());
|
||||
@@ -6130,74 +6128,6 @@ TEST_F(UsageTableTest, TimeRollbackPrevention) {
|
||||
ASSERT_NO_FATAL_FAILURE(s1.close());
|
||||
}
|
||||
|
||||
// This is a special case where a group of assets can be licensed with a master
|
||||
// key. In order for this to work, a single session must first load a device
|
||||
// specific license, and then a shared content license. This shared license is
|
||||
// sometimes called an embedded license.
|
||||
TEST_F(UsageTableTest, LoadSharedLicense) {
|
||||
std::string pst = "my_pst";
|
||||
Session s;
|
||||
ASSERT_NO_FATAL_FAILURE(LoadOfflineLicense(s, pst));
|
||||
|
||||
ASSERT_NO_FATAL_FAILURE(s.open());
|
||||
// We will reuse the encrypted and signed message, so we don't call
|
||||
// FillSimpleMessage again.
|
||||
ASSERT_NO_FATAL_FAILURE(s.ReloadUsageEntry());
|
||||
ASSERT_NO_FATAL_FAILURE(InstallTestSessionKeys(&s));
|
||||
ASSERT_NO_FATAL_FAILURE(s.LoadTestKeys(pst, true));
|
||||
|
||||
// The second set of keys are in the shared license. They will have the
|
||||
// same mac keys as the original license, so we leave that alone.
|
||||
// They are given different key ids so we can test that they were loaded.
|
||||
// For this test, we leave the key content the same -- in real life it
|
||||
// will be different.
|
||||
for (unsigned int i = 0; i < s.num_keys(); i++) {
|
||||
memset(s.license().keys[i].key_id, 'A' + i,
|
||||
s.license().keys[i].key_id_length);
|
||||
s.license().keys[i].control.nonce = 0;
|
||||
s.license().keys[i].control.control_bits =
|
||||
htonl(wvoec::kSharedLicense);
|
||||
}
|
||||
ASSERT_NO_FATAL_FAILURE(s.EncryptAndSign());
|
||||
ASSERT_NO_FATAL_FAILURE(s.LoadTestKeys(pst, false));
|
||||
ASSERT_NO_FATAL_FAILURE(s.TestDecryptCTR());
|
||||
ASSERT_NO_FATAL_FAILURE(s.close());
|
||||
}
|
||||
|
||||
TEST_F(UsageTableTest, LoadSharedLicenseWithNoMaster) {
|
||||
std::string pst = "my_pst";
|
||||
Session s;
|
||||
ASSERT_NO_FATAL_FAILURE(LoadOfflineLicense(s, pst));
|
||||
|
||||
ASSERT_NO_FATAL_FAILURE(s.open());
|
||||
ASSERT_NO_FATAL_FAILURE(s.ReloadUsageEntry());
|
||||
ASSERT_NO_FATAL_FAILURE(InstallTestSessionKeys(&s));
|
||||
// This time, we do NOT load the master license. This should
|
||||
// generate an error below.
|
||||
// ASSERT_NO_FATAL_FAILURE(s.LoadTestKeys(pst, true));
|
||||
|
||||
// The second set of keys are in the shared license.
|
||||
// We given them different key ids so we can test that they were loaded.
|
||||
// For this test, we leave the key content the same -- in real life it
|
||||
// will be different.
|
||||
for (unsigned int i = 0; i < s.num_keys(); i++) {
|
||||
memset(s.license().keys[i].key_id, 'A' + i,
|
||||
s.license().keys[i].key_id_length);
|
||||
s.license().keys[i].control.nonce = 0;
|
||||
s.license().keys[i].control.control_bits =
|
||||
htonl(wvoec::kSharedLicense);
|
||||
}
|
||||
ASSERT_NO_FATAL_FAILURE(s.EncryptAndSign());
|
||||
ASSERT_EQ(
|
||||
OEMCrypto_ERROR_MISSING_MASTER,
|
||||
OEMCrypto_LoadKeys(s.session_id(), s.message_ptr(), s.message_size(),
|
||||
s.signature().data(), s.signature().size(),
|
||||
s.enc_mac_keys_iv_substr(), s.enc_mac_keys_substr(),
|
||||
s.num_keys(), s.key_array(), s.pst_substr(),
|
||||
GetSubstring(), OEMCrypto_ContentLicense));
|
||||
ASSERT_NO_FATAL_FAILURE(s.close());
|
||||
}
|
||||
|
||||
TEST_F(UsageTableTest, PSTLargeBuffer) {
|
||||
std::string pst(kMaxPSTLength, 'a'); // A large PST.
|
||||
Session s;
|
||||
|
||||
Reference in New Issue
Block a user