Skip to content

Commit 38b9b49

Browse files
committed
Pass in message_version_ received from the secure side.
Without this there is the possibility of message version mismatch between the secure side and the non-secure side. Bug: 63746689 Test: cts passes Change-Id: I242974eb86dd86ba0f657e7ab3af4ac14c08bb5c
1 parent f95338f commit 38b9b49

File tree

1 file changed

+18
-18
lines changed

1 file changed

+18
-18
lines changed

trusty/keymaster/trusty_keymaster_device.cpp

Lines changed: 18 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -176,14 +176,14 @@ keymaster_error_t TrustyKeymasterDevice::configure(const keymaster_key_param_set
176176
}
177177

178178
AuthorizationSet params_copy(*params);
179-
ConfigureRequest request;
179+
ConfigureRequest request(message_version_);
180180
if (!params_copy.GetTagValue(TAG_OS_VERSION, &request.os_version) ||
181181
!params_copy.GetTagValue(TAG_OS_PATCHLEVEL, &request.os_patchlevel)) {
182182
ALOGD("Configuration parameters must contain OS version and patch level");
183183
return KM_ERROR_INVALID_ARGUMENT;
184184
}
185185

186-
ConfigureResponse response;
186+
ConfigureResponse response(message_version_);
187187
keymaster_error_t err = Send(KM_CONFIGURE, request, &response);
188188
if (err != KM_ERROR_OK) {
189189
return err;
@@ -199,9 +199,9 @@ keymaster_error_t TrustyKeymasterDevice::add_rng_entropy(const uint8_t* data, si
199199
return error_;
200200
}
201201

202-
AddEntropyRequest request;
202+
AddEntropyRequest request(message_version_);
203203
request.random_data.Reinitialize(data, data_length);
204-
AddEntropyResponse response;
204+
AddEntropyResponse response(message_version_);
205205
return Send(KM_ADD_RNG_ENTROPY, request, &response);
206206
}
207207

@@ -260,11 +260,11 @@ keymaster_error_t TrustyKeymasterDevice::get_key_characteristics(
260260
return KM_ERROR_OUTPUT_PARAMETER_NULL;
261261
}
262262

263-
GetKeyCharacteristicsRequest request;
263+
GetKeyCharacteristicsRequest request(message_version_);
264264
request.SetKeyMaterial(*key_blob);
265265
AddClientAndAppData(client_id, app_data, &request);
266266

267-
GetKeyCharacteristicsResponse response;
267+
GetKeyCharacteristicsResponse response(message_version_);
268268
keymaster_error_t err = Send(KM_GET_KEY_CHARACTERISTICS, request, &response);
269269
if (err != KM_ERROR_OK) {
270270
return err;
@@ -378,7 +378,7 @@ keymaster_error_t TrustyKeymasterDevice::attest_key(const keymaster_key_blob_t*
378378
cert_chain->entry_count = 0;
379379
cert_chain->entries = nullptr;
380380

381-
AttestKeyRequest request;
381+
AttestKeyRequest request(message_version_);
382382
request.SetKeyMaterial(*key_to_attest);
383383
request.attest_params.Reinitialize(*attest_params);
384384

@@ -390,7 +390,7 @@ keymaster_error_t TrustyKeymasterDevice::attest_key(const keymaster_key_blob_t*
390390
return KM_ERROR_INVALID_INPUT_LENGTH;
391391
}
392392

393-
AttestKeyResponse response;
393+
AttestKeyResponse response(message_version_);
394394
keymaster_error_t err = Send(KM_ATTEST_KEY, request, &response);
395395
if (err != KM_ERROR_OK) {
396396
return err;
@@ -438,11 +438,11 @@ keymaster_error_t TrustyKeymasterDevice::upgrade_key(const keymaster_key_blob_t*
438438
return KM_ERROR_OUTPUT_PARAMETER_NULL;
439439
}
440440

441-
UpgradeKeyRequest request;
441+
UpgradeKeyRequest request(message_version_);
442442
request.SetKeyMaterial(*key_to_upgrade);
443443
request.upgrade_params.Reinitialize(*upgrade_params);
444444

445-
UpgradeKeyResponse response;
445+
UpgradeKeyResponse response(message_version_);
446446
keymaster_error_t err = Send(KM_UPGRADE_KEY, request, &response);
447447
if (err != KM_ERROR_OK) {
448448
return err;
@@ -479,12 +479,12 @@ keymaster_error_t TrustyKeymasterDevice::begin(keymaster_purpose_t purpose,
479479
*out_params = {};
480480
}
481481

482-
BeginOperationRequest request;
482+
BeginOperationRequest request(message_version_);
483483
request.purpose = purpose;
484484
request.SetKeyMaterial(*key);
485485
request.additional_params.Reinitialize(*in_params);
486486

487-
BeginOperationResponse response;
487+
BeginOperationResponse response(message_version_);
488488
keymaster_error_t err = Send(KM_BEGIN_OPERATION, request, &response);
489489
if (err != KM_ERROR_OK) {
490490
return err;
@@ -527,7 +527,7 @@ keymaster_error_t TrustyKeymasterDevice::update(keymaster_operation_handle_t ope
527527
*output = {};
528528
}
529529

530-
UpdateOperationRequest request;
530+
UpdateOperationRequest request(message_version_);
531531
request.op_handle = operation_handle;
532532
if (in_params) {
533533
request.additional_params.Reinitialize(*in_params);
@@ -537,7 +537,7 @@ keymaster_error_t TrustyKeymasterDevice::update(keymaster_operation_handle_t ope
537537
request.input.Reinitialize(input->data, std::min(input->data_length, max_input_size));
538538
}
539539

540-
UpdateOperationResponse response;
540+
UpdateOperationResponse response(message_version_);
541541
keymaster_error_t err = Send(KM_UPDATE_OPERATION, request, &response);
542542
if (err != KM_ERROR_OK) {
543543
return err;
@@ -588,7 +588,7 @@ keymaster_error_t TrustyKeymasterDevice::finish(keymaster_operation_handle_t ope
588588
*output = {};
589589
}
590590

591-
FinishOperationRequest request;
591+
FinishOperationRequest request(message_version_);
592592
request.op_handle = operation_handle;
593593
if (signature && signature->data && signature->data_length > 0) {
594594
request.signature.Reinitialize(signature->data, signature->data_length);
@@ -600,7 +600,7 @@ keymaster_error_t TrustyKeymasterDevice::finish(keymaster_operation_handle_t ope
600600
request.additional_params.Reinitialize(*in_params);
601601
}
602602

603-
FinishOperationResponse response;
603+
FinishOperationResponse response(message_version_);
604604
keymaster_error_t err = Send(KM_FINISH_OPERATION, request, &response);
605605
if (err != KM_ERROR_OK) {
606606
return err;
@@ -633,9 +633,9 @@ keymaster_error_t TrustyKeymasterDevice::abort(keymaster_operation_handle_t oper
633633
return error_;
634634
}
635635

636-
AbortOperationRequest request;
636+
AbortOperationRequest request(message_version_);
637637
request.op_handle = operation_handle;
638-
AbortOperationResponse response;
638+
AbortOperationResponse response(message_version_);
639639
return Send(KM_ABORT_OPERATION, request, &response);
640640
}
641641

0 commit comments

Comments
 (0)