From 84b18d8eb89f73b641a6fd66783247cc20d8dd1f Mon Sep 17 00:00:00 2001 From: hhhFun Date: Sat, 14 Sep 2024 11:48:55 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E5=86=85=E5=AD=98=E6=B3=84?= =?UTF-8?q?=E6=BC=8F=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: hhhFun --- .../cipher/src/cipher_sm4_openssl.c | 2 +- .../crypto_operation/signature/src/sm2_openssl.c | 2 +- .../src/ecc_common_param_spec_generator_openssl.c | 2 ++ test/unittest/src/alg_25519_common_param_spec.c | 1 + test/unittest/src/crypto_sm2_sign_test.cpp | 1 + test/unittest/src/crypto_sm2_verify_test.cpp | 2 ++ test/unittest/src/crypto_sm4_cipher_test.cpp | 15 ++++++++++----- ...ypto_x25519_asy_key_generator_by_spec_test.cpp | 4 ++++ .../src/crypto_x25519_asy_key_generator_test.cpp | 5 ++++- ...cc_asy_key_generator_by_spec_sub_four_test.cpp | 4 ++++ .../unittest/src/ecc/crypto_ecc_ecdh_pub_test.cpp | 1 + 11 files changed, 31 insertions(+), 8 deletions(-) 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 0d3fafd..b87ec88 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 f2f57bc..1819609 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 aa460d8..ee7e940 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 1e01db0..705bbbb 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 d883e60..718fd90 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 27fa1fe..bbaf819 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 f668c72..2fb1c98 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 e464297..927c8af 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 68a7709..e335755 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 c04a6b5..50f3c71 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 c385f4d..b5a5ac6 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); -- Gitee