Fix Entitlement Licenses am: 4444ba3b47

Change-Id: Ib438a6659f401e59cf58671dbac3f2cc865a5b0e
This commit is contained in:
John W. Bruce
2020-04-03 22:54:22 +00:00
committed by Automerger Merge Worker
3 changed files with 13 additions and 4 deletions

View File

@@ -135,7 +135,8 @@ class CryptoSession {
// V16 licenses. // V16 licenses.
virtual CdmResponseType LoadLicense(const std::string& signed_message, virtual CdmResponseType LoadLicense(const std::string& signed_message,
const std::string& core_message, const std::string& core_message,
const std::string& signature); const std::string& signature,
CdmLicenseKeyType key_type);
// Renewal request/responses // Renewal request/responses
virtual CdmResponseType PrepareAndSignRenewalRequest( virtual CdmResponseType PrepareAndSignRenewalRequest(

View File

@@ -952,11 +952,17 @@ CdmResponseType CryptoSession::LoadKeys(
CdmResponseType CryptoSession::LoadLicense(const std::string& signed_message, CdmResponseType CryptoSession::LoadLicense(const std::string& signed_message,
const std::string& core_message, const std::string& core_message,
const std::string& signature) { const std::string& signature,
CdmLicenseKeyType key_type) {
LOGV("Loading license: id = %u", oec_session_id_); LOGV("Loading license: id = %u", oec_session_id_);
const std::string combined_message = core_message + signed_message; const std::string combined_message = core_message + signed_message;
OEMCryptoResult sts; OEMCryptoResult sts;
WithOecSessionLock("LoadLicense", [&] { WithOecSessionLock("LoadLicense", [&] {
if (key_type == kLicenseKeyTypeEntitlement &&
key_session_->Type() != KeySession::kEntitlement) {
key_session_.reset(new EntitlementKeySession(oec_session_id_, metrics_));
}
M_TIME(sts = OEMCrypto_LoadLicense( M_TIME(sts = OEMCrypto_LoadLicense(
oec_session_id_, oec_session_id_,
reinterpret_cast<const uint8_t*>(combined_message.data()), reinterpret_cast<const uint8_t*>(combined_message.data()),

View File

@@ -1099,7 +1099,8 @@ CdmResponseType CdmLicense::HandleContentKeyResponse(
} }
CdmResponseType resp; CdmResponseType resp;
if (supports_core_messages()) { if (supports_core_messages()) {
resp = crypto_session_->LoadLicense(msg, core_message, signature); resp = crypto_session_->LoadLicense(msg, core_message, signature,
kLicenseKeyTypeContent);
} else { } else {
resp = crypto_session_->LoadKeys( resp = crypto_session_->LoadKeys(
msg, signature, mac_key_iv, mac_key, key_array, provider_session_token_, msg, signature, mac_key_iv, mac_key, key_array, provider_session_token_,
@@ -1128,7 +1129,8 @@ CdmResponseType CdmLicense::HandleEntitlementKeyResponse(
} }
CdmResponseType resp; CdmResponseType resp;
if (supports_core_messages()) { if (supports_core_messages()) {
resp = crypto_session_->LoadLicense(msg, core_message, signature); resp = crypto_session_->LoadLicense(msg, core_message, signature,
kLicenseKeyTypeEntitlement);
} else { } else {
resp = crypto_session_->LoadKeys( resp = crypto_session_->LoadKeys(
msg, signature, mac_key_iv, mac_key, key_array, provider_session_token_, msg, signature, mac_key_iv, mac_key, key_array, provider_session_token_,