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:
@@ -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
Reference in New Issue
Block a user