Hi Ayuj,

> -----Original Message-----
> From: Ayuj Verma [mailto:ayve...@marvell.com]
> Sent: Wednesday, July 17, 2019 1:34 PM
> To: akhil.go...@nxp.com
> Cc: Kusztal, ArkadiuszX <arkadiuszx.kusz...@intel.com>; Trahe, Fiona 
> <fiona.tr...@intel.com>;
> shal...@marvell.com; ss...@marvell.com; kkotamar...@marvell.com; 
> dev@dpdk.org; Ayuj Verma
> <ayve...@marvell.com>
> Subject: [RFC] lib/crypto: mark asym session-buffer non-reuseable
> 
> Update asym xform usage in cryptodev documentation.
> 
> Xform are immutable, non-reuseable entity till
> life time of session. This allow some PMD to optimize
> session setup time.
> 
> Signed-off-by: Ayuj Verma <ayve...@marvell.com>
> Signed-off-by: Shally Verma <shal...@marvell.com>
> ---
>  doc/guides/prog_guide/cryptodev_lib.rst  | 6 ++++++
>  lib/librte_cryptodev/rte_cryptodev_pmd.h | 2 +-
>  2 files changed, 7 insertions(+), 1 deletion(-)
> 
> diff --git a/doc/guides/prog_guide/cryptodev_lib.rst 
> b/doc/guides/prog_guide/cryptodev_lib.rst
> index 9719944..c97a239 100644
> --- a/doc/guides/prog_guide/cryptodev_lib.rst
> +++ b/doc/guides/prog_guide/cryptodev_lib.rst
> @@ -894,6 +894,12 @@ asymmetric crypto chaining is Diffie-Hellman private key 
> generation followed
> by
>  public generation. Also, currently API does not support chaining of 
> symmetric and
>  asymmetric crypto xforms.
> 
> +Transform is attached to session during asym session initialization and 
> can't be
> +modified during session configuration. It remains constant till the end of 
> life
[Fiona] I agree with the intent of the RFC. And suggest being more explicit and 
saying "It and all the data buffers it points to should remain constant..."

> +span of a session. It should be used as it is in PMD, PMDs which requires
> +modification of these immutable data should internally do memcpy of data and
> +perform required operations.
[Fiona] for security I suggest adding here "It's the PMDs responsibility to 
ensure that any private data
copied to local PMD storage is not stored by the PMD for longer than the 
session lifetime.

>  Each xform defines specific asymmetric crypto algo. Currently supported are:
>  * RSA
>  * Modular operations (Exponentiation and Inverse)
> diff --git a/lib/librte_cryptodev/rte_cryptodev_pmd.h 
> b/lib/librte_cryptodev/rte_cryptodev_pmd.h
> index defe05e..1f083ea 100644
> --- a/lib/librte_cryptodev/rte_cryptodev_pmd.h
> +++ b/lib/librte_cryptodev/rte_cryptodev_pmd.h
> @@ -290,7 +290,7 @@ typedef int (*cryptodev_sym_configure_session_t)(struct 
> rte_cryptodev *dev,
>   *  - Returns -ENOMEM if the private session could not be allocated.
>   */
>  typedef int (*cryptodev_asym_configure_session_t)(struct rte_cryptodev *dev,
> -             struct rte_crypto_asym_xform *xform,
> +             const struct rte_crypto_asym_xform *xform,
>               struct rte_cryptodev_asym_session *session,
>               struct rte_mempool *mp);
>  /**
> --
> 1.8.3.1

Reply via email to