From 30b6e643c02ab8bedf0532cc987b8439f258c1c3 Mon Sep 17 00:00:00 2001 From: tan-qingliu Date: Fri, 13 Jun 2025 22:10:25 +0800 Subject: [PATCH] =?UTF-8?q?=E8=A6=86=E7=9B=96=E7=8E=87=E6=8F=90=E5=8D=87?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: tan-qingliu --- .../module_test/src/cm_cert_parse_test.cpp | 80 +++++++++++++++++++ 1 file changed, 80 insertions(+) diff --git a/test/unittest/module_test/src/cm_cert_parse_test.cpp b/test/unittest/module_test/src/cm_cert_parse_test.cpp index 3883b9b..9c3ffd4 100644 --- a/test/unittest/module_test/src/cm_cert_parse_test.cpp +++ b/test/unittest/module_test/src/cm_cert_parse_test.cpp @@ -25,9 +25,14 @@ #include "cm_pfx.h" #include "cm_type.h" #include "cm_x509.h" +#include "cm_cert_data_p7b.h" +#include "cm_cert_data_ed25519.h" +#include "cm_util.h" using namespace testing::ext; namespace { +static constexpr uint32_t STR_MAX_LEN = 10; + static constexpr uint32_t DEFAULT_SIZE = 1024; class CmCertParseTest : public testing::Test { @@ -552,4 +557,79 @@ HWTEST_F(CmCertParseTest, CmCertParseTest028, TestSize.Level0) EVP_PKEY_free(pkey); } + +/** +* @tc.name: CmCertParseTest029 +* @tc.desc: test init P7B format cert +* @tc.type: FUNC +* @tc.require: AR000H0MIA /SR000H09NA +*/ +HWTEST_F(CmCertParseTest, CmCertParseTest029, TestSize.Level0) +{ + STACK_OF(X509) *certStack = InitCertStackContext(g_p7bUserCert.data, g_p7bUserCert.size); + EXPECT_NE(certStack, nullptr); + sk_X509_pop_free(certStack, X509_free); +} + +/** +* @tc.name: CmCertParseTest030 +* @tc.desc: test init P7B format cert +* @tc.type: FUNC +* @tc.require: AR000H0MIA /SR000H09NA +*/ +HWTEST_F(CmCertParseTest, CmCertParseTest030, TestSize.Level0) +{ + STACK_OF(X509) *certStack = InitCertStackContext(g_p7bUserCertTooLongSubj.data, g_p7bUserCertTooLongSubj.size); + EXPECT_NE(certStack, nullptr); + sk_X509_pop_free(certStack, X509_free); +} + +/** +* @tc.name: CmCertParseTest031 +* @tc.desc: test init P7B format cert +* @tc.type: FUNC +* @tc.require: AR000H0MIA /SR000H09NA +*/ +HWTEST_F(CmCertParseTest, CmCertParseTest031, TestSize.Level0) +{ + STACK_OF(X509) *certStack = InitCertStackContext(nullptr, 0); + EXPECT_EQ(certStack, nullptr); + sk_X509_pop_free(certStack, X509_free); + certStack = InitCertStackContext(g_p7bUserCertTooLongSubj.data, 0); + EXPECT_EQ(certStack, nullptr); + sk_X509_pop_free(certStack, X509_free); + certStack = InitCertStackContext(g_p7bUserCertTooLongSubj.data, MAX_LEN_CERTIFICATE_P7B + 1); + EXPECT_EQ(certStack, nullptr); + sk_X509_pop_free(certStack, X509_free); + certStack = InitCertStackContext(g_ed25519P12CertInfo, sizeof(g_ed25519P12CertInfo)); + EXPECT_EQ(certStack, nullptr); + sk_X509_pop_free(certStack, X509_free); +} + +/** +* @tc.name: CmCertParseTest032 +* @tc.desc: test CmIsNumeric +* @tc.type: FUNC +* @tc.require: AR000H0MIA /SR000H09NA +*/ +HWTEST_F(CmCertParseTest, CmCertParseTest032, TestSize.Level0) +{ + char str[] = "123"; + int32_t ret = CmIsNumeric(nullptr, 0, nullptr); + EXPECT_EQ(ret, CMR_ERROR_INVALID_ARGUMENT); + ret = CmIsNumeric(str, 0, nullptr); + EXPECT_EQ(ret, CMR_ERROR_INVALID_ARGUMENT); + ret = CmIsNumeric(str, STR_MAX_LEN + 1, nullptr); + EXPECT_EQ(ret, CMR_ERROR_INVALID_ARGUMENT); + ret = CmIsNumeric(str, sizeof(str), nullptr); + EXPECT_EQ(ret, CMR_ERROR_INVALID_ARGUMENT); + uint32_t value = 0; + ret = CmIsNumeric(str, sizeof(str), &value); + EXPECT_EQ(ret, CM_SUCCESS); + ret = CmIsNumeric(str, sizeof(str) - 1, &value); + EXPECT_EQ(ret, CMR_ERROR_INVALID_ARGUMENT); + char errorStr[] = "123ab123"; + ret = CmIsNumeric(errorStr, sizeof(errorStr), &value); + EXPECT_EQ(ret, CMR_ERROR_INVALID_ARGUMENT); +} } // end of namespace -- Gitee