From 6562488d0fd736832eef06fbd3640d57e01fc4cf Mon Sep 17 00:00:00 2001 From: Fred Gylys-Colwell Date: Fri, 9 Feb 2018 11:43:20 -0800 Subject: [PATCH 1/2] Fix key size when decrypting KCB with entitlement keys. Merge from Widevine repo of http://go/wvgerrit/42942 This CL changes test code only. Bug: 73132054 test: unit tests Change-Id: Ic9ca1879a942b0cad8ea15a98ed263a5fd170b4c --- libwvdrmengine/oemcrypto/mock/src/oemcrypto_session.cpp | 5 ++++- libwvdrmengine/oemcrypto/test/oec_session_util.cpp | 1 + 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/libwvdrmengine/oemcrypto/mock/src/oemcrypto_session.cpp b/libwvdrmengine/oemcrypto/mock/src/oemcrypto_session.cpp index e8d6ed6a..b0b7c9e9 100644 --- a/libwvdrmengine/oemcrypto/mock/src/oemcrypto_session.cpp +++ b/libwvdrmengine/oemcrypto/mock/src/oemcrypto_session.cpp @@ -750,7 +750,10 @@ OEMCryptoResult SessionContext::InstallKey( return OEMCrypto_ERROR_INVALID_CONTEXT; } if (!DecryptMessage(content_key, key_control_iv, key_control, - &key_control_str, 128 /* key size */)) { + &key_control_str, + (session_keys_->type() == OEMCrypto_EntitlementLicense + ? 256 + : 128) /* key size */)) { LOGE("[Installkey(): ERROR: Could not decrypt content key]"); return OEMCrypto_ERROR_UNKNOWN_FAILURE; } diff --git a/libwvdrmengine/oemcrypto/test/oec_session_util.cpp b/libwvdrmengine/oemcrypto/test/oec_session_util.cpp index 72771c0d..469cdd95 100644 --- a/libwvdrmengine/oemcrypto/test/oec_session_util.cpp +++ b/libwvdrmengine/oemcrypto/test/oec_session_util.cpp @@ -516,6 +516,7 @@ void Session::FillSimpleMessage(uint32_t duration, uint32_t control, void Session::FillSimpleEntitlementMessage( uint32_t duration, uint32_t control, uint32_t nonce, const std::string& pst) { + has_entitlement_license_ = true; EXPECT_EQ( 1, GetRandBytes(license_.mac_key_iv, sizeof(license_.mac_key_iv))); EXPECT_EQ(1, GetRandBytes(license_.mac_keys, sizeof(license_.mac_keys))); From c616bfcd511e8e64609e621d5e6a429bee7d061e Mon Sep 17 00:00:00 2001 From: Srujan Gaddam Date: Mon, 12 Feb 2018 17:06:46 -0800 Subject: [PATCH 2/2] Fix dead code in dynamic adapter b/73254535 Test: unit/integration tests Merge of http://go/wvgerrit/43100 --- libwvdrmengine/cdm/core/src/oemcrypto_adapter_dynamic.cpp | 2 -- 1 file changed, 2 deletions(-) diff --git a/libwvdrmengine/cdm/core/src/oemcrypto_adapter_dynamic.cpp b/libwvdrmengine/cdm/core/src/oemcrypto_adapter_dynamic.cpp index 9bffd76f..5a3b9e98 100644 --- a/libwvdrmengine/cdm/core/src/oemcrypto_adapter_dynamic.cpp +++ b/libwvdrmengine/cdm/core/src/oemcrypto_adapter_dynamic.cpp @@ -1990,8 +1990,6 @@ extern "C" OEMCryptoResult OEMCrypto_UpdateUsageEntry( extern "C" OEMCryptoResult OEMCrypto_ShrinkUsageTableHeader( uint32_t new_table_size, uint8_t* header_buffer, size_t* header_buffer_length) { - if (OEMCrypto_ShrinkUsageTableHeader == NULL) - return OEMCrypto_ERROR_NOT_IMPLEMENTED; return OEMCrypto_ShrinkUsageTableHeader(kLevelDefault, new_table_size, header_buffer, header_buffer_length); }