diff --git a/libwvdrmengine/cdm/core/src/license.cpp b/libwvdrmengine/cdm/core/src/license.cpp index be9d22a9..82fd3891 100644 --- a/libwvdrmengine/cdm/core/src/license.cpp +++ b/libwvdrmengine/cdm/core/src/license.cpp @@ -617,22 +617,23 @@ CdmResponseType CdmLicense::HandleKeyResponse( // Extract mac key std::string mac_key_iv; - std::string mac_key; + std::string mac_keys; for (int i = 0; i < license.key_size(); ++i) { if (license.key(i).type() == License_KeyContainer::SIGNING) { mac_key_iv.assign(license.key(i).iv()); // Strip off PKCS#5 padding - mac_key.assign(license.key(i).key().data(), MAC_KEY_SIZE); + mac_keys.assign(license.key(i).key().data(), 2 * MAC_KEY_SIZE); } } if (license.policy().can_renew() || - (mac_key_iv.size() != 0 || mac_key.size() != 0)) { - if (mac_key_iv.size() != KEY_IV_SIZE || mac_key.size() != MAC_KEY_SIZE) { + (mac_key_iv.size() != 0 || mac_keys.size() != 0)) { + if (mac_key_iv.size() != KEY_IV_SIZE || + mac_keys.size() != 2 * MAC_KEY_SIZE) { LOGE( "CdmLicense::HandleKeyResponse: mac key/iv size error" "(key/iv size expected: %d/%d, actual: %d/%d", - MAC_KEY_SIZE, KEY_IV_SIZE, mac_key.size(), mac_key_iv.size()); + 2 * MAC_KEY_SIZE, KEY_IV_SIZE, mac_keys.size(), mac_key_iv.size()); return KEY_SIZE_ERROR_1; } } @@ -675,11 +676,11 @@ CdmResponseType CdmLicense::HandleKeyResponse( entitlement_key_array_ = key_array; resp = HandleEntitlementKeyResponse(signed_response.msg(), signed_response.signature(), mac_key_iv, - mac_key, key_array, license); + mac_keys, key_array, license); } else if (kLicenseKeyTypeContent == key_type) { resp = HandleContentKeyResponse(signed_response.msg(), signed_response.signature(), mac_key_iv, - mac_key, key_array, license); + mac_keys, key_array, license); } return resp; }