From: Balakrishna Bhamidipati <bbhamidip...@marvell.com>

Elliptic Curve Point Multiplication xform type and op
parameters are added.

Signed-off-by: Anoob Joseph <ano...@marvell.com>
Signed-off-by: Balakrishna Bhamidipati <bbhamidip...@marvell.com>
Signed-off-by: Sunila Sahu <ss...@marvell.com>
---
 doc/guides/cryptodevs/features/default.ini |  1 +
 lib/librte_cryptodev/rte_crypto_asym.h     | 17 +++++++++++++++++
 lib/librte_cryptodev/rte_cryptodev.c       |  1 +
 3 files changed, 19 insertions(+)

diff --git a/doc/guides/cryptodevs/features/default.ini 
b/doc/guides/cryptodevs/features/default.ini
index 2f6c785..3a54b07 100644
--- a/doc/guides/cryptodevs/features/default.ini
+++ b/doc/guides/cryptodevs/features/default.ini
@@ -109,3 +109,4 @@ Modular Exponentiation  =
 Modular Inversion       =
 Diffie-hellman          =
 ECDSA                   =
+EC Point Multiplication =
diff --git a/lib/librte_cryptodev/rte_crypto_asym.h 
b/lib/librte_cryptodev/rte_crypto_asym.h
index dd5e6e3..b98ce6c 100644
--- a/lib/librte_cryptodev/rte_crypto_asym.h
+++ b/lib/librte_cryptodev/rte_crypto_asym.h
@@ -85,6 +85,8 @@ enum rte_crypto_asym_xform_type {
        /**< Elliptic Curve Digital Signature Algorithm
         * Perform Signature Generation and Verification.
         */
+       RTE_CRYPTO_ASYM_XFORM_EC_POINT_MUL,
+       /**< Elliptic Curve Point Multiplication */
        RTE_CRYPTO_ASYM_XFORM_TYPE_LIST_END
        /**< End of list */
 };
@@ -598,6 +600,20 @@ struct rte_crypto_ecdsa_op_param {
 };
 
 /**
+ * Structure for EC point operation param
+ */
+struct rte_crypto_ec_point_mul_param {
+       struct rte_crypto_ec_point p;
+       /**< x and y coordinates of input point */
+
+       struct rte_crypto_ec_point r;
+       /**< x and y coordinates of resultant point */
+
+       rte_crypto_param scalar;
+       /**< Scalar to multiply the input point */
+};
+
+/**
  * Asymmetric Cryptographic Operation.
  *
  * Structure describing asymmetric crypto operation params.
@@ -620,6 +636,7 @@ struct rte_crypto_asym_op {
                struct rte_crypto_dh_op_param dh;
                struct rte_crypto_dsa_op_param dsa;
                struct rte_crypto_ecdsa_op_param ecdsa;
+               struct rte_crypto_ec_point_mul_param ecpm;
        };
 };
 
diff --git a/lib/librte_cryptodev/rte_cryptodev.c 
b/lib/librte_cryptodev/rte_cryptodev.c
index 0d6babb..eea57c6 100644
--- a/lib/librte_cryptodev/rte_cryptodev.c
+++ b/lib/librte_cryptodev/rte_cryptodev.c
@@ -174,6 +174,7 @@ const char *rte_crypto_asym_xform_strings[] = {
        [RTE_CRYPTO_ASYM_XFORM_DH]      = "dh",
        [RTE_CRYPTO_ASYM_XFORM_DSA]     = "dsa",
        [RTE_CRYPTO_ASYM_XFORM_ECDSA]   = "ecdsa",
+       [RTE_CRYPTO_ASYM_XFORM_EC_POINT_MUL]    = "ecpm",
 };
 
 /**
-- 
2.7.4

Reply via email to