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 <[email protected]>
---
 .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 <[email protected]>
 Gao Feng <[email protected]>
 Gaoxiang Liu <[email protected]>
 Gargi Sau <[email protected]>
+Garvit Varshney <[email protected]>
 Gary Mussar <[email protected]>
 Gaurav Singh <[email protected]>
 Gautam Dawar <[email protected]>
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

Reply via email to