diff options
Diffstat (limited to 'ng/AndroidKeyMintOperation.cpp')
-rw-r--r-- | ng/AndroidKeyMintOperation.cpp | 21 |
1 files changed, 18 insertions, 3 deletions
diff --git a/ng/AndroidKeyMintOperation.cpp b/ng/AndroidKeyMintOperation.cpp index 17f6b33..b886bd7 100644 --- a/ng/AndroidKeyMintOperation.cpp +++ b/ng/AndroidKeyMintOperation.cpp @@ -50,11 +50,16 @@ AndroidKeyMintOperation::~AndroidKeyMintOperation() { ScopedAStatus AndroidKeyMintOperation::updateAad(const vector<uint8_t>& input, - const optional<HardwareAuthToken>& /* authToken */, + const optional<HardwareAuthToken>& authToken, const optional<TimeStampToken>& /* timestampToken */) { UpdateOperationRequest request(impl_->message_version()); request.op_handle = opHandle_; request.additional_params.push_back(TAG_ASSOCIATED_DATA, input.data(), input.size()); + if (authToken) { + auto tokenAsVec(authToken2AidlVec(*authToken)); + request.additional_params.push_back(keymaster::TAG_AUTH_TOKEN, tokenAsVec.data(), + tokenAsVec.size()); + } UpdateOperationResponse response(impl_->message_version()); impl_->UpdateOperation(request, &response); @@ -63,7 +68,7 @@ AndroidKeyMintOperation::updateAad(const vector<uint8_t>& input, } ScopedAStatus AndroidKeyMintOperation::update(const vector<uint8_t>& input, - const optional<HardwareAuthToken>& /* authToken */, + const optional<HardwareAuthToken>& authToken, const optional<TimeStampToken>& /* timestampToken */, vector<uint8_t>* output) { @@ -72,6 +77,11 @@ ScopedAStatus AndroidKeyMintOperation::update(const vector<uint8_t>& input, UpdateOperationRequest request(impl_->message_version()); request.op_handle = opHandle_; request.input.Reinitialize(input.data(), input.size()); + if (authToken) { + auto tokenAsVec(authToken2AidlVec(*authToken)); + request.additional_params.push_back(keymaster::TAG_AUTH_TOKEN, tokenAsVec.data(), + tokenAsVec.size()); + } UpdateOperationResponse response(impl_->message_version()); impl_->UpdateOperation(request, &response); @@ -88,7 +98,7 @@ ScopedAStatus AndroidKeyMintOperation::update(const vector<uint8_t>& input, ScopedAStatus AndroidKeyMintOperation::finish(const optional<vector<uint8_t>>& input, // const optional<vector<uint8_t>>& signature, // - const optional<HardwareAuthToken>& /* authToken */, + const optional<HardwareAuthToken>& authToken, const optional<TimeStampToken>& /* timestampToken */, const optional<vector<uint8_t>>& /* confirmationToken */, vector<uint8_t>* output) { @@ -102,6 +112,11 @@ AndroidKeyMintOperation::finish(const optional<vector<uint8_t>>& input, // request.op_handle = opHandle_; if (input) request.input.Reinitialize(input->data(), input->size()); if (signature) request.signature.Reinitialize(signature->data(), signature->size()); + if (authToken) { + auto tokenAsVec(authToken2AidlVec(*authToken)); + request.additional_params.push_back(keymaster::TAG_AUTH_TOKEN, tokenAsVec.data(), + tokenAsVec.size()); + } FinishOperationResponse response(impl_->message_version()); impl_->FinishOperation(request, &response); |