From c523e8996c12e809a805dbb47b9c21804e169965 Mon Sep 17 00:00:00 2001 From: "avinash.hedage" Date: Thu, 23 Dec 2021 08:00:17 +0000 Subject: [PATCH] Confirmation token HAL changes --- HAL/JavacardKeyMintOperation.cpp | 6 +++++- HAL/JavacardKeyMintOperation.h | 2 +- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/HAL/JavacardKeyMintOperation.cpp b/HAL/JavacardKeyMintOperation.cpp index a1882266..59870668 100644 --- a/HAL/JavacardKeyMintOperation.cpp +++ b/HAL/JavacardKeyMintOperation.cpp @@ -78,6 +78,7 @@ ScopedAStatus JavacardKeyMintOperation::finish( const optional>& /*confirmationToken*/, vector* output) { HardwareAuthToken aToken = authToken.value_or(HardwareAuthToken()); TimeStampToken tToken = timestampToken.value_or(TimeStampToken()); + const vector confToken = confirmationToken.value_or(vector()); const vector inData = input.value_or(vector()); DataView view = {.buffer = {}, .data = inData, .start = 0, .length = inData.size()}; const vector sign = signature.value_or(vector()); @@ -92,7 +93,7 @@ ScopedAStatus JavacardKeyMintOperation::finish( } } vector remaining = popNextChunk(view, view.length); - return km_utils::kmError2ScopedAStatus(sendFinish(remaining, sign, aToken, tToken, *output)); + return km_utils::kmError2ScopedAStatus(sendFinish(remaining, sign, aToken, tToken, confToken, *output)); } ScopedAStatus JavacardKeyMintOperation::abort() { @@ -262,6 +263,7 @@ keymaster_error_t JavacardKeyMintOperation::sendFinish(const vector& da const vector& sign, const HardwareAuthToken& authToken, const TimeStampToken& timestampToken, + const vector& confToken, vector& output) { cppbor::Array request; request.add(Uint(opHandle_)); @@ -269,6 +271,8 @@ keymaster_error_t JavacardKeyMintOperation::sendFinish(const vector& da request.add(Bstr(sign)); cbor_.addHardwareAuthToken(request, authToken); cbor_.addTimeStampToken(request, timestampToken); + request.add(Bstr(confToken)); + auto [item, err] = card_->sendRequest(Instruction::INS_FINISH_OPERATION_CMD, request); if (err != KM_ERROR_OK) { return err; diff --git a/HAL/JavacardKeyMintOperation.h b/HAL/JavacardKeyMintOperation.h index 642d65ee..2ac6930b 100644 --- a/HAL/JavacardKeyMintOperation.h +++ b/HAL/JavacardKeyMintOperation.h @@ -98,7 +98,7 @@ class JavacardKeyMintOperation : public BnKeyMintOperation { keymaster_error_t sendFinish(const vector& data, const vector& signature, const HardwareAuthToken& authToken, - const TimeStampToken& timestampToken, vector& output); + const TimeStampToken& timestampToken, const vector& confToken, vector& output); keymaster_error_t sendUpdate(const vector& data, const HardwareAuthToken& authToken, const TimeStampToken& timestampToken, vector& output);