License release does not use core message
Merge from Widevine repo of http://go/wvgerrit/99843 When processing a license release, the license is not loaded, so OEMCrypto does not know nonce version information for the core message. It assumes that all license releases are v15, so it is not an error for a license release to not have a core message. This CL also adds some extra logging to tests so that we can track content id and the pssh. This CL also updates some of the test content policies when running the local license server. The local license server is only used for debugging problems. Bug: 152648172 Integration test WvCdmEngineTest.LicenseRenewal failing Bug: 156259697 License release does not need core message Test: Unit tests with v16 mod mock Change-Id: I04c896adadfb17877ce1115345d2419e0d2489f0
This commit is contained in:
@@ -702,12 +702,13 @@ CdmResponseType CdmLicense::HandleKeyUpdateResponse(
|
||||
return INVALID_LICENSE_TYPE;
|
||||
}
|
||||
|
||||
// At this point of the license life-cycle (handling a renewal or
|
||||
// release), we should already know if the license is v15 or not.
|
||||
// If license is v16, then there should be a |core_message|
|
||||
// present; otherwise there might have beeen some tampering with the
|
||||
// request or response.
|
||||
if (supports_core_messages() &&
|
||||
// At this point of the license life-cycle (handling a renewal), we should
|
||||
// already know if the license is v15 or not. If license is v16, then a
|
||||
// renewal should have a |core_message| present; otherwise there might have
|
||||
// been some tampering with the request or response. On the other hand, a
|
||||
// release is processed without loading the license, so OEMCrypto does not
|
||||
// know if it is v15 or v16, and will not add a core message.
|
||||
if (is_renewal && supports_core_messages() &&
|
||||
(!signed_response.has_oemcrypto_core_message() ||
|
||||
signed_response.oemcrypto_core_message().empty())) {
|
||||
LOGE("Renewal response is missing |core_message| field");
|
||||
@@ -720,8 +721,9 @@ CdmResponseType CdmLicense::HandleKeyUpdateResponse(
|
||||
}
|
||||
const std::string& signed_message = signed_response.msg();
|
||||
const std::string core_message =
|
||||
supports_core_messages() ? signed_response.oemcrypto_core_message()
|
||||
: std::string();
|
||||
signed_response.has_oemcrypto_core_message()
|
||||
? signed_response.oemcrypto_core_message()
|
||||
: std::string();
|
||||
const std::string& signature = signed_response.signature();
|
||||
|
||||
License license;
|
||||
|
||||
@@ -562,6 +562,7 @@ void TestLicenseHolder::GenerateKeyRequest(
|
||||
CdmAppParameterMap app_parameters;
|
||||
CdmKeySetId key_set_id;
|
||||
InitializationData init_data(init_data_type_string, key_id);
|
||||
if (g_cutoff >= LOG_DEBUG) init_data.DumpToLogs();
|
||||
CdmKeyRequest key_request;
|
||||
CdmResponseType result = cdm_engine_->GenerateKeyRequest(
|
||||
session_id_, key_set_id, init_data, kLicenseTypeStreaming, app_parameters,
|
||||
|
||||
@@ -268,9 +268,13 @@ class WvCdmExtendedDurationTest : public WvCdmTestBase {
|
||||
CdmResponseType *response) {
|
||||
CdmAppParameterMap app_parameters;
|
||||
CdmKeyRequest key_request;
|
||||
|
||||
const std::string init_data_type = "video/mp4";
|
||||
if (g_cutoff >= LOG_DEBUG) {
|
||||
InitializationData parsed_init_data(init_data_type, init_data);
|
||||
parsed_init_data.DumpToLogs();
|
||||
}
|
||||
*response = decryptor_->GenerateKeyRequest(
|
||||
session_id_, key_set_id_, "video/mp4", init_data,
|
||||
session_id_, key_set_id_, init_data_type, init_data,
|
||||
license_type, app_parameters, nullptr,
|
||||
kDefaultCdmIdentifier, &key_request);
|
||||
if (*response == KEY_MESSAGE) {
|
||||
|
||||
@@ -326,6 +326,10 @@ class WvCdmFeatureTest : public WvCdmTestBase {
|
||||
CdmKeyRequest key_request;
|
||||
std::string key_set_id;
|
||||
license_type_ = license_type;
|
||||
if (g_cutoff >= LOG_DEBUG) {
|
||||
InitializationData parsed_init_data(init_data_type, init_data);
|
||||
parsed_init_data.DumpToLogs();
|
||||
}
|
||||
EXPECT_EQ(
|
||||
expected_response,
|
||||
decryptor_.GenerateKeyRequest(
|
||||
|
||||
@@ -1776,6 +1776,10 @@ class WvCdmRequestLicenseTest : public WvCdmTestBase {
|
||||
CdmKeyRequest key_request;
|
||||
std::string key_set_id;
|
||||
license_type_ = license_type;
|
||||
if (g_cutoff >= LOG_DEBUG) {
|
||||
InitializationData parsed_init_data(init_data_type, init_data);
|
||||
parsed_init_data.DumpToLogs();
|
||||
}
|
||||
EXPECT_EQ(
|
||||
expected_response,
|
||||
decryptor_->GenerateKeyRequest(
|
||||
|
||||
Reference in New Issue
Block a user