Remove Sub-Licenses and Sub-Sessions
(This is a merge of http://go/wvgerrit/66643) The sub-license feature has been removed from the server and packager. So that we do not have to continue maintaining the code that supports this feature that never shipped, I am removing it from the CDM as well. Bug: 113165466 Test: CE CDM Unit Tests Test: Android Unit Tests Change-Id: I5d25844b161e74aa19adf19a29c56e4881aa7304
This commit is contained in:
@@ -170,19 +170,6 @@ const std::string kZeroSizedPsshBox = a2bs_hex(
|
||||
// data:
|
||||
"08011a0d7769646576696e655f74657374220f73747265616d696e675f636c697031");
|
||||
|
||||
const std::string kSubLicensePsshBox = a2bs_hex(
|
||||
// Widevine PSSH box
|
||||
"0000009f" // atom size
|
||||
"70737368" // atom type="pssh"
|
||||
"00000000" // v0, flags=0
|
||||
"edef8ba979d64acea3c827dcd51d21ed" // system id (Widevine)
|
||||
"0000007f" // data size
|
||||
// data:
|
||||
"0801120d746573745f6b65795f69645f30120d746573745f6b65795f69645f31220f"
|
||||
"746573745f636f6e74656e745f69645a250a147375625f73657373696f6e5f6b6579"
|
||||
"5f69645f30120d7375625f6c6963656e73655f305a250a147375625f73657373696f"
|
||||
"6e5f6b65795f69645f31120d7375625f6c6963656e73655f31");
|
||||
|
||||
const std::string kMultipleWidevinePsshBox = a2bs_hex(
|
||||
// first PSSH box, Widevine with single keys
|
||||
"00000042" // atom size
|
||||
@@ -515,7 +502,7 @@ class HlsTest : public ::testing::Test {};
|
||||
} // namespace
|
||||
|
||||
TEST_F(InitializationDataTest, BadType) {
|
||||
InitializationData init_data("bad", kSubLicensePsshBox);
|
||||
InitializationData init_data("bad", kWidevinePssh);
|
||||
EXPECT_TRUE(init_data.IsEmpty());
|
||||
}
|
||||
|
||||
@@ -529,8 +516,7 @@ INSTANTIATE_TEST_CASE_P(
|
||||
::testing::Values(kWidevinePssh, kWidevinePsshFirst,
|
||||
kWidevinePsshAfterV0Pssh, kWidevinePsshAfterNonZeroFlags,
|
||||
kWidevinePsshAfterV1Pssh, kWidevineV1Pssh, kOtherBoxFirst,
|
||||
kZeroSizedPsshBox, kSubLicensePsshBox,
|
||||
kMultipleWidevinePsshBox));
|
||||
kZeroSizedPsshBox, kMultipleWidevinePsshBox));
|
||||
|
||||
TEST_F(InitializationDataTest, HandlesMultipleWidevinePsshs) {
|
||||
InitializationData single_init_data(ISO_BMFF_VIDEO_MIME_TYPE,
|
||||
@@ -546,28 +532,6 @@ TEST_F(InitializationDataTest, HandlesMultipleWidevinePsshs) {
|
||||
EXPECT_EQ(kEntitledKeysWidevinePsshBoxData, entitled_init_data.data());
|
||||
}
|
||||
|
||||
// TODO(jfore): The pssh has changed in ways that are not compatible with
|
||||
//sublicenses. Restructure or remove sublicense support including this test.
|
||||
TEST_F(InitializationDataTest, DISABLED_ExtractSubLicense) {
|
||||
InitializationData init_data(ISO_BMFF_VIDEO_MIME_TYPE, kSubLicensePsshBox);
|
||||
ASSERT_FALSE(init_data.IsEmpty());
|
||||
std::vector<video_widevine::SubLicense> keys =
|
||||
init_data.ExtractSublicenseKeys();
|
||||
ASSERT_EQ(keys.size(), 2UL);
|
||||
EXPECT_EQ(keys[0].sub_session_key_id(), "sub_session_key_id_0");
|
||||
EXPECT_EQ(keys[1].sub_session_key_id(), "sub_session_key_id_1");
|
||||
EXPECT_EQ(keys[0].key_msg(), "sub_license_0");
|
||||
EXPECT_EQ(keys[1].key_msg(), "sub_license_1");
|
||||
}
|
||||
|
||||
TEST_F(InitializationDataTest, ExtractEmptySubLicense) {
|
||||
InitializationData init_data(ISO_BMFF_VIDEO_MIME_TYPE, kWidevinePssh);
|
||||
ASSERT_FALSE(init_data.IsEmpty());
|
||||
std::vector<video_widevine::SubLicense> keys =
|
||||
init_data.ExtractSublicenseKeys();
|
||||
ASSERT_TRUE(keys.empty());
|
||||
}
|
||||
|
||||
TEST_P(HlsKeyFormatVersionsExtractionTest, ExtractKeyFormatVersions) {
|
||||
std::vector<std::string> versions = GetParam();
|
||||
std::string key_format_versions;
|
||||
|
||||
@@ -113,32 +113,6 @@ const std::string kLicenseRequestSignature = a2bs_hex(
|
||||
"9AE18B91516E0CDD0B581590DDDEA2A2527E2C9ABA273629B586A9D22D451A827E332CFC3E"
|
||||
"9BEDB6CF3D8713F9E11675DF1F5DB9038DBBECAB9D1683F8722CAF6E18EC8C04AEE5");
|
||||
|
||||
const std::string kSubLicensePssh = a2bs_hex(
|
||||
"000002317073736800000000edef8ba979d64acea3c827dcd51d21ed000002010801120d54"
|
||||
"6573744b6579415544494f30120a546573744b6579534430120a546573744b65794844301a"
|
||||
"0048e3dc959b0650025a9b010a101f10e4700b1a5b731c545fe2405cea1b12860112620a0d"
|
||||
"546573744b6579415544494f3012102f4b661d1064b5ea82efcd3ef850f45b1a10a02c5cea"
|
||||
"5182383c064c06abbc79bfa8200242240a1023acc9a0ef2bca66af2a1307cc9edeb21210e1"
|
||||
"f1d352b4c6b1aad1fd78423db256946205415544494f1a20aaf4537f09332c502a88f43a18"
|
||||
"a3e21ec28bbde675c5d87054fbca06f98e98015a95010a10c034cf6ae181b8d07f2e79142d"
|
||||
"792bb3128001125c0a0a546573744b657953443012106d37a0a201afdef8a494f89a4b0772"
|
||||
"4a1a10457db86b73bf87177a5cc61c0d04b690200242240a1001fe432d2a8afb7054ae76a3"
|
||||
"9c2727e612108761b7e0ba354ee4132117a9de12abd3620253441a20e3f37529cb795b35a0"
|
||||
"d186e4ce7187f08dda5f1df136ddb92eb0a65a899635005a95010a1021cdec9b2105c6b643"
|
||||
"e71f68e5302c85128001125c0a0a546573744b6579484430121012a3e3afe1e23be2c3fc55"
|
||||
"fddad877451a108f31ff0865f4d4fb41d96414297f7728200242240a1061e3cbca755b36c8"
|
||||
"e7d6dda03af20e4f1210a2fa2fc5d10c9c84ddc5511446ce77e9620248441a20a945699aef"
|
||||
"49355b0214b636edb7670bbe350c58b69cd52f207953b380a52df2");
|
||||
|
||||
const std::string kSubSessionKeyID1 =
|
||||
a2bs_hex("1f10e4700b1a5b731c545fe2405cea1b");
|
||||
|
||||
const std::string kSubSessionKeyID2 =
|
||||
a2bs_hex("c034cf6ae181b8d07f2e79142d792bb3");
|
||||
|
||||
const std::string kSubSessionKeyID3 =
|
||||
a2bs_hex("21cdec9b2105c6b643e71f68e5302c85");
|
||||
|
||||
const CryptoSession::SupportedCertificateTypes kDefaultSupportedCertTypes = {
|
||||
true,
|
||||
true,
|
||||
@@ -171,9 +145,6 @@ class MockCryptoSession : public TestCryptoSession {
|
||||
MOCK_METHOD1(GetApiVersion, bool(uint32_t*));
|
||||
MOCK_METHOD1(GenerateNonce, bool(uint32_t*));
|
||||
MOCK_METHOD3(PrepareRequest, bool(const std::string&, bool, std::string*));
|
||||
MOCK_METHOD3(GenerateSubSessionNonce,
|
||||
bool(const std::string& sub_session_key_id, bool* exists,
|
||||
uint32_t* nonce));
|
||||
MOCK_METHOD1(LoadEntitledContentKeys,
|
||||
CdmResponseType(const std::vector<CryptoKey>& key_array));
|
||||
};
|
||||
@@ -270,11 +241,6 @@ class CdmLicenseTest : public WvCdmTestBase {
|
||||
std::string pssh_;
|
||||
};
|
||||
|
||||
class SubLicenseTest : public CdmLicenseTest {
|
||||
protected:
|
||||
SubLicenseTest() : CdmLicenseTest(kSubLicensePssh) {}
|
||||
};
|
||||
|
||||
TEST_F(CdmLicenseTest, InitSuccess) {
|
||||
EXPECT_CALL(*crypto_session_, IsOpen()).WillOnce(Return(true));
|
||||
|
||||
|
||||
@@ -566,9 +566,6 @@ void PrintTo(const enum CdmResponseType& value, ::std::ostream* os) {
|
||||
case USAGE_STORE_ENTRY_RETRIEVE_INVALID_STORAGE_TYPE:
|
||||
*os << "USAGE_STORE_ENTRY_RETRIEVE_INVALID_STORAGE_TYPE";
|
||||
break;
|
||||
case LICENSE_REQUEST_INVALID_SUBLICENSE:
|
||||
*os << "LICENSE_REQUEST_INVALID_SUBLICENSE";
|
||||
break;
|
||||
case CERT_PROVISIONING_EMPTY_SERVICE_CERTIFICATE:
|
||||
*os << "CERT_PROVISIONING_EMPTY_SERVICE_CERTIFICATE";
|
||||
break;
|
||||
|
||||
Reference in New Issue
Block a user