<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>