diff --git a/libwvdrmengine/cdm/core/src/license.cpp b/libwvdrmengine/cdm/core/src/license.cpp index baafccf5..185c39df 100644 --- a/libwvdrmengine/cdm/core/src/license.cpp +++ b/libwvdrmengine/cdm/core/src/license.cpp @@ -636,16 +636,16 @@ CdmResponseType CdmLicense::HandleKeyResponse( // Extract mac key std::string mac_key_iv; std::string mac_key; - if (license.policy().can_renew()) { - 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()); + 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); - } + // Strip off PKCS#5 padding + mac_key.assign(license.key(i).key().data(), 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) { LOGE( "CdmLicense::HandleKeyResponse: mac key/iv size error"