diff --git a/libwvdrmengine/cdm/src/wv_content_decryption_module.cpp b/libwvdrmengine/cdm/src/wv_content_decryption_module.cpp index ebe19432..d7fecc2a 100644 --- a/libwvdrmengine/cdm/src/wv_content_decryption_module.cpp +++ b/libwvdrmengine/cdm/src/wv_content_decryption_module.cpp @@ -227,6 +227,12 @@ CdmResponseType WvContentDecryptionModule::HandleProvisioningResponse( CdmResponseType WvContentDecryptionModule::Unprovision( CdmSecurityLevel level, const CdmIdentifier& identifier) { CdmEngine* cdm_engine = EnsureCdmForIdentifier(identifier); + // Persistent state is deleted on unprovisioning. The L3 OEMCrypto device + // key may however remain in memory until |OEMCrypto_Terminate| is called. + // It is not regenerated until |OEMCrypto_Initialize| is called. + // Enable immediate OEMCrypto termination and re-initalization on + // unprovisioning. + CryptoSession::DisableDelayedTermination(); return cdm_engine->Unprovision(level); }