Merge "Avoid sending clear subsamples to the decoder before keys are loaded" into pi-widevine-release
This commit is contained in:
@@ -115,6 +115,39 @@ SubSampleInfo clear_sub_sample = {
|
||||
wvcdm::a2b_hex("f6f4b1e600a5b67813ed2bded913ba9f"), 0,
|
||||
OEMCrypto_FirstSubsample | OEMCrypto_LastSubsample};
|
||||
|
||||
SubSampleInfo clear_sub_samples[2] = {
|
||||
// block 0, key SD, encrypted, 128b
|
||||
{ true, 1, true, false, false,
|
||||
wvcdm::a2bs_hex("371EA35E1A985D75D198A7F41020DC23"),
|
||||
wvcdm::a2b_hex(
|
||||
"217ce9bde99bd91e9733a1a00b9b557ac3a433dc92633546156817fae26b6e1c"
|
||||
"942ac20a89ff79f4c2f25fba99d6a44618a8c0420b27d54e3da17b77c9d43cca"
|
||||
"595d259a1e4a8b6d7744cd98c5d3f921adc252eb7d8af6b916044b676a574747"
|
||||
"8df21fdc42f166880d97a2225cd5c9ea5e7b752f4cf81bbdbe98e542ee10e1c6"),
|
||||
wvcdm::a2b_hex(
|
||||
"217ce9bde99bd91e9733a1a00b9b557ac3a433dc92633546156817fae26b6e1c"
|
||||
"942ac20a89ff79f4c2f25fba99d6a44618a8c0420b27d54e3da17b77c9d43cca"
|
||||
"595d259a1e4a8b6d7744cd98c5d3f921adc252eb7d8af6b916044b676a574747"
|
||||
"8df21fdc42f166880d97a2225cd5c9ea5e7b752f4cf81bbdbe98e542ee10e1c6"),
|
||||
wvcdm::a2b_hex("f6f4b1e600a5b67813ed2bded913ba9f"), 0,
|
||||
OEMCrypto_FirstSubsample},
|
||||
// block 1, key SD, encrypted, 128b
|
||||
{ true, 1, true, false, false,
|
||||
wvcdm::a2bs_hex("371EA35E1A985D75D198A7F41020DC23"),
|
||||
wvcdm::a2b_hex(
|
||||
"ad868a6ac55c10d564fc23b8acff407daaf4ed2743520e02cda9680d9ea88e91"
|
||||
"029359c4cf5906b6ab5bf60fbb3f1a1c7c59acfc7e4fb4ad8e623c04d503a3dd"
|
||||
"4884604c8da8a53ce33db9ff8f1c5bb6bb97f37b39906bf41596555c1bcce9ed"
|
||||
"08a899cd760ff0899a1170c2f224b9c52997a0785b7fe170805fd3e8b1127659"),
|
||||
wvcdm::a2b_hex(
|
||||
"ad868a6ac55c10d564fc23b8acff407daaf4ed2743520e02cda9680d9ea88e91"
|
||||
"029359c4cf5906b6ab5bf60fbb3f1a1c7c59acfc7e4fb4ad8e623c04d503a3dd"
|
||||
"4884604c8da8a53ce33db9ff8f1c5bb6bb97f37b39906bf41596555c1bcce9ed"
|
||||
"08a899cd760ff0899a1170c2f224b9c52997a0785b7fe170805fd3e8b1127659"),
|
||||
wvcdm::a2b_hex("f6f4b1e600a5b67813ed2bded913ba9f"), 0,
|
||||
OEMCrypto_LastSubsample}
|
||||
};
|
||||
|
||||
SubSampleInfo clear_sub_sample_no_key = {
|
||||
false, 1, false, false, false,
|
||||
wvcdm::a2bs_hex("77777777777777777777777777777777"),
|
||||
@@ -4720,10 +4753,13 @@ TEST_P(WvCdmSessionSharingNoKeyTest, DecryptionTest) {
|
||||
decryption_parameters.is_secure = data->is_secure;
|
||||
decryption_parameters.subsample_flags = data->subsample_flags;
|
||||
|
||||
EXPECT_EQ(data->is_encrypted ? KEY_NOT_FOUND_IN_SESSION : NO_ERROR,
|
||||
decryptor_.Decrypt(gp_session_id_2, data->validate_key_id,
|
||||
decryption_parameters));
|
||||
if (!data->is_encrypted) {
|
||||
bool can_decrypt = !data->is_encrypted &&
|
||||
data->subsample_flags & OEMCrypto_FirstSubsample &&
|
||||
data->subsample_flags & OEMCrypto_LastSubsample;
|
||||
EXPECT_EQ(can_decrypt ? NO_ERROR : KEY_NOT_FOUND_IN_SESSION,
|
||||
decryptor_.Decrypt(gp_session_id_2, data->validate_key_id,
|
||||
decryption_parameters));
|
||||
if (can_decrypt) {
|
||||
EXPECT_TRUE(std::equal(data->decrypt_data.begin(), data->decrypt_data.end(),
|
||||
decrypt_buffer.begin()));
|
||||
}
|
||||
@@ -4734,6 +4770,8 @@ TEST_P(WvCdmSessionSharingNoKeyTest, DecryptionTest) {
|
||||
|
||||
INSTANTIATE_TEST_CASE_P(Cdm, WvCdmSessionSharingNoKeyTest,
|
||||
::testing::Values(&clear_sub_sample,
|
||||
&clear_sub_samples[0],
|
||||
&clear_sub_samples[1],
|
||||
&clear_sub_sample_no_key,
|
||||
&single_encrypted_sub_sample));
|
||||
|
||||
|
||||
Reference in New Issue
Block a user