<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
<style type="text/css" style="display:none;"> P {margin-top:0;margin-bottom:0;} </style>
</head>
<body dir="ltr">
<div style="font-family: "IntelOne Text"; font-size: 10pt; color: rgb(0, 0, 0);" class="elementToProof">
Acked-by: Kai Ji <kai.ji@intel.com></div>
<div id="appendonsend"></div>
<hr style="display:inline-block;width:98%" tabindex="-1">
<div id="divRplyFwdMsg" dir="ltr"><font face="Calibri, sans-serif" style="font-size:11pt" color="#000000"><b>From:</b> Radu Nicolau <radu.nicolau@intel.com><br>
<b>Sent:</b> 27 August 2025 10:23<br>
<b>To:</b> dev@dpdk.org <dev@dpdk.org><br>
<b>Cc:</b> Nicolau, Radu <radu.nicolau@intel.com>; Akhil Goyal <gakhil@marvell.com>; Fan Zhang <fanzhang.oss@gmail.com><br>
<b>Subject:</b> [PATCH 2/3] test/crypto: add QAT EC tests</font>
<div> </div>
</div>
<div class="BodyFragment"><font size="2"><span style="font-size:11pt;">
<div class="PlainText">Add ECDH, ECPM and ECDSA tests for QAT<br>
<br>
Signed-off-by: Radu Nicolau <radu.nicolau@intel.com><br>
---<br>
 app/test/test_cryptodev_asym.c | 109 +++++++++++++++++++++++++++++++++<br>
 1 file changed, 109 insertions(+)<br>
<br>
diff --git a/app/test/test_cryptodev_asym.c b/app/test/test_cryptodev_asym.c<br>
index 20afb5e98b..c62329edff 100644<br>
--- a/app/test/test_cryptodev_asym.c<br>
+++ b/app/test/test_cryptodev_asym.c<br>
@@ -1715,6 +1715,29 @@ test_ecdsa_sign_verify_all_curve(void)<br>
         return overall_status;<br>
 }<br>
 <br>
+static int<br>
+test_ecdsa_sign_verify_qat_curves(void)<br>
+{<br>
+       int status, overall_status = TEST_SUCCESS;<br>
+       enum curve curve_id;<br>
+       int test_index = 0;<br>
+       const char *msg;<br>
+<br>
+       for (curve_id = SECP256R1; curve_id <= SECP521R1; curve_id++) {<br>
+<br>
+               status = test_ecdsa_sign_verify(curve_id);<br>
+               if (status == TEST_SUCCESS) {<br>
+                       msg = "succeeded";<br>
+               } else {<br>
+                       msg = "failed";<br>
+                       overall_status = status;<br>
+               }<br>
+               printf("  %u) TestCase Sign/Veriy Curve %s  %s\n",<br>
+                      test_index ++, curve[curve_id], msg);<br>
+       }<br>
+       return overall_status;<br>
+}<br>
+<br>
 static int<br>
 test_ecpm(enum curve curve_id)<br>
 {<br>
@@ -1881,6 +1904,28 @@ test_ecpm_all_curve(void)<br>
         return overall_status;<br>
 }<br>
 <br>
+static int<br>
+test_ecpm_qat_curves(void)<br>
+{<br>
+       int status, overall_status = TEST_SUCCESS;<br>
+       enum curve curve_id;<br>
+       int test_index = 0;<br>
+       const char *msg;<br>
+<br>
+       for (curve_id = SECP256R1; curve_id <= SECP521R1; curve_id++) {<br>
+               status = test_ecpm(curve_id);<br>
+               if (status == TEST_SUCCESS) {<br>
+                       msg = "succeeded";<br>
+               } else {<br>
+                       msg = "failed";<br>
+                       overall_status = status;<br>
+               }<br>
+               printf("  %u) TestCase EC Point Mul Curve %s  %s\n",<br>
+                      test_index ++, curve[curve_id], msg);<br>
+       }<br>
+       return overall_status;<br>
+}<br>
+<br>
 static int<br>
 test_ecdh_priv_key_generate(enum curve curve_id)<br>
 {<br>
@@ -2674,6 +2719,56 @@ test_ecdh_all_curve(void)<br>
         return overall_status;<br>
 }<br>
 <br>
