[PATCH] crypto/cnxk: return decrypted data for RSA verify
Garvit Varshney
gvarshney at marvell.com
Tue Jan 27 05:34:59 CET 2026
For RSA verify operations with RTE_CRYPTO_RSA_PADDING_NONE, the driver
cannot determine which padding algorithm the application is using.
As per the API specification in rte_crypto_asym.h, when
RTE_CRYPTO_RSA_PADDING_NONE and RTE_CRYPTO_ASYM_OP_VERIFY are selected,
the decrypted signature should be returned to the application in the
cipher output buffer.
Fixes: dfd038b97ec3 ("crypto/cnxk: refactor RSA verification")
Signed-off-by: Garvit Varshney <gvarshney at marvell.com>
---
.mailmap | 1 +
drivers/crypto/cnxk/cnxk_ae.h | 7 ++++---
2 files changed, 5 insertions(+), 3 deletions(-)
diff --git a/.mailmap b/.mailmap
index 2f089326ff..730f02707a 100644
--- a/.mailmap
+++ b/.mailmap
@@ -496,6 +496,7 @@ Ganghui Zeng <zengganghui at huawei.com>
Gao Feng <davidfgao at tencent.com>
Gaoxiang Liu <liugaoxiang at huawei.com>
Gargi Sau <gargi.sau at intel.com>
+Garvit Varshney <gvarshney at marvell.com>
Gary Mussar <gmussar at ciena.com>
Gaurav Singh <gaurav1086 at gmail.com>
Gautam Dawar <gdawar at solarflare.com>
diff --git a/drivers/crypto/cnxk/cnxk_ae.h b/drivers/crypto/cnxk/cnxk_ae.h
index 912a2a9496..21a0c8068a 100644
--- a/drivers/crypto/cnxk/cnxk_ae.h
+++ b/drivers/crypto/cnxk/cnxk_ae.h
@@ -1591,9 +1591,10 @@ cnxk_ae_dequeue_rsa_op(struct rte_crypto_op *cop, uint8_t *rptr,
break;
case RTE_CRYPTO_ASYM_OP_VERIFY:
if (rsa_ctx->padding.type == RTE_CRYPTO_RSA_PADDING_NONE) {
- rsa->sign.length = rsa_ctx->n.length;
- if (memcmp(rptr, rsa->message.data, rsa->message.length))
- cop->status = RTE_CRYPTO_OP_STATUS_ERROR;
+ /* Application compares decrypted data with message for SW padding schemes
+ */
+ rsa->cipher.length = rsa_ctx->n.length;
+ memcpy(rsa->cipher.data, rptr, rsa->cipher.length);
} else {
/* Get length of signed output */
rsa->sign.length = rte_cpu_to_be_16(*((uint16_t *)rptr));
--
2.25.1
More information about the dev
mailing list