[dpdk-dev] [PATCH v3 3/6] lib/cryptodev: add asymmetric crypto capability in cryptodev

Trahe, Fiona fiona.trahe at intel.com
Tue Jul 3 16:12:11 CEST 2018


Hi Shally,

> -----Original Message-----
> From: Shally Verma [mailto:shally.verma at caviumnetworks.com]
> Sent: Wednesday, May 16, 2018 7:05 AM
> To: De Lara Guarch, Pablo <pablo.de.lara.guarch at intel.com>
> Cc: Trahe, Fiona <fiona.trahe at intel.com>; akhil.goyal at nxp.com; dev at dpdk.org;
> pathreya at caviumnetworks.com; Sunila Sahu <sunila.sahu at caviumnetworks.com>; Ashish Gupta
> <ashish.gupta at caviumnetworks.com>
> Subject: [PATCH v3 3/6] lib/cryptodev: add asymmetric crypto capability in cryptodev
> 
> Extend cryptodev with asymmetric capability APIs and
> definitions.
> 
> changes from v2:
> - remove redundant xform_type from asym capability struct
> - rename rte_cryptodev_get_asym_xform_enum to
> be more consistent with other API names
> 
> Signed-off-by: Shally Verma <shally.verma at caviumnetworks.com>
> Signed-off-by: Sunila Sahu <sunila.sahu at caviumnetworks.com>
> Signed-off-by: Ashish Gupta <ashish.gupta at caviumnetworks.com>
> 
> ---
//snip//

> diff --git a/lib/librte_cryptodev/rte_cryptodev.h b/lib/librte_cryptodev/rte_cryptodev.h
> index 623459a95..6c13d23f8 100644
> --- a/lib/librte_cryptodev/rte_cryptodev.h
> +++ b/lib/librte_cryptodev/rte_cryptodev.h
> @@ -178,6 +178,35 @@ struct rte_cryptodev_symmetric_capability {
>  	};
>  };
> 
> +/**
> + * Asymmetric Xform Crypto Capability
> + *
> + */
> +struct rte_cryptodev_asymmetric_xfrm_capability {
> +	enum rte_crypto_asym_xform_type xform_type;
> +	/**< Transform type: RSA/MODEXP/DH/DSA/MODINV */
> +
> +	uint32_t op_types;
> +	/**< bitmask for supported rte_crypto_asym_op_type */
> +
> +	__extension__
> +	union {
> +		struct rte_crypto_param_range modlen;
> +		/**< Range of modulus length supported by modulus based xform.
> +		 * Value 0 mean implementation default
> +		 */
[Fiona] Some other fields may be necessary here, e.g.
 - A bitmask for supported RSA padding types
 - Whether RSA private-key in quintuple format is supported
 - Which hash-algorithms are supported if RSA padding = OAEP or PSS
 - whether xform chaining is supported for DH keypair gen
These are not blockers for the first release, but are likely to be 
needed before the experimental label is removed.

> +	};
> +};
> +
> +/**
> + * Asymmetric Crypto Capability
> + *
> + */
> +struct rte_cryptodev_asymmetric_capability {
> +	struct rte_cryptodev_asymmetric_xfrm_capability xfrm_capa;
> +};
[Fiona] Why the  extra indirection?
Couldn't this be removed and the previous structure be 
renamed rte_cryptodev_asymmetric_capability?

//snip//
> @@ -1164,7 +1265,7 @@ int __rte_experimental
>  rte_cryptodev_asym_session_set_private_data(
[Fiona] I'd prefer to call this appl_data or appl_priv_data, I think the term private_data is 
over-used, sometimes means PMD data and sometimes means appl data.
Btw- same is true of sym private_data - but changing that is out of scope for this patch

  
>  					struct rte_cryptodev_asym_session *sess,
>  					void *data,
> -					uint16_t size)
> +					uint16_t size);
> 
>  /**
>   * Get private data of a session.
> @@ -1178,7 +1279,7 @@ rte_cryptodev_asym_session_set_private_data(
>   */
>  void * __rte_experimental
>  rte_cryptodev_asym_session_get_private_data(
> -				struct rte_cryptodev_asym_session *sess)
> +				struct rte_cryptodev_asym_session *sess);
> 
> 
>  #ifdef __cplusplus
> diff --git a/lib/librte_cryptodev/rte_cryptodev_version.map
> b/lib/librte_cryptodev/rte_cryptodev_version.map
> index 62b782444..817cf9f70 100644
> --- a/lib/librte_cryptodev/rte_cryptodev_version.map
> +++ b/lib/librte_cryptodev/rte_cryptodev_version.map
> @@ -89,13 +89,18 @@ DPDK_17.11 {
>  EXPERIMENTAL {
>          global:
> 
> -	rte_cryptodev_asym_get_private_session_size
> +	rte_cryptodev_asym_capability_get;
> +	rte_cryptodev_asym_get_private_session_size;
> +	rte_cryptodev_asym_get_xform_enum;
> +	rte_crypto_asym_op_strings;
>  	rte_cryptodev_asym_session_clear;
>  	rte_cryptodev_asym_session_create;
>  	rte_cryptodev_asym_session_free;
>  	rte_cryptodev_asym_session_init;
> -	rte_cryptodev_asym_session_get_private_data
> -	rte_cryptodev_asym_session_set_private_data
> +	rte_cryptodev_asym_session_get_private_data;
> +	rte_cryptodev_asym_session_set_private_data;
> +	rte_cryptodev_asym_xfrm_capability_check_optype;
> +	rte_crypto_asym_xform_strings;
>  	rte_cryptodev_sym_session_get_private_data;
>  	rte_cryptodev_sym_session_set_private_data;
>  } DPDK_17.11;
> --
> 2.14.3



More information about the dev mailing list