From 2d02118243e5880994def4bde7867bb6000cbdd8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=8E=8B=E9=9D=99?= Date: Wed, 4 Jun 2025 09:40:16 +0800 Subject: [PATCH] =?UTF-8?q?=E5=91=8A=E8=AD=A6=E6=B8=85=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: 王静 --- .../asykeygenerator_fuzzer.cpp | 4 +- .../src/native/native_asym_cipher_test.cpp | 71 ++++++++++++++++--- .../src/native/native_asym_key_test.cpp | 54 +++++--------- .../src/native/native_signature_test.cpp | 5 +- 4 files changed, 83 insertions(+), 51 deletions(-) diff --git a/test/fuzztest/key/asykeygenerator_fuzzer/asykeygenerator_fuzzer.cpp b/test/fuzztest/key/asykeygenerator_fuzzer/asykeygenerator_fuzzer.cpp index 5c4e3a5..88134c3 100644 --- a/test/fuzztest/key/asykeygenerator_fuzzer/asykeygenerator_fuzzer.cpp +++ b/test/fuzztest/key/asykeygenerator_fuzzer/asykeygenerator_fuzzer.cpp @@ -47,8 +47,8 @@ static string g_x25519AlgoName = "X25519"; static const uint32_t ASCII_CODE_ZERO = 48; static bool IsBigEndian(void) { - uint32_t *pointer = (uint32_t *)&ASCII_CODE_ZERO; - char firstChar = *((char *)pointer); + uint32_t *pointer = const_cast(&ASCII_CODE_ZERO); + char firstChar = *reinterpret_cast(pointer); if (firstChar == '0') { return false; } else { diff --git a/test/unittest/src/native/native_asym_cipher_test.cpp b/test/unittest/src/native/native_asym_cipher_test.cpp index f1bced3..509094f 100644 --- a/test/unittest/src/native/native_asym_cipher_test.cpp +++ b/test/unittest/src/native/native_asym_cipher_test.cpp @@ -240,8 +240,28 @@ HWTEST_F(NativeAsymCipherTest, NativeAsymCipherTest006, TestSize.Level0) ASSERT_NE(out.data, nullptr); ASSERT_GT(out.len, 0); + OH_Crypto_FreeDataBlob(&out); + OH_CryptoAsymCipher_Destroy(cipher); + OH_CryptoAsymKeyGenerator_Destroy(keyGen); + OH_CryptoKeyPair_Destroy(keyPair); +} + +HWTEST_F(NativeAsymCipherTest, NativeAsymCipherTest007, TestSize.Level0) +{ + uint8_t testData[] = { + 48, 118, 2, 32, 45, 153, 88, 82, 104, 221, 226, 43, 174, 21, 122, 248, 5, 232, 105, 41, 92, 95, 102, 224, 216, + 149, 85, 236, 110, 6, 64, 188, 149, 70, 70, 183, 2, 32, 107, 93, 198, 247, 119, 18, 40, 110, 90, 156, 193, 158, + 205, 113, 170, 128, 146, 109, 75, 17, 181, 109, 110, 91, 149, 5, 110, 233, 209, 78, 229, 96, 4, 32, 87, 167, + 167, 247, 88, 146, 203, 234, 83, 126, 117, 129, 52, 142, 82, 54, 152, 226, 201, 111, 143, 115, 169, 125, 128, + 42, 157, 31, 114, 198, 109, 244, 4, 14, 100, 227, 78, 195, 249, 179, 43, 70, 242, 69, 169, 10, 65, 123 + }; + Crypto_DataBlob out = { + .data = testData, + .len = sizeof(testData) + }; + OH_CryptoSm2CiphertextSpec *sm2CipherSpec = nullptr; - ret = OH_CryptoSm2CiphertextSpec_Create(&out, nullptr); + OH_Crypto_ErrCode ret = OH_CryptoSm2CiphertextSpec_Create(&out, nullptr); EXPECT_NE(ret, CRYPTO_SUCCESS); ret = OH_CryptoSm2CiphertextSpec_Create(&out, &sm2CipherSpec); EXPECT_EQ(ret, CRYPTO_SUCCESS); @@ -267,9 +287,46 @@ HWTEST_F(NativeAsymCipherTest, NativeAsymCipherTest006, TestSize.Level0) ret = OH_CryptoSm2CiphertextSpec_GetItem(sm2CipherSpec, CRYPTO_SM2_CIPHERTEXT_C3, &c3); EXPECT_EQ(ret, CRYPTO_SUCCESS); + OH_Crypto_FreeDataBlob(&c1x); + OH_Crypto_FreeDataBlob(&c1y); + OH_Crypto_FreeDataBlob(&c2); + OH_Crypto_FreeDataBlob(&c3); OH_CryptoSm2CiphertextSpec_Destroy(sm2CipherSpec); - sm2CipherSpec = nullptr; - ret = OH_CryptoSm2CiphertextSpec_Create(nullptr, &sm2CipherSpec); +} + +static void InitCryptoDataBlobs(Crypto_DataBlob *c1x, Crypto_DataBlob *c1y, Crypto_DataBlob *c2, Crypto_DataBlob *c3) +{ + static uint8_t c1xData[] = {45, 153, 88, 82, 104, 221, 226, 43, 174, 21, 122, 248, 5, 232, 105, 41, 92, 95, 102, + 224, 216, 149, 85, 236, 110, 6, 64, 188, 149, 70, 70, 183}; + static uint8_t c1yData[] = {107, 93, 198, 247, 119, 18, 40, 110, 90, 156, 193, 158, 205, 113, 170, 128, 146, 109, + 75, 17, 181, 109, 110, 91, 149, 5, 110, 233, 209, 78, 229, 96}; + static uint8_t c2Data[] = {100, 227, 78, 195, 249, 179, 43, 70, 242, 69, 169, 10, 65, 123}; + static uint8_t c3Data[] = {87, 167, 167, 247, 88, 146, 203, 234, 83, 126, 117, 129, 52, 142, 82, 54, 152, 226, 201, + 111, 143, 115, 169, 125, 128, 42, 157, 31, 114, 198, 109, 244}; + + c1x->data = c1xData; + c1x->len = sizeof(c1xData); + + c1y->data = c1yData; + c1y->len = sizeof(c1yData); + + c2->data = c2Data; + c2->len = sizeof(c2Data); + + c3->data = c3Data; + c3->len = sizeof(c3Data); +} + +HWTEST_F(NativeAsymCipherTest, NativeAsymCipherTest008, TestSize.Level0) +{ + Crypto_DataBlob c1x = { 0 }; + Crypto_DataBlob c1y = { 0 }; + Crypto_DataBlob c2 = { 0 }; + Crypto_DataBlob c3 = { 0 }; + InitCryptoDataBlobs(&c1x, &c1y, &c2, &c3); + + OH_CryptoSm2CiphertextSpec *sm2CipherSpec = nullptr; + OH_Crypto_ErrCode ret = OH_CryptoSm2CiphertextSpec_Create(nullptr, &sm2CipherSpec); EXPECT_EQ(ret, CRYPTO_SUCCESS); ASSERT_NE(sm2CipherSpec, nullptr); @@ -300,14 +357,6 @@ HWTEST_F(NativeAsymCipherTest, NativeAsymCipherTest006, TestSize.Level0) ASSERT_NE(encoded.data, nullptr); ASSERT_GT(encoded.len, 0); - OH_Crypto_FreeDataBlob(&out); - OH_Crypto_FreeDataBlob(&c1x); - OH_Crypto_FreeDataBlob(&c1y); - OH_Crypto_FreeDataBlob(&c2); - OH_Crypto_FreeDataBlob(&c3); OH_Crypto_FreeDataBlob(&encoded); OH_CryptoSm2CiphertextSpec_Destroy(sm2CipherSpec); - OH_CryptoAsymCipher_Destroy(cipher); - OH_CryptoAsymKeyGenerator_Destroy(keyGen); - OH_CryptoKeyPair_Destroy(keyPair); } \ No newline at end of file diff --git a/test/unittest/src/native/native_asym_key_test.cpp b/test/unittest/src/native/native_asym_key_test.cpp index 584e8e6..8139746 100644 --- a/test/unittest/src/native/native_asym_key_test.cpp +++ b/test/unittest/src/native/native_asym_key_test.cpp @@ -215,7 +215,8 @@ static void FreeDsaKeyParams(Crypto_DataBlob *pubKeyData, Crypto_DataBlob *privK OH_Crypto_FreeDataBlob(gData); } -static void FreeRsaKeyParams(Crypto_DataBlob *pubKeyData, Crypto_DataBlob *privKeyData, Crypto_DataBlob *nData) { +static void FreeRsaKeyParams(Crypto_DataBlob *pubKeyData, Crypto_DataBlob *privKeyData, Crypto_DataBlob *nData) +{ OH_Crypto_FreeDataBlob(pubKeyData); OH_Crypto_FreeDataBlob(privKeyData); OH_Crypto_FreeDataBlob(nData); @@ -1216,8 +1217,7 @@ HWTEST_F(NativeAsymKeyTest, NativeAsymKeyTest025, TestSize.Level0) HWTEST_F(NativeAsymKeyTest, NativeAsymKeyTest026, TestSize.Level0) { OH_CryptoAsymKeySpec *ecCommonSpec = nullptr; - OH_Crypto_ErrCode ret = OH_CryptoAsymKeySpec_GenEcCommonParamsSpec("NID_brainpoolP384r1", &ecCommonSpec); - EXPECT_EQ(ret, CRYPTO_SUCCESS); + EXPECT_EQ(OH_CryptoAsymKeySpec_GenEcCommonParamsSpec("NID_brainpoolP384r1", &ecCommonSpec), CRYPTO_SUCCESS); Crypto_DataBlob p = {0}; Crypto_DataBlob a = {0}; @@ -1226,42 +1226,26 @@ HWTEST_F(NativeAsymKeyTest, NativeAsymKeyTest026, TestSize.Level0) Crypto_DataBlob gy = {0}; Crypto_DataBlob n = {0}; Crypto_DataBlob h = {0}; - ret = OH_CryptoAsymKeySpec_GetParam(ecCommonSpec, CRYPTO_ECC_FP_P_DATABLOB, &p); - EXPECT_EQ(ret, CRYPTO_SUCCESS); - ret = OH_CryptoAsymKeySpec_GetParam(ecCommonSpec, CRYPTO_ECC_A_DATABLOB, &a); - EXPECT_EQ(ret, CRYPTO_SUCCESS); - ret = OH_CryptoAsymKeySpec_GetParam(ecCommonSpec, CRYPTO_ECC_B_DATABLOB, &b); - EXPECT_EQ(ret, CRYPTO_SUCCESS); - ret = OH_CryptoAsymKeySpec_GetParam(ecCommonSpec, CRYPTO_ECC_G_X_DATABLOB, &gx); - EXPECT_EQ(ret, CRYPTO_SUCCESS); - ret = OH_CryptoAsymKeySpec_GetParam(ecCommonSpec, CRYPTO_ECC_G_Y_DATABLOB, &gy); - EXPECT_EQ(ret, CRYPTO_SUCCESS); - ret = OH_CryptoAsymKeySpec_GetParam(ecCommonSpec, CRYPTO_ECC_N_DATABLOB, &n); - EXPECT_EQ(ret, CRYPTO_SUCCESS); - ret = OH_CryptoAsymKeySpec_GetParam(ecCommonSpec, CRYPTO_ECC_H_INT, &h); - EXPECT_EQ(ret, CRYPTO_SUCCESS); + EXPECT_EQ(OH_CryptoAsymKeySpec_GetParam(ecCommonSpec, CRYPTO_ECC_FP_P_DATABLOB, &p), CRYPTO_SUCCESS); + EXPECT_EQ(OH_CryptoAsymKeySpec_GetParam(ecCommonSpec, CRYPTO_ECC_A_DATABLOB, &a), CRYPTO_SUCCESS); + EXPECT_EQ(OH_CryptoAsymKeySpec_GetParam(ecCommonSpec, CRYPTO_ECC_B_DATABLOB, &b), CRYPTO_SUCCESS); + EXPECT_EQ(OH_CryptoAsymKeySpec_GetParam(ecCommonSpec, CRYPTO_ECC_G_X_DATABLOB, &gx), CRYPTO_SUCCESS); + EXPECT_EQ(OH_CryptoAsymKeySpec_GetParam(ecCommonSpec, CRYPTO_ECC_G_Y_DATABLOB, &gy), CRYPTO_SUCCESS); + EXPECT_EQ(OH_CryptoAsymKeySpec_GetParam(ecCommonSpec, CRYPTO_ECC_N_DATABLOB, &n), CRYPTO_SUCCESS); + EXPECT_EQ(OH_CryptoAsymKeySpec_GetParam(ecCommonSpec, CRYPTO_ECC_H_INT, &h), CRYPTO_SUCCESS); OH_CryptoAsymKeySpec *keySpec = nullptr; - ret = OH_CryptoAsymKeySpec_Create("ECC", CRYPTO_ASYM_KEY_COMMON_PARAMS_SPEC, &keySpec); - EXPECT_EQ(ret, CRYPTO_SUCCESS); - ret = OH_CryptoAsymKeySpec_SetParam(keySpec, CRYPTO_ECC_FP_P_DATABLOB, &p); - EXPECT_EQ(ret, CRYPTO_SUCCESS); - ret = OH_CryptoAsymKeySpec_SetParam(keySpec, CRYPTO_ECC_A_DATABLOB, &a); - EXPECT_EQ(ret, CRYPTO_SUCCESS); - ret = OH_CryptoAsymKeySpec_SetParam(keySpec, CRYPTO_ECC_B_DATABLOB, &b); - EXPECT_EQ(ret, CRYPTO_SUCCESS); - ret = OH_CryptoAsymKeySpec_SetParam(keySpec, CRYPTO_ECC_G_X_DATABLOB, &gx); - EXPECT_EQ(ret, CRYPTO_SUCCESS); - ret = OH_CryptoAsymKeySpec_SetParam(keySpec, CRYPTO_ECC_G_Y_DATABLOB, &gy); - EXPECT_EQ(ret, CRYPTO_SUCCESS); - ret = OH_CryptoAsymKeySpec_SetParam(keySpec, CRYPTO_ECC_N_DATABLOB, &n); - EXPECT_EQ(ret, CRYPTO_SUCCESS); - ret = OH_CryptoAsymKeySpec_SetParam(keySpec, CRYPTO_ECC_H_INT, &h); - EXPECT_EQ(ret, CRYPTO_SUCCESS); + EXPECT_EQ(OH_CryptoAsymKeySpec_Create("ECC", CRYPTO_ASYM_KEY_COMMON_PARAMS_SPEC, &keySpec), CRYPTO_SUCCESS); + EXPECT_EQ(OH_CryptoAsymKeySpec_SetParam(keySpec, CRYPTO_ECC_FP_P_DATABLOB, &p), CRYPTO_SUCCESS); + EXPECT_EQ(OH_CryptoAsymKeySpec_SetParam(keySpec, CRYPTO_ECC_A_DATABLOB, &a), CRYPTO_SUCCESS); + EXPECT_EQ(OH_CryptoAsymKeySpec_SetParam(keySpec, CRYPTO_ECC_B_DATABLOB, &b), CRYPTO_SUCCESS); + EXPECT_EQ(OH_CryptoAsymKeySpec_SetParam(keySpec, CRYPTO_ECC_G_X_DATABLOB, &gx), CRYPTO_SUCCESS); + EXPECT_EQ(OH_CryptoAsymKeySpec_SetParam(keySpec, CRYPTO_ECC_G_Y_DATABLOB, &gy), CRYPTO_SUCCESS); + EXPECT_EQ(OH_CryptoAsymKeySpec_SetParam(keySpec, CRYPTO_ECC_N_DATABLOB, &n), CRYPTO_SUCCESS); + EXPECT_EQ(OH_CryptoAsymKeySpec_SetParam(keySpec, CRYPTO_ECC_H_INT, &h), CRYPTO_SUCCESS); OH_CryptoKeyPair *keyPair = nullptr; - ret = GenerateKeyPairWithSpec(keySpec, &keyPair); - EXPECT_EQ(ret, CRYPTO_SUCCESS); + EXPECT_EQ(GenerateKeyPairWithSpec(keySpec, &keyPair), CRYPTO_SUCCESS); ASSERT_NE(keyPair, nullptr); ASSERT_NE(OH_CryptoKeyPair_GetPubKey(keyPair), nullptr); ASSERT_NE(OH_CryptoKeyPair_GetPrivKey(keyPair), nullptr); diff --git a/test/unittest/src/native/native_signature_test.cpp b/test/unittest/src/native/native_signature_test.cpp index d7b73a4..43c524a 100644 --- a/test/unittest/src/native/native_signature_test.cpp +++ b/test/unittest/src/native/native_signature_test.cpp @@ -25,9 +25,8 @@ using namespace std; using namespace testing::ext; -namespace{ -class NativeSignatureTest : public testing::Test -{ +namespace { +class NativeSignatureTest : public testing::Test { public: static void SetUpTestCase(); static void TearDownTestCase(); -- Gitee