> > From: Balakrishna Bhamidipati <bbhamidip...@marvell.com> > > Elliptic Curve Point Multiplication xform type and op > parameters are added.
Description should convey that it is an asymmetric crypto feature. > > Signed-off-by: Anoob Joseph <ano...@marvell.com> > Signed-off-by: Balakrishna Bhamidipati <bbhamidip...@marvell.com> > Signed-off-by: Sunila Sahu <ss...@marvell.com> Title should be cryptodev: support ECPM > --- > 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 = I think it is better to have ECPM instead of EC Point Multiplication as it is the case with ECDSA. > 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, Should be RTE_CRYPTO_ASYM_XFORM_ECPM > + /**< 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 { Better to have rte_crypto_ecpm_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