From e894774942a3bc78a9738942a4aa1a522d6a1724 Mon Sep 17 00:00:00 2001 From: Rahul Frias Date: Mon, 21 Jul 2014 14:36:50 -0700 Subject: [PATCH] Correct CancelKeyRequest behavior [ Merge of https://widevine-internal-review.googlesource.com/#/c/10659/ from the widevine cdm repo. ] CdmEngine::CancelKeyRequest would earlier release keys by closing and reopening a crypto session. Behavior has been changed to just close the session. b/15984869 Change-Id: I92a1f82fd4a97b5510596d4bc69bf07406cee606 --- libwvdrmengine/cdm/core/src/cdm_engine.cpp | 3 +-- libwvdrmengine/cdm/test/request_license_test.cpp | 8 ++++++++ 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/libwvdrmengine/cdm/core/src/cdm_engine.cpp b/libwvdrmengine/cdm/core/src/cdm_engine.cpp index 46f91a1e..2f548a42 100644 --- a/libwvdrmengine/cdm/core/src/cdm_engine.cpp +++ b/libwvdrmengine/cdm/core/src/cdm_engine.cpp @@ -299,8 +299,7 @@ CdmResponseType CdmEngine::CancelKeyRequest(const CdmSessionId& session_id) { return KEY_ERROR; } - // Re-initialize to release crypto session/keys without closing session - iter->second->Init(); + iter->second->CancelKeyRequest(); return NO_ERROR; } diff --git a/libwvdrmengine/cdm/test/request_license_test.cpp b/libwvdrmengine/cdm/test/request_license_test.cpp index 668a07a2..28c657da 100644 --- a/libwvdrmengine/cdm/test/request_license_test.cpp +++ b/libwvdrmengine/cdm/test/request_license_test.cpp @@ -986,6 +986,14 @@ TEST_F(WvCdmRequestLicenseTest, OfflineLicenseRenewal) { decryptor_.CloseSession(session_id_); } +TEST_F(WvCdmRequestLicenseTest, RemoveKeys) { + ASSERT_EQ(NO_ERROR, decryptor_.OpenSession(g_key_system, NULL, &session_id_)); + GenerateKeyRequest(g_key_id, kLicenseTypeStreaming); + VerifyKeyRequestResponse(g_license_server, g_client_auth, false); + ASSERT_EQ(NO_ERROR, decryptor_.CancelKeyRequest(session_id_)); + ASSERT_EQ(NO_ERROR, decryptor_.CloseSession(session_id_)); +} + class WvCdmUsageInfoTest : public WvCdmRequestLicenseTest, public ::testing::WithParamInterface {};