diff --git a/libwvdrmengine/cdm/core/src/cdm_session.cpp b/libwvdrmengine/cdm/core/src/cdm_session.cpp index af6828ae..6d7e1815 100644 --- a/libwvdrmengine/cdm/core/src/cdm_session.cpp +++ b/libwvdrmengine/cdm/core/src/cdm_session.cpp @@ -263,8 +263,14 @@ CdmResponseType CdmSession::RestoreOfflineSession(const CdmKeySetId& key_set_id, usage_entry_ = std::move(license_data.usage_entry); usage_entry_index_ = license_data.usage_entry_index; - CdmResponseType result = LoadPrivateOrLegacyKey( - license_data.drm_certificate, license_data.wrapped_private_key); + // If ATSC mode is enabled, use ATSC DRM cert/private key, rather than any + // cert/private key embedded in the license. + CdmResponseType result = + atsc_mode_enabled_ + ? LoadPrivateKey() + : LoadPrivateOrLegacyKey(license_data.drm_certificate, + license_data.wrapped_private_key); + if (result != NO_ERROR) return result; // Attempts to restore a released offline license are treated as a release