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_.GetDTCP2Capability = Level3_GetDTCP2Capability;
level3_.GetWatermarkingSupport = Level3_GetWatermarkingSupport;
level3_.GetDeviceInformation = nullptr;
level3_.GetDeviceSignedCsrPayload = nullptr;
level3_.GetKeyHandle = nullptr;
level3_.DecryptCENC = nullptr;
level3_.Generic_Encrypt = nullptr;
level3_.Generic_Decrypt = nullptr;
level3_.Generic_Sign = nullptr;
level3_.Generic_Verify = nullptr;
level3_.GetDeviceInformation = Level3_GetDeviceInformation;
level3_.GetDeviceSignedCsrPayload = Level3_GetDeviceSignedCsrPayload;
level3_.GetKeyHandle = Level3_GetKeyHandle;
level3_.DecryptCENC = Level3_DecryptCENC;
level3_.Generic_Encrypt = Level3_Generic_Encrypt;
level3_.Generic_Decrypt = Level3_Generic_Decrypt;
level3_.Generic_Sign = Level3_Generic_Sign;
level3_.Generic_Verify = Level3_Generic_Verify;
level3_.GetSignatureHashAlgorithm = nullptr;
level3_.EnterTestMode = nullptr;
// clang-format on
@@ -2260,12 +2260,13 @@ extern "C" OEMCryptoResult OEMCrypto_GetKeyHandle(
}
*key_handle_length = handle_size;
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,
content_key_id_length, cipher_mode);
}
return pair.fcn->GetKeyHandle(session, content_key_id, content_key_id_length,
cipher_mode, key_handle, key_handle_length);
return pair.fcn->GetKeyHandle(pair.session, content_key_id,
content_key_id_length, cipher_mode, key_handle,
key_handle_length);
}
extern "C" OEMCryptoResult OEMCrypto_DecryptCENC(