Fix session id in dynamic adapter and re-generate L3

Merge of https://widevine-internal-review.googlesource.com/c/cdm/+/173330

Skipping files that are not in android from the CL above.

Original commit message:

Pass the real oemcrypto session id from `pair.session` instead of
`session`, since `session` can be changed when L1 and L3 are running in parallel and `session` in that case may not be the correct oemcrypto session id any more.

Also adding a few missing v18 L3 functions pointers to the dynamic
adapter.

Need to re-generate L3 since the L3 sources changed.

Test: L3 unit tests
Test: GTS dash policy tests and Dexter tests
Bug: 271290471
Bug: 279967915
Change-Id: Idc44d57ca38eb1de24c0038917800e37c25b9afc
This commit is contained in:
Cong Lin
2023-04-30 23:41:47 -07:00
parent 3e650cfd9f
commit 9651c61e25
5 changed files with 297813 additions and 298380 deletions

View File

@@ -1191,14 +1191,14 @@ class Adapter {
level3_.ReuseUsageEntry = Level3_ReuseUsageEntry; level3_.ReuseUsageEntry = Level3_ReuseUsageEntry;
level3_.GetDTCP2Capability = Level3_GetDTCP2Capability; level3_.GetDTCP2Capability = Level3_GetDTCP2Capability;
level3_.GetWatermarkingSupport = Level3_GetWatermarkingSupport; level3_.GetWatermarkingSupport = Level3_GetWatermarkingSupport;
level3_.GetDeviceInformation = nullptr; level3_.GetDeviceInformation = Level3_GetDeviceInformation;
level3_.GetDeviceSignedCsrPayload = nullptr; level3_.GetDeviceSignedCsrPayload = Level3_GetDeviceSignedCsrPayload;
level3_.GetKeyHandle = nullptr; level3_.GetKeyHandle = Level3_GetKeyHandle;
level3_.DecryptCENC = nullptr; level3_.DecryptCENC = Level3_DecryptCENC;
level3_.Generic_Encrypt = nullptr; level3_.Generic_Encrypt = Level3_Generic_Encrypt;
level3_.Generic_Decrypt = nullptr; level3_.Generic_Decrypt = Level3_Generic_Decrypt;
level3_.Generic_Sign = nullptr; level3_.Generic_Sign = Level3_Generic_Sign;
level3_.Generic_Verify = nullptr; level3_.Generic_Verify = Level3_Generic_Verify;
level3_.GetSignatureHashAlgorithm = nullptr; level3_.GetSignatureHashAlgorithm = nullptr;
level3_.EnterTestMode = nullptr; level3_.EnterTestMode = nullptr;
// clang-format on // clang-format on
@@ -2260,12 +2260,13 @@ extern "C" OEMCryptoResult OEMCrypto_GetKeyHandle(
} }
*key_handle_length = handle_size; *key_handle_length = handle_size;
if (key_handle == nullptr) return OEMCrypto_ERROR_SHORT_BUFFER; if (key_handle == nullptr) return OEMCrypto_ERROR_SHORT_BUFFER;
memcpy(key_handle, &session, handle_size); memcpy(key_handle, &pair.session, handle_size);
return pair.fcn->SelectKey(pair.session, content_key_id, return pair.fcn->SelectKey(pair.session, content_key_id,
content_key_id_length, cipher_mode); content_key_id_length, cipher_mode);
} }
return pair.fcn->GetKeyHandle(session, content_key_id, content_key_id_length, return pair.fcn->GetKeyHandle(pair.session, content_key_id,
cipher_mode, key_handle, key_handle_length); content_key_id_length, cipher_mode, key_handle,
key_handle_length);
} }
extern "C" OEMCryptoResult OEMCrypto_DecryptCENC( extern "C" OEMCryptoResult OEMCrypto_DecryptCENC(

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff