> -----Original Message-----
> From: Akhil Goyal <gak...@marvell.com>
> Sent: Thursday, May 26, 2022 1:29 PM
> To: Kusztal, ArkadiuszX <arkadiuszx.kusz...@intel.com>; dev@dpdk.org
> Cc: Zhang, Roy Fan <roy.fan.zh...@intel.com>
> Subject: RE: [EXT] [PATCH v2 07/14] cryptodev: add elliptic curve diffie 
> hellman
> 
> > - Added elliptic curve Diffie-Hellman parameters.
> > Point multiplication allows the user to process every phase of ECDH,
> > but for phase 1, user should not really care about the generator.
> > The user does not even need to know what the generator looks like,
> > therefore setting ec xform would make this work.
> >
> > Signed-off-by: Arek Kusztal <arkadiuszx.kusz...@intel.com>
> > ---
> >  lib/cryptodev/rte_crypto_asym.h | 38
> > ++++++++++++++++++++++++++++++++++++++
> >  1 file changed, 38 insertions(+)
> >
> > diff --git a/lib/cryptodev/rte_crypto_asym.h
> > b/lib/cryptodev/rte_crypto_asym.h index ffb0e8ed17..0dab7c0593 100644
> > --- a/lib/cryptodev/rte_crypto_asym.h
> > +++ b/lib/cryptodev/rte_crypto_asym.h
> > @@ -112,6 +112,8 @@ enum rte_crypto_asym_xform_type {
> >     /**< Elliptic Curve Digital Signature Algorithm */
> >     RTE_CRYPTO_ASYM_XFORM_ECPM,
> >     /**< Elliptic Curve Point Multiplication */
> > +   RTE_CRYPTO_ASYM_XFORM_ECDH,
> > +   /**< Elliptic Curve Diffie Hellman */
> >     RTE_CRYPTO_ASYM_XFORM_TYPE_LIST_END
> >     /**< End of list */
> >  };
> > @@ -407,6 +409,42 @@ struct rte_crypto_dh_op_param {  };
> >
> >  /**
> > + * Elliptic Curve Diffie-Hellman Operations params.
> > + * @note:
> 
> Note missing?
I will remove note.
> 
> > + */
> > +struct rte_crypto_ecdh_op_param {
> > +   enum rte_crypto_asym_ke_type op_type;
> > +   /**< Key exchange operation type */
> > +   rte_crypto_uint priv_key;
> > +   /**<
> > +    * Output - generated private key, when xform type is
> > +    * RTE_CRYPTO_ASYM_KE_PRIVATE_KEY_GENERATE.
> > +    *
> > +    * Input - private key, when xform type is one of:
> > +    * RTE_CRYPTO_ASYM_KE_PUBLIC_KEY_GENERATE,
> > +    * RTE_CRYPTO_ASYM_KE_SHARED_SECRET_COMPUTE.
> > +    *
> > +    * In case priv_key.length is 0 and xform type is set with
> > +    * RTE_CRYPTO_ASYM_KE_PUBLIC_KEY_GENERATE, CSRNG capable
> > +    * device will generate private key and use it for public
> > +    * key generation.
> > +    */
> 
> You added the above CSRNG thing in pub key for DH and here in priv key?
Should be under priv key.I will change.
> 
> > +   struct rte_crypto_ec_point pub_key;
> > +   /**<
> > +    * Output - generated public key, when xform type is
> > +    * RTE_CRYPTO_ASYM_KE_PUBLIC_KEY_GENERATE.
> > +    *
> > +    * Input - peer's public key, when xform type is
> > +    * RTE_CRYPTO_ASYM_KE_SHARED_SECRET_COMPUTE.
> Shouldn't this be for both  RTE_CRYPTO_ASYM_KE_PUBLIC_KEY_GENERATE and
> RTE_CRYPTO_ASYM_KE_SHARED_SECRET_COMPUTE
For priv_key yes, not for public.
> 
> > +    */
> > +   struct rte_crypto_ec_point shared_secret;
> > +   /**<
> > +    * Output - calculated shared secret when xform type is
> > +    * RTE_CRYPTO_ASYM_KE_SHARED_SECRET_COMPUTE.
> > +    */
> > +};
> > +
> > +/**
> >   * DSA Operations params
> >   *
> >   */
> > --
> > 2.13.6

Reply via email to