diff --git a/plugin/openssl_plugin/crypto_operation/cipher/src/cipher_sm4_openssl.c b/plugin/openssl_plugin/crypto_operation/cipher/src/cipher_sm4_openssl.c index 0d3fafd5f0935f99e7f0822a44355f6dd5728700..b87ec88e5228e6a1fd756dfdf88243ebdd7cbc91 100644 --- a/plugin/openssl_plugin/crypto_operation/cipher/src/cipher_sm4_openssl.c +++ b/plugin/openssl_plugin/crypto_operation/cipher/src/cipher_sm4_openssl.c @@ -280,7 +280,7 @@ static HcfResult CheckParam(HcfCipherGeneratorSpi* self, enum HcfCryptoMode opMo LOGE("Invalid input parameter."); return HCF_INVALID_PARAMS; } - if (!HcfIsClassMatch((HcfObjectBase *)self, self->base.getClass())) { + if (!HcfIsClassMatch((HcfObjectBase *)self, GetSm4GeneratorClass())) { LOGE("Class is not match."); return HCF_INVALID_PARAMS; } diff --git a/plugin/openssl_plugin/crypto_operation/signature/src/sm2_openssl.c b/plugin/openssl_plugin/crypto_operation/signature/src/sm2_openssl.c index f2f57bcc9ac7b3aa6b36f6368a52b74173520c93..1819609cb447eba6566395efbc5f678c08165c0f 100644 --- a/plugin/openssl_plugin/crypto_operation/signature/src/sm2_openssl.c +++ b/plugin/openssl_plugin/crypto_operation/signature/src/sm2_openssl.c @@ -172,7 +172,7 @@ static bool IsSm2SignInitInputValid(HcfSignSpi *self, HcfPriKey *privateKey) LOGE("Invalid input parameter."); return false; } - if ((!HcfIsClassMatch((HcfObjectBase *)self, self->base.getClass())) || + if ((!HcfIsClassMatch((HcfObjectBase *)self, GetSm2SignClass())) || (!HcfIsClassMatch((HcfObjectBase *)privateKey, HCF_OPENSSL_SM2_PRI_KEY_CLASS))) { LOGE("Class not match."); return false; diff --git a/plugin/openssl_plugin/key/asy_key_generator/src/ecc_common_param_spec_generator_openssl.c b/plugin/openssl_plugin/key/asy_key_generator/src/ecc_common_param_spec_generator_openssl.c index aa460d877dfd09557be454bfcb918fc748062c67..ee7e940b40b2dfec07b7b43f2d12fa95f72a8237 100644 --- a/plugin/openssl_plugin/key/asy_key_generator/src/ecc_common_param_spec_generator_openssl.c +++ b/plugin/openssl_plugin/key/asy_key_generator/src/ecc_common_param_spec_generator_openssl.c @@ -444,6 +444,8 @@ HcfResult HcfEngineGetEncodedPoint(const int32_t curveNameValue, HcfPoint *point LOGE("Failed to get EccPoint."); break; } +OpensslBnFree(bnX); +OpensslBnFree(bnY); ret = BigIntegerToBigNum(&(point->x), &bnX); if (ret != HCF_SUCCESS) { LOGE("Failed to convert HcfBigInteger to XBIGNUMs."); diff --git a/test/unittest/src/alg_25519_common_param_spec.c b/test/unittest/src/alg_25519_common_param_spec.c index 1e01db00c54cd4c7cf2e2dea99f5ed3c8075862d..705bbbb035d61ff5543b2642914add1fded638e9 100644 --- a/test/unittest/src/alg_25519_common_param_spec.c +++ b/test/unittest/src/alg_25519_common_param_spec.c @@ -283,6 +283,7 @@ HcfResult TestGenerateKeyPairAndConvertKey(const char *algName, HcfAsyKeyGenerat if (res != HCF_SUCCESS) { return HCF_ERR_CRYPTO_OPERATION; } + HcfObjDestroy(*keyPair); res = TestGenerateConvertKey(*generator, pubKeyBlob, priKeyBlob, keyPair); if (res != HCF_SUCCESS) { return HCF_ERR_CRYPTO_OPERATION; diff --git a/test/unittest/src/crypto_sm2_sign_test.cpp b/test/unittest/src/crypto_sm2_sign_test.cpp index d883e6098a8340112d139277176d7ef394956fd8..718fd90a1985ca94e0ceebe58d734d7dcc28373d 100644 --- a/test/unittest/src/crypto_sm2_sign_test.cpp +++ b/test/unittest/src/crypto_sm2_sign_test.cpp @@ -943,6 +943,7 @@ static void OpensslMockTestFunc(uint32_t mallocCount, HcfBlob *input) res = sign->setSignSpecUint8Array(sign, SM2_USER_ID_UINT8ARR, pSource); if (res != HCF_SUCCESS) { HcfObjDestroy(sign); + HcfObjDestroy(keyPair); continue; } res = sign->update(sign, input); diff --git a/test/unittest/src/crypto_sm2_verify_test.cpp b/test/unittest/src/crypto_sm2_verify_test.cpp index 27fa1fe75cdb8ec4c2707166d8c239d2ba2b4576..bbaf8190f9084bee81f9f2ebb479b311f6ac98eb 100644 --- a/test/unittest/src/crypto_sm2_verify_test.cpp +++ b/test/unittest/src/crypto_sm2_verify_test.cpp @@ -983,6 +983,7 @@ HWTEST_F(CryptoSm2VerifyTest, CryptoSm2VerifyTest041, TestSize.Level0) uint32_t mallocCount = GetMallocNum(); MemoryMockTestFunc(mallocCount, &out); EndRecordMallocNum(); + HcfBlobDataFree(&out); } static void OpensslMockTestFunc(uint32_t mallocCount, HcfBlob *out) @@ -1043,6 +1044,7 @@ HWTEST_F(CryptoSm2VerifyTest, CryptoSm2VerifyTest042, TestSize.Level0) uint32_t mallocCount = GetOpensslCallNum(); OpensslMockTestFunc(mallocCount, &out); EndRecordOpensslCallNum(); + HcfBlobDataFree(&out); } HWTEST_F(CryptoSm2VerifyTest, CryptoSm2VerifyTest043, TestSize.Level0) diff --git a/test/unittest/src/crypto_sm4_cipher_test.cpp b/test/unittest/src/crypto_sm4_cipher_test.cpp index f668c724f86b36296914d30e92e794e1ead88506..2fb1c98573d38a8fbc3f3eb2b8e19ae400b55610 100644 --- a/test/unittest/src/crypto_sm4_cipher_test.cpp +++ b/test/unittest/src/crypto_sm4_cipher_test.cpp @@ -43,11 +43,6 @@ public: void TearDown() {}; }; -HcfObjectBase obj = { - .getClass = GetMockClass, - .destroy = nullptr -}; - HWTEST_F(CryptoSM4CipherTest, CryptoSm4CipherTest004, TestSize.Level0) { int ret = 0; @@ -981,6 +976,10 @@ HWTEST_F(CryptoSM4CipherTest, CryptoSm4CipherTest064, TestSize.Level0) HcfResult res = HCF_SUCCESS; HcfCipherGeneratorSpi *cipher = nullptr; HcfSymKey *key = nullptr; + HcfObjectBase obj = { + .getClass = GetMockClass, + .destroy = nullptr + }; CipherAttr params = { .algo = HCF_ALG_SM4, .md = HCF_OPENSSL_DIGEST_SM3, @@ -992,6 +991,7 @@ HWTEST_F(CryptoSM4CipherTest, CryptoSm4CipherTest064, TestSize.Level0) res = cipher->init((HcfCipherGeneratorSpi *)(&obj), ENCRYPT_MODE, (HcfKey *)key, nullptr); ASSERT_EQ(res, HCF_INVALID_PARAMS); + HcfObjDestroy(key); HcfObjDestroy(cipher); } @@ -1012,6 +1012,7 @@ HWTEST_F(CryptoSM4CipherTest, CryptoSm4CipherTest065, TestSize.Level0) res = cipher->init(nullptr, ENCRYPT_MODE, (HcfKey *)key, nullptr); ASSERT_EQ(res, HCF_INVALID_PARAMS); + HcfObjDestroy(key); HcfObjDestroy(cipher); } @@ -1047,6 +1048,7 @@ HWTEST_F(CryptoSM4CipherTest, CryptoSm4CipherTest067, TestSize.Level0) EXPECT_EQ(res, HCF_SUCCESS); cipher->base.destroy(nullptr); + HcfObjDestroy(key); HcfObjDestroy(cipher); } @@ -1072,6 +1074,7 @@ HWTEST_F(CryptoSM4CipherTest, CryptoSm4CipherTest069, TestSize.Level0) res = cipher->update(nullptr, &input, &blob); EXPECT_NE(res, 0); + HcfObjDestroy(key); HcfObjDestroy(cipher); } @@ -1094,6 +1097,7 @@ HWTEST_F(CryptoSM4CipherTest, CryptoSm4CipherTest070, TestSize.Level0) res = cipher->update(cipher, nullptr, &blob); EXPECT_NE(res, 0); + HcfObjDestroy(key); HcfObjDestroy(cipher); } @@ -1118,6 +1122,7 @@ HWTEST_F(CryptoSM4CipherTest, CryptoSm4CipherTest071, TestSize.Level0) res = cipher->update(cipher, &input, nullptr); EXPECT_NE(res, 0); + HcfObjDestroy(key); HcfObjDestroy(cipher); } diff --git a/test/unittest/src/crypto_x25519_asy_key_generator_by_spec_test.cpp b/test/unittest/src/crypto_x25519_asy_key_generator_by_spec_test.cpp index e464297fa1d06fb44c5fb46d428eab96ffdd2b3d..927c8afba9727bd49d4e7f86db96fad1c89aadbe 100644 --- a/test/unittest/src/crypto_x25519_asy_key_generator_by_spec_test.cpp +++ b/test/unittest/src/crypto_x25519_asy_key_generator_by_spec_test.cpp @@ -539,6 +539,7 @@ HWTEST_F(CryptoX25519AsyKeyGeneratorBySpecTest, CryptoX25519AsyKeyGeneratorBySpe HcfFree(blob2.data); HcfObjDestroy(returnObj); HcfObjDestroy(pubKey); + HcfObjDestroy(generator); HcfObjDestroy(keyPair); DestroyAlg25519PubKeySpec(reinterpret_cast(paramSpec)); } @@ -580,6 +581,7 @@ HWTEST_F(CryptoX25519AsyKeyGeneratorBySpecTest, CryptoX25519AsyKeyGeneratorBySpe HcfFree(blob2.data); HcfObjDestroy(returnObj); HcfObjDestroy(priKey); + HcfObjDestroy(generator); HcfObjDestroy(keyPair); DestroyAlg25519PriKeySpec(reinterpret_cast(paramSpec)); } @@ -612,6 +614,7 @@ HWTEST_F(CryptoX25519AsyKeyGeneratorBySpecTest, CryptoX25519AsyKeyGeneratorBySpe HcfFree(blob.data); HcfObjDestroy(returnObj); + HcfObjDestroy(generator); HcfObjDestroy(priKey); HcfObjDestroy(keyPair); DestroyAlg25519PriKeySpec(reinterpret_cast(paramSpec)); @@ -644,6 +647,7 @@ HWTEST_F(CryptoX25519AsyKeyGeneratorBySpecTest, CryptoX25519AsyKeyGeneratorBySpe res = generator->convertKey(generator, nullptr, &blob, nullptr, &keyPair); HcfFree(blob.data); + HcfObjDestroy(generator); HcfObjDestroy(returnObj); HcfObjDestroy(pubKey); HcfObjDestroy(keyPair); diff --git a/test/unittest/src/crypto_x25519_asy_key_generator_test.cpp b/test/unittest/src/crypto_x25519_asy_key_generator_test.cpp index 68a77096ec9f292e9a31b161a9cbeb0ed6a82291..e335755745374d25688ad40ca39452bf8c9dd793 100644 --- a/test/unittest/src/crypto_x25519_asy_key_generator_test.cpp +++ b/test/unittest/src/crypto_x25519_asy_key_generator_test.cpp @@ -302,9 +302,11 @@ HWTEST_F(CryptoX25519AsyKeyGeneratorTest, CryptoX25519AsyKeyGeneratorTest015, Te HcfResult res = TestGenerateKeyPairAndConvertKey(g_x25519AlgoName.c_str(), &generator, &g_mockX25519PubKeyBlob, &g_mockX25519PriKeyBlob, &keyPair); ASSERT_EQ(res, HCF_SUCCESS); + HcfObjDestroy(keyPair); res = TestGenerateConvertKey(generator, nullptr, &g_mockX25519PriKeyBlob, &keyPair); ASSERT_EQ(res, HCF_SUCCESS); + HcfObjDestroy(keyPair); res = TestGenerateConvertKey(generator, &g_mockX25519PubKeyBlob, nullptr, &keyPair); ASSERT_EQ(res, HCF_SUCCESS); @@ -336,8 +338,9 @@ HWTEST_F(CryptoX25519AsyKeyGeneratorTest, CryptoX25519AsyKeyGeneratorTest017, Te &g_mockX25519PriKeyBlob, &keyPair); ASSERT_EQ(res, HCF_SUCCESS); - keyPair->base.destroy(&(keyPair->base)); + // keyPair->base.destroy(&(keyPair->base)); + HcfObjDestroy(keyPair); HcfObjDestroy(generator); } diff --git a/test/unittest/src/ecc/crypto_ecc_asy_key_generator_by_spec_sub_four_test.cpp b/test/unittest/src/ecc/crypto_ecc_asy_key_generator_by_spec_sub_four_test.cpp index c04a6b555f3fcf466cf81b121c3eda60d48d8462..50f3c716ed7d6ede0b603dbf1ee22402ee43cccb 100644 --- a/test/unittest/src/ecc/crypto_ecc_asy_key_generator_by_spec_sub_four_test.cpp +++ b/test/unittest/src/ecc/crypto_ecc_asy_key_generator_by_spec_sub_four_test.cpp @@ -478,6 +478,7 @@ HWTEST_F(CryptoEccAsyKeyGeneratorBySpecSubFourTest, CryptoEccAsyKeyGeneratorBySp res = spiObj->engineGenerateKeyPairBySpec(spiObj, paramSpec, &keyPair); ASSERT_EQ(res, HCF_SUCCESS); + HcfObjDestroy(keyPair); HcfObjDestroy(spiObj); } @@ -504,6 +505,7 @@ HWTEST_F(CryptoEccAsyKeyGeneratorBySpecSubFourTest, CryptoEccAsyKeyGeneratorBySp res = spiObj->engineGeneratePubKeyBySpec(spiObj, paramSpec, &pubKey); ASSERT_EQ(res, HCF_SUCCESS); + HcfObjDestroy(pubKey); HcfObjDestroy(spiObj); } @@ -530,6 +532,7 @@ HWTEST_F(CryptoEccAsyKeyGeneratorBySpecSubFourTest, CryptoEccAsyKeyGeneratorBySp res = spiObj->engineGeneratePriKeyBySpec(spiObj, paramSpec, &priKey); ASSERT_EQ(res, HCF_SUCCESS); + HcfObjDestroy(priKey); HcfObjDestroy(spiObj); } @@ -556,6 +559,7 @@ HWTEST_F(CryptoEccAsyKeyGeneratorBySpecSubFourTest, CryptoEccAsyKeyGeneratorBySp res = spiObj->engineGenerateKeyPairBySpec(spiObj, paramSpec, &keyPair); ASSERT_EQ(res, HCF_SUCCESS); + HcfObjDestroy(keyPair); HcfObjDestroy(spiObj); } diff --git a/test/unittest/src/ecc/crypto_ecc_ecdh_pub_test.cpp b/test/unittest/src/ecc/crypto_ecc_ecdh_pub_test.cpp index c385f4d7ff03bd34dc64500408a4f20efc3260d4..b5a5ac6bb3ea7603ae6c19d9ebf0af41d0ad4df6 100644 --- a/test/unittest/src/ecc/crypto_ecc_ecdh_pub_test.cpp +++ b/test/unittest/src/ecc/crypto_ecc_ecdh_pub_test.cpp @@ -1024,6 +1024,7 @@ HWTEST_F(CryptoEccEcdhPubTest, CryptoEccEcdhPubTest001, TestSize.Level0) bool flag = verify->verify(verify, &g_inputTwo, &returnBlob); EXPECT_EQ(flag, true); + HcfObjDestroy(keyPair); HcfObjDestroy(generator); HcfObjDestroy(sign); HcfObjDestroy(verify);