|
|
|
|
@@ -2004,9 +2004,7 @@ class WvCdmRequestLicenseTest : public WvCdmTestBase {
|
|
|
|
|
decryptor_->Unprovision(kSecurityLevelL3, kDefaultCdmIdentifier));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void Provision(SecurityLevel level) {
|
|
|
|
|
Provision(kDefaultCdmIdentifier, level);
|
|
|
|
|
}
|
|
|
|
|
void Provision() { Provision(kDefaultCdmIdentifier, kLevelDefault); }
|
|
|
|
|
|
|
|
|
|
void Provision(const CdmIdentifier& identifier, SecurityLevel level,
|
|
|
|
|
CdmProvisioningResponse* provisioning_response = nullptr) {
|
|
|
|
|
@@ -2494,7 +2492,7 @@ TEST_F(WvCdmRequestLicenseTest, PropertySetTest) {
|
|
|
|
|
CdmSessionId session_id_Ln;
|
|
|
|
|
|
|
|
|
|
Unprovision();
|
|
|
|
|
Provision(kLevelDefault);
|
|
|
|
|
Provision();
|
|
|
|
|
|
|
|
|
|
property_set_L1.set_security_level(QUERY_VALUE_SECURITY_LEVEL_L1);
|
|
|
|
|
property_set_L1.set_use_privacy_mode(true);
|
|
|
|
|
@@ -2659,7 +2657,7 @@ TEST_F(WvCdmRequestLicenseTest, AddStreamingKeyTest) {
|
|
|
|
|
|
|
|
|
|
TEST_F(WvCdmRequestLicenseTest, AddKeyOfflineTest) {
|
|
|
|
|
Unprovision();
|
|
|
|
|
Provision(kLevelDefault);
|
|
|
|
|
Provision();
|
|
|
|
|
|
|
|
|
|
// override default settings unless configured through the command line
|
|
|
|
|
std::string key_id;
|
|
|
|
|
@@ -2675,7 +2673,7 @@ TEST_F(WvCdmRequestLicenseTest, AddKeyOfflineTest) {
|
|
|
|
|
|
|
|
|
|
TEST_F(WvCdmRequestLicenseTest, RestoreOfflineKeyTest) {
|
|
|
|
|
Unprovision();
|
|
|
|
|
Provision(kLevelDefault);
|
|
|
|
|
Provision();
|
|
|
|
|
|
|
|
|
|
// override default settings unless configured through the command line
|
|
|
|
|
std::string key_id;
|
|
|
|
|
@@ -2700,7 +2698,7 @@ TEST_F(WvCdmRequestLicenseTest, RestoreOfflineKeyTest) {
|
|
|
|
|
|
|
|
|
|
TEST_F(WvCdmRequestLicenseTest, ReleaseOfflineKeyTest) {
|
|
|
|
|
Unprovision();
|
|
|
|
|
Provision(kLevelDefault);
|
|
|
|
|
Provision();
|
|
|
|
|
|
|
|
|
|
// override default settings unless configured through the command line
|
|
|
|
|
std::string key_id;
|
|
|
|
|
@@ -2732,7 +2730,7 @@ TEST_F(WvCdmRequestLicenseTest, ReleaseOfflineKeyTest) {
|
|
|
|
|
|
|
|
|
|
TEST_F(WvCdmRequestLicenseTest, ReleaseOfflineKeySessionUsageDisabledTest) {
|
|
|
|
|
Unprovision();
|
|
|
|
|
Provision(kLevelDefault);
|
|
|
|
|
Provision();
|
|
|
|
|
|
|
|
|
|
// The default offline asset "offline_clip2" has the session usage table
|
|
|
|
|
// entry enabled in the replay control portion of the key control block.
|
|
|
|
|
@@ -2791,7 +2789,7 @@ TEST_F(WvCdmRequestLicenseTest, ReleaseOfflineKeySessionUsageDisabledTest) {
|
|
|
|
|
|
|
|
|
|
TEST_F(WvCdmRequestLicenseTest, ReleaseRetryOfflineKeyTest) {
|
|
|
|
|
Unprovision();
|
|
|
|
|
Provision(kLevelDefault);
|
|
|
|
|
Provision();
|
|
|
|
|
|
|
|
|
|
// override default settings unless configured through the command line
|
|
|
|
|
std::string key_id;
|
|
|
|
|
@@ -2984,7 +2982,7 @@ TEST_F(WvCdmRequestLicenseTest,
|
|
|
|
|
// deallocated (rather than leaked) and a new one allocated.
|
|
|
|
|
TEST_F(WvCdmRequestLicenseTest, AutomatedOfflineSessionReleaseTest) {
|
|
|
|
|
Unprovision();
|
|
|
|
|
Provision(kLevelDefault);
|
|
|
|
|
Provision();
|
|
|
|
|
|
|
|
|
|
// override default settings unless configured through the command line
|
|
|
|
|
std::string key_id;
|
|
|
|
|
@@ -3073,7 +3071,7 @@ TEST_F(WvCdmRequestLicenseTest, StreamingLicenseRenewalProhibited) {
|
|
|
|
|
|
|
|
|
|
TEST_F(WvCdmRequestLicenseTest, OfflineLicenseRenewal) {
|
|
|
|
|
Unprovision();
|
|
|
|
|
Provision(kLevelDefault);
|
|
|
|
|
Provision();
|
|
|
|
|
|
|
|
|
|
// override default settings unless configured through the command line
|
|
|
|
|
std::string key_id;
|
|
|
|
|
@@ -3094,7 +3092,7 @@ TEST_F(WvCdmRequestLicenseTest, OfflineLicenseRenewal) {
|
|
|
|
|
|
|
|
|
|
TEST_F(WvCdmRequestLicenseTest, OfflineLicenseRenewalAndRelease) {
|
|
|
|
|
Unprovision();
|
|
|
|
|
Provision(kLevelDefault);
|
|
|
|
|
Provision();
|
|
|
|
|
|
|
|
|
|
// override default settings unless configured through the command line
|
|
|
|
|
std::string key_id;
|
|
|
|
|
@@ -3366,7 +3364,7 @@ class WvCdmOfflineLicenseReleaseTest
|
|
|
|
|
|
|
|
|
|
TEST_P(WvCdmOfflineLicenseReleaseTest, WithClientId) {
|
|
|
|
|
Unprovision();
|
|
|
|
|
Provision(kLevelDefault);
|
|
|
|
|
Provision();
|
|
|
|
|
|
|
|
|
|
RenewWithClientIdTestConfiguration* config = GetParam();
|
|
|
|
|
std::string key_id;
|
|
|
|
|
@@ -3511,7 +3509,7 @@ class WvCdmUsageTest : public WvCdmRequestLicenseTest,
|
|
|
|
|
|
|
|
|
|
TEST_P(WvCdmUsageTest, WithClientId) {
|
|
|
|
|
Unprovision();
|
|
|
|
|
Provision(kLevelDefault);
|
|
|
|
|
Provision();
|
|
|
|
|
|
|
|
|
|
CdmSecurityLevel security_level = GetDefaultSecurityLevel();
|
|
|
|
|
std::string app_id = "";
|
|
|
|
|
@@ -3633,7 +3631,7 @@ INSTANTIATE_TEST_CASE_P(
|
|
|
|
|
|
|
|
|
|
TEST_F(WvCdmRequestLicenseTest, UsageInfoRetryTest) {
|
|
|
|
|
Unprovision();
|
|
|
|
|
Provision(kLevelDefault);
|
|
|
|
|
Provision();
|
|
|
|
|
|
|
|
|
|
CdmSecurityLevel security_level = GetDefaultSecurityLevel();
|
|
|
|
|
std::string app_id = "";
|
|
|
|
|
@@ -3710,7 +3708,7 @@ TEST_F(WvCdmRequestLicenseTest, UsageInfoRetryTest) {
|
|
|
|
|
|
|
|
|
|
TEST_F(WvCdmRequestLicenseTest, UsageInfo_ReleaseThreeRecords) {
|
|
|
|
|
Unprovision();
|
|
|
|
|
Provision(kLevelDefault);
|
|
|
|
|
Provision();
|
|
|
|
|
|
|
|
|
|
CdmSecurityLevel security_level = GetDefaultSecurityLevel();
|
|
|
|
|
std::string app_id = "";
|
|
|
|
|
@@ -3810,10 +3808,10 @@ TEST_P(WvCdmUsageInfoTest, UsageInfo) {
|
|
|
|
|
if (kLevel3 == usage_info_data->security_level) {
|
|
|
|
|
client_property_set.set_security_level(QUERY_VALUE_SECURITY_LEVEL_L3);
|
|
|
|
|
property_set = &client_property_set;
|
|
|
|
|
Provision(kLevel3);
|
|
|
|
|
Provision(kLevelDefault);
|
|
|
|
|
Provision(kDefaultCdmIdentifier, kLevel3);
|
|
|
|
|
Provision();
|
|
|
|
|
} else {
|
|
|
|
|
Provision(kLevelDefault);
|
|
|
|
|
Provision();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
CdmSecurityLevel security_level = GetDefaultSecurityLevel();
|
|
|
|
|
@@ -3901,7 +3899,7 @@ TEST_F(WvCdmRequestLicenseTest, UsageRemoveAllTest) {
|
|
|
|
|
std::string app_id_not_empty = "not empty";
|
|
|
|
|
|
|
|
|
|
TestWvCdmClientPropertySet property_set;
|
|
|
|
|
Provision(kLevelDefault);
|
|
|
|
|
Provision();
|
|
|
|
|
|
|
|
|
|
CdmSecurityLevel security_level = GetDefaultSecurityLevel();
|
|
|
|
|
FileSystem file_system;
|
|
|
|
|
@@ -3989,7 +3987,7 @@ TEST_F(WvCdmRequestLicenseTest, RemoveCorruptedUsageInfoTest) {
|
|
|
|
|
std::string app_id_not_empty = "not empty";
|
|
|
|
|
|
|
|
|
|
TestWvCdmClientPropertySet property_set;
|
|
|
|
|
Provision(kLevelDefault);
|
|
|
|
|
Provision();
|
|
|
|
|
|
|
|
|
|
CdmSecurityLevel security_level = GetDefaultSecurityLevel();
|
|
|
|
|
FileSystem file_system;
|
|
|
|
|
@@ -4125,7 +4123,7 @@ TEST_F(WvCdmRequestLicenseTest, RemoveCorruptedUsageInfoTest2) {
|
|
|
|
|
std::string app_id_not_empty = "not empty";
|
|
|
|
|
|
|
|
|
|
TestWvCdmClientPropertySet property_set;
|
|
|
|
|
Provision(kLevelDefault);
|
|
|
|
|
Provision();
|
|
|
|
|
|
|
|
|
|
CdmSecurityLevel security_level = GetDefaultSecurityLevel();
|
|
|
|
|
FileSystem file_system;
|
|
|
|
|
@@ -4274,7 +4272,7 @@ TEST_F(WvCdmRequestLicenseTest, GetSecureStopIdsTest) {
|
|
|
|
|
std::string app_id_empty = "";
|
|
|
|
|
|
|
|
|
|
TestWvCdmClientPropertySet property_set;
|
|
|
|
|
Provision(kLevelDefault);
|
|
|
|
|
Provision();
|
|
|
|
|
|
|
|
|
|
CdmSecurityLevel security_level = GetDefaultSecurityLevel();
|
|
|
|
|
FileSystem file_system;
|
|
|
|
|
@@ -4424,7 +4422,7 @@ TEST_F(WvCdmRequestLicenseTest, UsageRecoveryTest) {
|
|
|
|
|
std::string app_id_empty = "";
|
|
|
|
|
|
|
|
|
|
TestWvCdmClientPropertySet property_set;
|
|
|
|
|
Provision(kLevelDefault);
|
|
|
|
|
Provision();
|
|
|
|
|
|
|
|
|
|
CdmSecurityLevel security_level = GetDefaultSecurityLevel();
|
|
|
|
|
FileSystem file_system;
|
|
|
|
|
@@ -4534,7 +4532,7 @@ TEST_F(WvCdmRequestLicenseTest, UsageRemoveSecureStopTest) {
|
|
|
|
|
std::string app_id_empty = "";
|
|
|
|
|
|
|
|
|
|
TestWvCdmClientPropertySet property_set;
|
|
|
|
|
Provision(kLevelDefault);
|
|
|
|
|
Provision();
|
|
|
|
|
|
|
|
|
|
CdmSecurityLevel security_level = GetDefaultSecurityLevel();
|
|
|
|
|
FileSystem file_system;
|
|
|
|
|
@@ -4645,7 +4643,7 @@ TEST_F(WvCdmRequestLicenseTest, UsageRemoveSecureStopTest) {
|
|
|
|
|
// TODO(rfrias): Enable when b/123370099 has been addressed
|
|
|
|
|
TEST_F(WvCdmRequestLicenseTest, VerifyProviderClientToken) {
|
|
|
|
|
Unprovision();
|
|
|
|
|
Provision(kLevelDefault);
|
|
|
|
|
Provision();
|
|
|
|
|
|
|
|
|
|
// The default offline asset "offline_clip2" does not include a
|
|
|
|
|
// provider session token but "offline_clip5" does, so replace the last
|
|
|
|
|
@@ -4763,7 +4761,7 @@ TEST_F(WvCdmRequestLicenseTest, QueryUnmodifiedSessionStatus) {
|
|
|
|
|
TEST_F(WvCdmRequestLicenseTest, QueryModifiedSessionStatus) {
|
|
|
|
|
// Test that L3 is returned when properties downgrade security.
|
|
|
|
|
Unprovision();
|
|
|
|
|
Provision(kLevel3);
|
|
|
|
|
Provision(kDefaultCdmIdentifier, kLevel3);
|
|
|
|
|
TestWvCdmClientPropertySet property_set_L3;
|
|
|
|
|
property_set_L3.set_security_level(QUERY_VALUE_SECURITY_LEVEL_L3);
|
|
|
|
|
|
|
|
|
|
@@ -4772,7 +4770,7 @@ TEST_F(WvCdmRequestLicenseTest, QueryModifiedSessionStatus) {
|
|
|
|
|
|
|
|
|
|
TEST_F(WvCdmRequestLicenseTest, QueryKeyStatus) {
|
|
|
|
|
Unprovision();
|
|
|
|
|
Provision(kLevelDefault);
|
|
|
|
|
Provision();
|
|
|
|
|
|
|
|
|
|
decryptor_->OpenSession(config_.key_system(), nullptr, kDefaultCdmIdentifier,
|
|
|
|
|
nullptr, &session_id_);
|
|
|
|
|
@@ -5054,7 +5052,7 @@ TEST_F(WvCdmRequestLicenseTest, QueryStatusL3) {
|
|
|
|
|
|
|
|
|
|
TEST_F(WvCdmRequestLicenseTest, QueryOemCryptoSessionId) {
|
|
|
|
|
Unprovision();
|
|
|
|
|
Provision(kLevelDefault);
|
|
|
|
|
Provision();
|
|
|
|
|
|
|
|
|
|
decryptor_->OpenSession(config_.key_system(), nullptr, kDefaultCdmIdentifier,
|
|
|
|
|
nullptr, &session_id_);
|
|
|
|
|
@@ -5080,8 +5078,7 @@ TEST_F(WvCdmRequestLicenseTest, QueryOemCryptoSessionId) {
|
|
|
|
|
TEST_F(WvCdmRequestLicenseTest, IsSecurityLevelSupported) {
|
|
|
|
|
// Level 1 may either be or not be supported. Invoking the method without
|
|
|
|
|
// imposing any expecations to make sure it completes.
|
|
|
|
|
bool is_supported = WvContentDecryptionModule::IsSecurityLevelSupported(
|
|
|
|
|
wvcdm::kSecurityLevelL1);
|
|
|
|
|
WvContentDecryptionModule::IsSecurityLevelSupported(wvcdm::kSecurityLevelL1);
|
|
|
|
|
EXPECT_FALSE(WvContentDecryptionModule::IsSecurityLevelSupported(
|
|
|
|
|
wvcdm::kSecurityLevelL2));
|
|
|
|
|
EXPECT_TRUE(WvContentDecryptionModule::IsSecurityLevelSupported(
|
|
|
|
|
@@ -5683,7 +5680,7 @@ class WvHlsDecryptionTest
|
|
|
|
|
public ::testing::WithParamInterface<HlsDecryptionInfo*> {};
|
|
|
|
|
|
|
|
|
|
TEST_P(WvHlsDecryptionTest, HlsDecryptionTest) {
|
|
|
|
|
Provision(kLevel3);
|
|
|
|
|
Provision(kDefaultCdmIdentifier, kLevel3);
|
|
|
|
|
TestWvCdmClientPropertySet client_property_set;
|
|
|
|
|
client_property_set.set_security_level(QUERY_VALUE_SECURITY_LEVEL_L3);
|
|
|
|
|
HlsDecryptionInfo* info = GetParam();
|
|
|
|
|
@@ -5737,7 +5734,7 @@ class WvHlsFourCCBackwardCompatibilityTest
|
|
|
|
|
public ::testing::WithParamInterface<HlsDecryptionInfo*> {};
|
|
|
|
|
|
|
|
|
|
TEST_P(WvHlsFourCCBackwardCompatibilityTest, HlsDecryptionTest) {
|
|
|
|
|
Provision(kLevel3);
|
|
|
|
|
Provision(kDefaultCdmIdentifier, kLevel3);
|
|
|
|
|
TestWvCdmClientPropertySet client_property_set;
|
|
|
|
|
client_property_set.set_security_level(QUERY_VALUE_SECURITY_LEVEL_L3);
|
|
|
|
|
HlsDecryptionInfo* info = GetParam();
|
|
|
|
|
@@ -5792,7 +5789,7 @@ class WvCenc30Test
|
|
|
|
|
public ::testing::WithParamInterface<SingleSampleDecryptionInfo*> {};
|
|
|
|
|
|
|
|
|
|
TEST_P(WvCenc30Test, DecryptionTest) {
|
|
|
|
|
Provision(kLevel3);
|
|
|
|
|
Provision(kDefaultCdmIdentifier, kLevel3);
|
|
|
|
|
TestWvCdmClientPropertySet client_property_set;
|
|
|
|
|
client_property_set.set_security_level(QUERY_VALUE_SECURITY_LEVEL_L3);
|
|
|
|
|
|
|
|
|
|
@@ -5855,7 +5852,7 @@ class WvCenc30SwitchCipherModeTest
|
|
|
|
|
public ::testing::WithParamInterface<FourSampleDecryptionInfo*> {};
|
|
|
|
|
|
|
|
|
|
TEST_P(WvCenc30SwitchCipherModeTest, DecryptionTest) {
|
|
|
|
|
Provision(kLevel3);
|
|
|
|
|
Provision(kDefaultCdmIdentifier, kLevel3);
|
|
|
|
|
TestWvCdmClientPropertySet client_property_set;
|
|
|
|
|
client_property_set.set_security_level(QUERY_VALUE_SECURITY_LEVEL_L3);
|
|
|
|
|
|
|
|
|
|
@@ -5961,7 +5958,7 @@ TEST_F(WvCdmRequestLicenseTest, CloseCdmReleaseResourcesTest) {
|
|
|
|
|
// Enable when OEMCrypto v15 has been deployed. Currently setting a decrypt
|
|
|
|
|
// hash returns OEMCrypto_ERROR_NOT_IMPLEMENTED
|
|
|
|
|
TEST_F(WvCdmRequestLicenseTest, DISABLED_DecryptPathTest) {
|
|
|
|
|
Provision(kDefaultCdmIdentifier, kLevelDefault);
|
|
|
|
|
Provision();
|
|
|
|
|
|
|
|
|
|
// Retrieve a streaming license
|
|
|
|
|
EXPECT_EQ(NO_ERROR, decryptor_->OpenSession(config_.key_system(), nullptr,
|
|
|
|
|
@@ -6084,7 +6081,7 @@ class WvCdmRequestLicenseRollbackTest
|
|
|
|
|
|
|
|
|
|
TEST_F(WvCdmRequestLicenseRollbackTest, Streaming_ExpireAfterRollback) {
|
|
|
|
|
Unprovision();
|
|
|
|
|
Provision(kLevelDefault);
|
|
|
|
|
Provision();
|
|
|
|
|
|
|
|
|
|
ASSERT_EQ(NO_ERROR, decryptor_->OpenSession(config_.key_system(), nullptr,
|
|
|
|
|
kDefaultCdmIdentifier, nullptr,
|
|
|
|
|
@@ -6111,7 +6108,7 @@ TEST_F(WvCdmRequestLicenseRollbackTest, Streaming_ExpireAfterRollback) {
|
|
|
|
|
|
|
|
|
|
TEST_F(WvCdmRequestLicenseRollbackTest, Streaming_ExpireBeforeRollback) {
|
|
|
|
|
Unprovision();
|
|
|
|
|
Provision(kLevelDefault);
|
|
|
|
|
Provision();
|
|
|
|
|
|
|
|
|
|
ASSERT_EQ(NO_ERROR, decryptor_->OpenSession(config_.key_system(), nullptr,
|
|
|
|
|
kDefaultCdmIdentifier, nullptr,
|
|
|
|
|
@@ -6137,7 +6134,7 @@ TEST_F(WvCdmRequestLicenseRollbackTest, Streaming_ExpireBeforeRollback) {
|
|
|
|
|
|
|
|
|
|
TEST_F(WvCdmRequestLicenseRollbackTest, Offline_RollbackBeforeRestoreKey) {
|
|
|
|
|
Unprovision();
|
|
|
|
|
Provision(kLevelDefault);
|
|
|
|
|
Provision();
|
|
|
|
|
|
|
|
|
|
std::string unused_key_id;
|
|
|
|
|
std::string client_auth;
|
|
|
|
|
@@ -6184,7 +6181,7 @@ TEST_F(WvCdmRequestLicenseRollbackTest, Offline_RollbackBeforeRestoreKey) {
|
|
|
|
|
TEST_F(WvCdmRequestLicenseRollbackTest,
|
|
|
|
|
Offline_RollbackAndExpireAfterRestoreKey) {
|
|
|
|
|
Unprovision();
|
|
|
|
|
Provision(kLevelDefault);
|
|
|
|
|
Provision();
|
|
|
|
|
|
|
|
|
|
std::string unused_key_id;
|
|
|
|
|
std::string client_auth;
|
|
|
|
|
@@ -6222,7 +6219,7 @@ TEST_F(WvCdmRequestLicenseRollbackTest,
|
|
|
|
|
TEST_F(WvCdmRequestLicenseRollbackTest,
|
|
|
|
|
Offline_ExpireAndRollbackAfterRestoreKey) {
|
|
|
|
|
Unprovision();
|
|
|
|
|
Provision(kLevelDefault);
|
|
|
|
|
Provision();
|
|
|
|
|
|
|
|
|
|
std::string unused_key_id;
|
|
|
|
|
std::string client_auth;
|
|
|
|
|
|