> 
> 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

Reply via email to