Allow server to send license with larger ODK_MAX_NUM_KEYS
PiperOrigin-RevId: 538676411 Merged from https://widevine-internal-review.googlesource.com/175915 Change-Id: Iadef2115fe3f9001034223e647cbfa6228484281
This commit is contained in:
@@ -694,7 +694,7 @@ void LicenseRoundTrip::CreateDefaultResponse() {
|
||||
FillCoreResponseSubstrings();
|
||||
}
|
||||
|
||||
void LicenseRoundTrip::ConvertDataToValidBools(ODK_ParsedLicense* t) {
|
||||
void LicenseRoundTrip::ConvertDataToValidBools(ODK_Packing_ParsedLicense* t) {
|
||||
t->nonce_required = ConvertByteToValidBoolean(&t->nonce_required);
|
||||
t->timer_limits.soft_enforce_playback_duration = ConvertByteToValidBoolean(
|
||||
&t->timer_limits.soft_enforce_playback_duration);
|
||||
@@ -802,27 +802,30 @@ void LicenseRoundTrip::FillCoreResponseSubstrings() {
|
||||
sizeof(response_data_.srm_restriction_data));
|
||||
}
|
||||
core_response_.key_array_length = num_keys_;
|
||||
key_array_.clear();
|
||||
for (unsigned int i = 0; i < num_keys_; i++) {
|
||||
core_response_.key_array[i].key_id = FindSubstring(
|
||||
response_data_.keys[i].key_id, response_data_.keys[i].key_id_length);
|
||||
core_response_.key_array[i].key_data_iv = FindSubstring(
|
||||
response_data_.keys[i].key_iv, sizeof(response_data_.keys[i].key_iv));
|
||||
core_response_.key_array[i].key_data =
|
||||
FindSubstring(response_data_.keys[i].key_data,
|
||||
response_data_.keys[i].key_data_length);
|
||||
OEMCrypto_KeyObject obj;
|
||||
obj.key_id = FindSubstring(response_data_.keys[i].key_id,
|
||||
response_data_.keys[i].key_id_length);
|
||||
obj.key_data_iv = FindSubstring(response_data_.keys[i].key_iv,
|
||||
sizeof(response_data_.keys[i].key_iv));
|
||||
obj.key_data = FindSubstring(response_data_.keys[i].key_data,
|
||||
response_data_.keys[i].key_data_length);
|
||||
if (core_request().api_major_version < kClearControlBlockAPIMajor ||
|
||||
(core_request().api_major_version == kClearControlBlockAPIMajor &&
|
||||
core_request().api_minor_version < kClearControlBlockAPIMinor)) {
|
||||
core_response_.key_array[i].key_control_iv =
|
||||
obj.key_control_iv =
|
||||
FindSubstring(response_data_.keys[i].control_iv,
|
||||
sizeof(response_data_.keys[i].control_iv));
|
||||
} else {
|
||||
core_response_.key_array[i].key_control_iv = FindSubstring(nullptr, 0);
|
||||
obj.key_control_iv = FindSubstring(nullptr, 0);
|
||||
}
|
||||
core_response_.key_array[i].key_control =
|
||||
FindSubstring(&response_data_.keys[i].control,
|
||||
sizeof(response_data_.keys[i].control));
|
||||
obj.key_control = FindSubstring(&response_data_.keys[i].control,
|
||||
sizeof(response_data_.keys[i].control));
|
||||
key_array_.push_back(obj);
|
||||
}
|
||||
core_response_.key_array = key_array_.data();
|
||||
core_response_.key_array_length = static_cast<uint32_t>(key_array_.size());
|
||||
}
|
||||
|
||||
void LicenseRoundTrip::EncryptResponse(bool force_clear_kcb) {
|
||||
|
||||
Reference in New Issue
Block a user