Elliptic curve based asymmetric operations use cryptographically
secure random number in its computation. If PMD supports RNG
for such ops, the application could skip computing on its own.
This patch adds new field in asymmetric capability to declare
this capability.

Signed-off-by: Gowrishankar Muthukrishnan <gmuthukri...@marvell.com>
---
 drivers/crypto/openssl/rte_openssl_pmd_ops.c | 2 ++
 lib/cryptodev/rte_cryptodev.h                | 6 ++++++
 2 files changed, 8 insertions(+)

diff --git a/drivers/crypto/openssl/rte_openssl_pmd_ops.c 
b/drivers/crypto/openssl/rte_openssl_pmd_ops.c
index 2eb450fcfd..0f88669f41 100644
--- a/drivers/crypto/openssl/rte_openssl_pmd_ops.c
+++ b/drivers/crypto/openssl/rte_openssl_pmd_ops.c
@@ -603,6 +603,8 @@ static const struct rte_cryptodev_capabilities 
openssl_pmd_capabilities[] = {
                                 (1 << RTE_CRYPTO_ASYM_OP_VERIFY) |
                                 (1 << RTE_CRYPTO_ASYM_OP_ENCRYPT) |
                                 (1 << RTE_CRYPTO_ASYM_OP_DECRYPT)),
+                               {.internal_rng = 1
+                               }
                        }
                }
                }
diff --git a/lib/cryptodev/rte_cryptodev.h b/lib/cryptodev/rte_cryptodev.h
index ba730373fb..64810c9ec4 100644
--- a/lib/cryptodev/rte_cryptodev.h
+++ b/lib/cryptodev/rte_cryptodev.h
@@ -182,6 +182,12 @@ struct rte_cryptodev_asymmetric_xform_capability {
                /**< Range of modulus length supported by modulus based xform.
                 * Value 0 mean implementation default
                 */
+
+               uint8_t internal_rng;
+               /**< Availability of random number generator for Elliptic curve 
based xform.
+                * Value 0 means unavailable, and application should pass the 
required
+                * random value. Otherwise, PMD would internally compute the 
random number.
+                */
        };
 };
 
-- 
2.25.1

Reply via email to