diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-08 15:18:09 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-08 15:18:09 +0000 |
commit | 0cd6f26b6b8fcec2b43398fd831f6b9e0cb977e3 (patch) | |
tree | 673eec8dca4c4cfc5125dd4447f6608e589fa6b9 /media | |
parent | Adding debian version 115.8.0esr-1~deb12u1. (diff) | |
download | firefox-esr-0cd6f26b6b8fcec2b43398fd831f6b9e0cb977e3.tar.xz firefox-esr-0cd6f26b6b8fcec2b43398fd831f6b9e0cb977e3.zip |
Merging upstream version 115.9.0esr.
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'media')
-rw-r--r-- | media/gmp-clearkey/0.1/ClearKeyUtils.cpp | 16 |
1 files changed, 12 insertions, 4 deletions
diff --git a/media/gmp-clearkey/0.1/ClearKeyUtils.cpp b/media/gmp-clearkey/0.1/ClearKeyUtils.cpp index 1b1a7b4200..3f9588bdf9 100644 --- a/media/gmp-clearkey/0.1/ClearKeyUtils.cpp +++ b/media/gmp-clearkey/0.1/ClearKeyUtils.cpp @@ -105,10 +105,10 @@ bool ClearKeyUtils::DecryptCbcs(const vector<uint8_t>& aKey, mozilla::Span<uint8_t> aSubsample, uint32_t aCryptByteBlock, uint32_t aSkipByteBlock) { - assert(aKey.size() == CENC_KEY_LEN); - assert(aIV.size() == CENC_KEY_LEN); - assert(aCryptByteBlock <= 0xFF); - assert(aSkipByteBlock <= 0xFF); + if (aKey.size() != CENC_KEY_LEN || aIV.size() != CENC_KEY_LEN) { + CK_LOGE("Key and IV size should be 16!"); + return false; + } std::unique_ptr<PK11SlotInfo, MaybeDeleteHelper<PK11SlotInfo>> slot( PK11_GetInternalKeySlot()); @@ -133,6 +133,14 @@ bool ClearKeyUtils::DecryptCbcs(const vector<uint8_t>& aKey, std::unique_ptr<PK11Context, MaybeDeleteHelper<PK11Context>> ctx( PK11_CreateContextBySymKey(CKM_AES_CBC, CKA_DECRYPT, key.get(), &ivItem)); + if (!ctx) { + CK_LOGE("Failed to get PK11Context!"); + return false; + } + + assert(aCryptByteBlock <= 0xFF); + assert(aSkipByteBlock <= 0xFF); + uint8_t* encryptedSubsample = &aSubsample[0]; const uint32_t BLOCK_SIZE = 16; const uint32_t skipBytes = aSkipByteBlock * BLOCK_SIZE; |