diff --git a/frameworks/js/napi/crypto/src/napi_asy_key_generator.cpp b/frameworks/js/napi/crypto/src/napi_asy_key_generator.cpp index 50c7afd122f4cd8699d8cb1799f128f87f27c827..bd87fa44c4488745f1caf935f095d12d25245356 100644 --- a/frameworks/js/napi/crypto/src/napi_asy_key_generator.cpp +++ b/frameworks/js/napi/crypto/src/napi_asy_key_generator.cpp @@ -370,18 +370,18 @@ static bool BuildConvertPemKeyCtx(napi_env env, napi_callback_info info, Convert { napi_value thisVar = nullptr; napi_get_cb_info(env, info, nullptr, nullptr, &thisVar, nullptr); - std::string pubKey; - std::string priKey; - HcfParamsSpec *paramsSpec = nullptr; - if (!ValidateAndGetParams(env, info, pubKey, priKey, ¶msSpec)) { - return false; - } NapiAsyKeyGenerator *napiGenerator = nullptr; napi_status status = napi_unwrap(env, thisVar, reinterpret_cast(&napiGenerator)); if (status != napi_ok || napiGenerator == nullptr) { LOGE("failed to unwrap napi asyKeyGenerator obj."); return false; } + std::string pubKey; + std::string priKey; + HcfParamsSpec *paramsSpec = nullptr; + if (!ValidateAndGetParams(env, info, pubKey, priKey, ¶msSpec)) { + return false; + } ctx->generator = napiGenerator->GetAsyKeyGenerator(); ctx->params = paramsSpec; diff --git a/frameworks/js/napi/crypto/src/napi_asy_key_spec_generator.cpp b/frameworks/js/napi/crypto/src/napi_asy_key_spec_generator.cpp index 40e121b42f52dac2fe6e02a7801c517b4b08c0e2..1df4171fc673fa279f965f43a61b296b4d81b980 100644 --- a/frameworks/js/napi/crypto/src/napi_asy_key_spec_generator.cpp +++ b/frameworks/js/napi/crypto/src/napi_asy_key_spec_generator.cpp @@ -625,7 +625,7 @@ napi_value NapiAsyKeyGeneratorBySpec::CreateJsAsyKeyGeneratorBySpec(napi_env env HcfResult res = HcfAsyKeyGeneratorBySpecCreate(asyKeySpec, &generator); FreeAsyKeySpec(asyKeySpec); if (res != HCF_SUCCESS) { - napi_throw(env, GenerateBusinessError(env, res, "create C generator by sepc fail.")); + napi_throw(env, GenerateBusinessError(env, res, "create C generator by spec fail.")); LOGE("create C generator by spec fail."); return nullptr; } diff --git a/frameworks/js/napi/crypto/src/napi_cipher.cpp b/frameworks/js/napi/crypto/src/napi_cipher.cpp index d9a3b0a92210763512d6024a93074fbcb6132680..73f7e4510ac3abfacfc5e72f381258a3def18f79 100644 --- a/frameworks/js/napi/crypto/src/napi_cipher.cpp +++ b/frameworks/js/napi/crypto/src/napi_cipher.cpp @@ -853,6 +853,8 @@ napi_value NapiCipher::JsSetCipherSpec(napi_env env, napi_callback_info info) } HcfBlob *pSource = GetBlobFromNapiUint8Arr(env, argv[1]); if (pSource == nullptr || pSource->len == 0) { + HcfBlobDataFree(pSource); + HcfFree(pSource); LOGE("failed to get pSource."); napi_throw(env, GenerateBusinessError(env, HCF_INVALID_PARAMS, "[pSource]: must be of the DataBlob type.")); return nullptr; diff --git a/frameworks/js/napi/crypto/src/napi_pri_key.cpp b/frameworks/js/napi/crypto/src/napi_pri_key.cpp index 2e9c05e383f2069cf0111d1eca9609945b2b8213..3f7cb491fdb43022badb895d3d04e6a4756dca4a 100644 --- a/frameworks/js/napi/crypto/src/napi_pri_key.cpp +++ b/frameworks/js/napi/crypto/src/napi_pri_key.cpp @@ -151,6 +151,7 @@ static bool ValidateAndGetParams(napi_env env, napi_callback_info info, std::str napi_status status = napi_unwrap(env, thisVar, reinterpret_cast(napiPriKey)); if (status != napi_ok || napiPriKey == nullptr) { LOGE("failed to unwrap napiPriKey obj!"); + FreeEncodeParamsSpec(*paramsSpec); napi_throw(env, GenerateBusinessError(env, HCF_INVALID_PARAMS, "failed to unwrap napiPriKey obj!")); return false; }