[dpdk-dev] [PATCH 1/4] lib/crypto: add support for EC Point Multiplication
Anoob Joseph
anoobj at marvell.com
Thu Dec 5 16:37:57 CET 2019
From: Balakrishna Bhamidipati <bbhamidipati at marvell.com>
Elliptic Curve Point Multiplication xform type and op
parameters are added.
Signed-off-by: Anoob Joseph <anoobj at marvell.com>
Signed-off-by: Balakrishna Bhamidipati <bbhamidipati at marvell.com>
Signed-off-by: Sunila Sahu <ssahu at 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
More information about the dev
mailing list