+static int<br>
+test_ecdh_qat_curves(void)<br>
+{<br>
+       int status, overall_status = TEST_SUCCESS;<br>
+       enum curve curve_id;<br>
+       int test_index = 0;<br>
+       const char *msg;<br>
+<br>
+       for (curve_id = SECP256R1; curve_id <= SECP521R1; curve_id++) {<br>
+               status = test_ecdh_pub_key_generate(curve_id);<br>
+               if (status == TEST_SUCCESS) {<br>
+                       msg = "succeeded";<br>
+               } else if (status == TEST_SKIPPED) {<br>
+                       msg = "skipped";<br>
+               } else {<br>
+                       msg = "failed";<br>
+                       overall_status = status;<br>
+               }<br>
+               printf("  %u) TestCase ECDH public key generation for Curve %s %s\n",<br>
+                      test_index ++, curve[curve_id], msg);<br>
+       }<br>
+<br>
+       for (curve_id = SECP256R1; curve_id <= SECP521R1; curve_id++) {<br>
+               status = test_ecdh_pub_key_verify(curve_id);<br>
+               if (status == TEST_SUCCESS) {<br>
+                       msg = "succeeded";<br>
+               } else {<br>
+                       msg = "failed";<br>
+                       overall_status = status;<br>
+               }<br>
+               printf("  %u) TestCase ECDH public key verification for Curve %s %s\n",<br>
+                      test_index ++, curve[curve_id], msg);<br>
+       }<br>
+<br>
+       for (curve_id = SECP256R1; curve_id <= SECP521R1; curve_id++) {<br>
+               status = test_ecdh_shared_secret(curve_id);<br>
+               if (status == TEST_SUCCESS) {<br>
+                       msg = "succeeded";<br>
+               } else {<br>
+                       msg = "failed";<br>
+                       overall_status = status;<br>
+               }<br>
+               printf("  %u) TestCase ECDH shared secret compute for Curve %s %s\n",<br>
+                      test_index ++, curve[curve_id], msg);<br>
+       }<br>
+<br>
+       return overall_status;<br>
+}<br>
+<br>
+<br>
 static int<br>
 test_sm2_sign(void)<br>
 {<br>
@@ -3987,6 +4082,7 @@ static struct unit_test_suite cryptodev_openssl_asym_testsuite  = {<br>
                         ut_setup_asym, ut_teardown_asym,<br>
                         modular_exponentiation, &modex_group_test_cases[7]),<br>
                 TEST_CASE_ST(ut_setup_asym, ut_teardown_asym, test_eddsa_sign_verify_all_curve),<br>
+<br>
                 TEST_CASES_END() /**< NULL terminate unit test array */<br>
         }<br>
 };<br>
@@ -4023,6 +4119,19 @@ static struct unit_test_suite cryptodev_qat_asym_testsuite  = {<br>
                         "RSA Decryption (n=128, pt=20, e=3) CRT, Padding: NONE",<br>
                         ut_setup_asym, ut_teardown_asym,<br>
                         kat_rsa_decrypt_crt, &rsa_vector_128_20_3_none),<br>
+               TEST_CASE_NAMED_ST(<br>
+                       "ECDH Eliptic Curve tests",<br>
+                       ut_setup_asym, ut_teardown_asym,<br>
+                       test_ecdh_qat_curves),<br>
+               TEST_CASE_NAMED_ST(<br>
+                       "ECPM Eliptic Curve tests",<br>
+                       ut_setup_asym, ut_teardown_asym,<br>
+                       test_ecpm_qat_curves),<br>
+               TEST_CASE_NAMED_ST(<br>
+                       "ECDSA Eliptic Curve tests",<br>
+                       ut_setup_asym, ut_teardown_asym,<br>
+                       test_ecdsa_sign_verify_qat_curves),<br>
+<br>
                 TEST_CASES_END() /**< NULL terminate unit test array */<br>
         }<br>
 };<br>
-- <br>
2.50.1<br>
<br>
</div>
</span></font></div>
</body>
</html>