summaryrefslogtreecommitdiff
path: root/KM300/JavacardSharedSecret.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'KM300/JavacardSharedSecret.cpp')
-rw-r--r--KM300/JavacardSharedSecret.cpp99
1 files changed, 0 insertions, 99 deletions
diff --git a/KM300/JavacardSharedSecret.cpp b/KM300/JavacardSharedSecret.cpp
deleted file mode 100644
index 5c70445..0000000
--- a/KM300/JavacardSharedSecret.cpp
+++ /dev/null
@@ -1,99 +0,0 @@
-/******************************************************************************
- **
- ** The original Work has been changed by NXP.
- **
- ** Licensed under the Apache License, Version 2.0 (the "License");
- ** you may not use this file except in compliance with the License.
- ** You may obtain a copy of the License at
- **
- ** http://www.apache.org/licenses/LICENSE-2.0
- **
- ** Unless required by applicable law or agreed to in writing, software
- ** distributed under the License is distributed on an "AS IS" BASIS,
- ** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- ** See the License for the specific language governing permissions and
- ** limitations under the License.
- **
- ** Copyright 2021-2022 NXP
- **
- *********************************************************************************/
-#define LOG_TAG "javacard.strongbox.keymint.operation-impl"
-#include "JavacardSharedSecret.h"
-
-#include <android-base/logging.h>
-
-#include <KeyMintUtils.h>
-#include <memunreachable/memunreachable.h>
-
-/* 1 sec delay till OMAPI service initialized (~ 30 to 40 secs)
- * 20 retry as per transport layer retry logic.
- * Each retry logic takes 11~12 secs*/
-#define MAX_SHARED_SECRET_RETRY_COUNT 60
-
-namespace aidl::android::hardware::security::sharedsecret {
-using ::keymint::javacard::Instruction;
-
-static uint8_t getSharedSecretRetryCount = 0x00;
-
-ScopedAStatus JavacardSharedSecret::getSharedSecretParameters(SharedSecretParameters* params) {
- auto error = card_->initializeJavacard();
- if (error != KM_ERROR_OK) {
- LOG(ERROR) << "Error in initializing javacard.";
- }
- auto [item, err] = card_->sendRequest(Instruction::INS_GET_SHARED_SECRET_PARAM_CMD);
-#ifdef NXP_EXTNS
- if (err != KM_ERROR_OK && (getSharedSecretRetryCount < MAX_SHARED_SECRET_RETRY_COUNT)) {
- getSharedSecretRetryCount++;
- } else if (err != KM_ERROR_OK) {
- std::vector<uint8_t> refNonceSeed = {
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 };
- params->seed.assign(refNonceSeed.begin(), refNonceSeed.end());
- params->nonce.assign(refNonceSeed.begin(), refNonceSeed.end());
- err = KM_ERROR_OK;
- return ScopedAStatus::ok();
- }
-#endif
- if (err != KM_ERROR_OK) {
- LOG(ERROR) << "Error in sending in getSharedSecretParameters.";
- return keymint::km_utils::kmError2ScopedAStatus(err);
- }
- auto optSSParams = cbor_.getSharedSecretParameters(item, 1);
- if (!optSSParams) {
- LOG(ERROR) << "Error in sending in getSharedSecretParameters.";
- return keymint::km_utils::kmError2ScopedAStatus(KM_ERROR_UNKNOWN_ERROR);
- }
- *params = std::move(optSSParams.value());
- return ScopedAStatus::ok();
-}
-
-ScopedAStatus
-JavacardSharedSecret::computeSharedSecret(const std::vector<SharedSecretParameters>& params,
- std::vector<uint8_t>* secret) {
- card_->sendPendingEvents();
- auto error = card_->initializeJavacard();
- if (error != KM_ERROR_OK) {
- LOG(ERROR) << "Error in initializing javacard.";
- }
- cppbor::Array request;
- cbor_.addSharedSecretParameters(request, params);
- auto [item, err] = card_->sendRequest(Instruction::INS_COMPUTE_SHARED_SECRET_CMD, request);
- if (err != KM_ERROR_OK) {
- LOG(ERROR) << "Error in sending in computeSharedSecret.";
- return keymint::km_utils::kmError2ScopedAStatus(err);
- }
- auto optSecret = cbor_.getByteArrayVec(item, 1);
- if (!optSecret) {
- LOG(ERROR) << "Error in decoding the response in computeSharedSecret.";
- return keymint::km_utils::kmError2ScopedAStatus(KM_ERROR_UNKNOWN_ERROR);
- }
- *secret = std::move(optSecret.value());
- return ScopedAStatus::ok();
-}
-binder_status_t JavacardSharedSecret::dump(int /* fd */, const char** /* p */, uint32_t /* q */) {
- LOG(INFO) << "\n KeyMint-JavacardSharedSecret HAL MemoryLeak Info = \n"
- << ::android::GetUnreachableMemoryString(true, 10000).c_str();
- return STATUS_OK;
-}
-} // namespace aidl::android::hardware::security::sharedsecret