DPDK patches and discussions
 help / color / mirror / Atom feed
From: "Kusztal, ArkadiuszX" <arkadiuszx.kusztal@intel.com>
To: Gowrishankar Muthukrishnan <gmuthukrishn@marvell.com>,
	"dev@dpdk.org" <dev@dpdk.org>, "Ji, Kai" <kai.ji@intel.com>
Cc: Anoob Joseph <anoobj@marvell.com>,
	"Richardson, Bruce" <bruce.richardson@intel.com>,
	"jerinj@marvell.com" <jerinj@marvell.com>,
	"fanzhang.oss@gmail.com" <fanzhang.oss@gmail.com>,
	"jack.bond-preston@foss.arm.com" <jack.bond-preston@foss.arm.com>,
	"Marchand,  David" <david.marchand@redhat.com>,
	"hemant.agrawal@nxp.com" <hemant.agrawal@nxp.com>,
	"De Lara Guarch, Pablo" <pablo.de.lara.guarch@intel.com>,
	"Trahe, Fiona" <fiona.trahe@intel.com>,
	"Doherty, Declan" <declan.doherty@intel.com>,
	"matan@nvidia.com" <matan@nvidia.com>,
	"ruifeng.wang@arm.com" <ruifeng.wang@arm.com>,
	"Akhil Goyal" <gakhil@marvell.com>
Subject: RE: [PATCH v6 2/6] crypto/openssl: support EDDSA
Date: Mon, 7 Oct 2024 16:27:34 +0000	[thread overview]
Message-ID: <PH0PR11MB501378721FF63D83CA8086F49F7D2@PH0PR11MB5013.namprd11.prod.outlook.com> (raw)
In-Reply-To: <20241004082623.714-2-gmuthukrishn@marvell.com>

Hi Gowrishankar,

> -----Original Message-----
> From: Gowrishankar Muthukrishnan <gmuthukrishn@marvell.com>
> Sent: Friday, October 4, 2024 10:26 AM
> To: dev@dpdk.org; Ji, Kai <kai.ji@intel.com>
> Cc: Anoob Joseph <anoobj@marvell.com>; Richardson, Bruce
> <bruce.richardson@intel.com>; jerinj@marvell.com; fanzhang.oss@gmail.com;
> Kusztal, ArkadiuszX <arkadiuszx.kusztal@intel.com>; jack.bond-
> preston@foss.arm.com; Marchand, David <david.marchand@redhat.com>;
> hemant.agrawal@nxp.com; De Lara Guarch, Pablo
> <pablo.de.lara.guarch@intel.com>; Trahe, Fiona <fiona.trahe@intel.com>;
> Doherty, Declan <declan.doherty@intel.com>; matan@nvidia.com;
> ruifeng.wang@arm.com; Akhil Goyal <gakhil@marvell.com>; Gowrishankar
> Muthukrishnan <gmuthukrishn@marvell.com>
> Subject: [PATCH v6 2/6] crypto/openssl: support EDDSA
> 
> Support EDDSA crypto algorithm in OpenSSL PMD.
> 
> Signed-off-by: Gowrishankar Muthukrishnan <gmuthukrishn@marvell.com>
> ---
>  doc/guides/cryptodevs/features/openssl.ini   |   1 +
>  drivers/crypto/openssl/openssl_pmd_private.h |  13 ++
>  drivers/crypto/openssl/rte_openssl_pmd.c     | 223 +++++++++++++++++++
>  drivers/crypto/openssl/rte_openssl_pmd_ops.c | 131 +++++++++++
>  4 files changed, 368 insertions(+)
> 
> diff --git a/doc/guides/cryptodevs/features/openssl.ini
> b/doc/guides/cryptodevs/features/openssl.ini
> index b64c8ec4a5..0540c075dc 100644
> --- a/doc/guides/cryptodevs/features/openssl.ini
> +++ b/doc/guides/cryptodevs/features/openssl.ini
> @@ -66,6 +66,7 @@ Modular Exponentiation = Y  Modular Inversion = Y  Diffie-
> hellman = Y
>  SM2 = Y
> +EDDSA = Y
> 
>  ;
>  ; Supported Operating systems of the 'openssl' crypto driver.
> diff --git a/drivers/crypto/openssl/openssl_pmd_private.h
> b/drivers/crypto/openssl/openssl_pmd_private.h
> index 0282b3d829..7dd97f1c72 100644
> --- a/drivers/crypto/openssl/openssl_pmd_private.h
> +++ b/drivers/crypto/openssl/openssl_pmd_private.h
> @@ -231,10 +231,23 @@ struct __rte_cache_aligned openssl_asym_session {
> #endif
>  		} s;
>  		struct {
> +			uint8_t curve_id;
> +#if (OPENSSL_VERSION_NUMBER >= 0x30000000L)
> +			EC_GROUP * group;
> +			BIGNUM *priv_key;
> +#endif
> +		} ec;
> +		struct {
>  #if (OPENSSL_VERSION_NUMBER >= 0x30000000L)
>  			OSSL_PARAM * params;
>  #endif
>  		} sm2;
> +		struct {
> +			uint8_t curve_id;
> +#if (OPENSSL_VERSION_NUMBER >= 0x30000000L)
> +			OSSL_PARAM * params;
> +#endif
> +		} eddsa;
>  	} u;
>  };
>  /** Set and validate OPENSSL crypto session parameters */ diff --git
> a/drivers/crypto/openssl/rte_openssl_pmd.c
> b/drivers/crypto/openssl/rte_openssl_pmd.c
> index e10a172f46..4e4d06403b 100644
> --- a/drivers/crypto/openssl/rte_openssl_pmd.c
> +++ b/drivers/crypto/openssl/rte_openssl_pmd.c
> @@ -2849,6 +2849,45 @@ process_openssl_rsa_op_evp(struct rte_crypto_op
> *cop,
> 
>  }
> 
> +static int
> +process_openssl_ecfpm_op_evp(struct rte_crypto_op *cop,
> +		struct openssl_asym_session *sess)
> +{
> +	const EC_GROUP *ecgrp = sess->u.ec.group;
> +	EC_POINT *ecpt = NULL;
> +	BN_CTX *ctx = NULL;
> +	BIGNUM *n = NULL;
> +	int ret = -1;
> +
> +	n = BN_bin2bn((const unsigned char *)
> +			cop->asym->ecpm.scalar.data,
> +			cop->asym->ecpm.scalar.length,
> +			BN_new());
> +
> +	ctx = BN_CTX_new();
> +	if (!ctx)
> +		goto err_ecfpm;
> +
> +	if (!EC_POINT_mul(ecgrp, ecpt, n, NULL, NULL, ctx))
> +		goto err_ecfpm;
> +
> +	if (cop->asym->flags &
> RTE_CRYPTO_ASYM_FLAG_PUB_KEY_COMPRESSED) {
> +		unsigned char *buf = cop->asym->ecpm.r.x.data;
> +		size_t sz;
> +
> +		sz = EC_POINT_point2oct(ecgrp, ecpt,
> POINT_CONVERSION_COMPRESSED, buf, 0, ctx);
> +		if (!sz)
> +			goto err_ecfpm;
> +
> +		cop->asym->ecpm.r.x.length = sz;
> +	}
> +
> +err_ecfpm:
> +	BN_CTX_free(ctx);
> +	BN_free(n);
> +	return ret;
> +}
> +
>  static int
>  process_openssl_sm2_op_evp(struct rte_crypto_op *cop,
>  		struct openssl_asym_session *sess)
> @@ -3074,6 +3113,158 @@ process_openssl_sm2_op_evp(struct
> rte_crypto_op *cop,
>  	return ret;
>  }
> 
> +static int
> +process_openssl_eddsa_op_evp(struct rte_crypto_op *cop,
> +		struct openssl_asym_session *sess)
> +{
> +	static const char * const instance[] = {"Ed25519", "Ed25519ctx",
> "Ed25519ph",
> +						"Ed448", "Ed448ph"};
> +	EVP_PKEY_CTX *kctx = NULL, *sctx = NULL, *cctx = NULL;
> +	const uint8_t curve_id = sess->u.eddsa.curve_id;
> +	struct rte_crypto_asym_op *op = cop->asym;
> +	OSSL_PARAM *params = sess->u.eddsa.params;
> +	OSSL_PARAM_BLD *iparam_bld = NULL;
> +	OSSL_PARAM *iparams = NULL;
> +	uint8_t signbuf[128] = {0};
> +	EVP_MD_CTX *md_ctx = NULL;
> +	EVP_PKEY *pkey = NULL;
> +	size_t signlen;
> +	int ret = -1;
> +
> +	cop->status = RTE_CRYPTO_OP_STATUS_ERROR;
> +
> +	iparam_bld = OSSL_PARAM_BLD_new();
> +	if (!iparam_bld)
> +		goto err_eddsa;
> +
> +	if (op->eddsa.instance == RTE_CRYPTO_EDCURVE_25519CTX) {
> +		OSSL_PARAM_BLD_push_octet_string(iparam_bld, "context-
> string",
> +			op->eddsa.context.data, op->eddsa.context.length);
> +
> +	}
> +
> +	OSSL_PARAM_BLD_push_utf8_string(iparam_bld, "instance",
> +		instance[op->eddsa.instance], strlen(instance[op-
> >eddsa.instance]));
> +
> +	iparams = OSSL_PARAM_BLD_to_param(iparam_bld);
> +	if (!iparams)
> +		goto err_eddsa;
> +
> +	switch (op->eddsa.op_type) {
> +	case RTE_CRYPTO_ASYM_OP_SIGN:
> +		{
> +			if (curve_id == RTE_CRYPTO_EC_GROUP_ED25519)
> +				kctx = EVP_PKEY_CTX_new_from_name(NULL,
> "ED25519", NULL);

I see this is a pattern in this PMD, but there are plenty of operations that should be done in session instead on the datapath.
EVP_PKEY_CTX_new_from_name
EVP_PKEY_fromdata
EVP_MD_CTX_new
EVP_MD_CTX_set_pkey_ctx
Should rather be done once per session than per every operation in with-session case.

> +			else
> +				kctx = EVP_PKEY_CTX_new_from_name(NULL,
> "ED448", NULL);
> +
> +			if (kctx == NULL || EVP_PKEY_fromdata_init(kctx) <= 0
> ||
> +				EVP_PKEY_fromdata(kctx, &pkey,
> EVP_PKEY_KEYPAIR, params) <= 0)
> +				goto err_eddsa;
> +
> +			md_ctx = EVP_MD_CTX_new();
> +			if (!md_ctx)
> +				goto err_eddsa;
> +
> +			sctx = EVP_PKEY_CTX_new_from_pkey(NULL, pkey,
> NULL);
> +			if (!sctx)
> +				goto err_eddsa;
> +
> +			EVP_MD_CTX_set_pkey_ctx(md_ctx, sctx);
> +
> +#if (OPENSSL_VERSION_NUMBER >= 0x30300000L)
> +			if (!EVP_DigestSignInit_ex(md_ctx, NULL, NULL, NULL,
> NULL, pkey, iparams))
> +				goto err_eddsa;
> +#else
> +			if (op->eddsa.instance ==
> RTE_CRYPTO_EDCURVE_25519 ||
> +				op->eddsa.instance ==
> RTE_CRYPTO_EDCURVE_448) {
> +				if (!EVP_DigestSignInit(md_ctx, NULL, NULL,
> NULL, pkey))
> +					goto err_eddsa;
> +			} else
> +				goto err_eddsa;
> +#endif
> +
> +			if (!EVP_DigestSign(md_ctx, NULL, &signlen, op-
> >eddsa.message.data,
> +					op->eddsa.message.length))
> +				goto err_eddsa;
> +
> +			if (signlen > RTE_DIM(signbuf))
> +				goto err_eddsa;
> +
> +			if (!EVP_DigestSign(md_ctx, signbuf, &signlen, op-
> >eddsa.message.data,
> +					op->eddsa.message.length))
> +				goto err_eddsa;
> +
> +			memcpy(op->eddsa.sign.data, &signbuf[0], signlen);
> +			op->eddsa.sign.length = signlen;
> +		}
> +		break;
> +	case RTE_CRYPTO_ASYM_OP_VERIFY:
> +		{
> +			if (curve_id == RTE_CRYPTO_EC_GROUP_ED25519)
> +				kctx = EVP_PKEY_CTX_new_from_name(NULL,
> "ED25519", NULL);
> +			else
> +				kctx = EVP_PKEY_CTX_new_from_name(NULL,
> "ED448", NULL);
> +
> +			if (kctx == NULL || EVP_PKEY_fromdata_init(kctx) <= 0
> ||
> +				EVP_PKEY_fromdata(kctx, &pkey,
> EVP_PKEY_PUBLIC_KEY, params) <= 0)
> +				goto err_eddsa;
> +
> +			md_ctx = EVP_MD_CTX_new();
> +			if (!md_ctx)
> +				goto err_eddsa;
> +
> +			sctx = EVP_PKEY_CTX_new_from_pkey(NULL, pkey,
> NULL);
> +			if (!sctx)
> +				goto err_eddsa;
> +
> +			EVP_MD_CTX_set_pkey_ctx(md_ctx, sctx);
> +
> +#if (OPENSSL_VERSION_NUMBER >= 0x30300000L)
> +			if (!EVP_DigestVerifyInit_ex(md_ctx, NULL, NULL,
> NULL, NULL, pkey, iparams))
> +				goto err_eddsa;
> +#else
> +			if (op->eddsa.instance ==
> RTE_CRYPTO_EDCURVE_25519 ||
> +				op->eddsa.instance ==
> RTE_CRYPTO_EDCURVE_448) {
> +				if (!EVP_DigestVerifyInit(md_ctx, NULL, NULL,
> NULL, pkey))
> +					goto err_eddsa;
> +			} else
> +				goto err_eddsa;
> +#endif
> +
> +			signlen = op->eddsa.sign.length;
> +			memcpy(&signbuf[0], op->eddsa.sign.data, op-
> >eddsa.sign.length);
> +
> +			ret = EVP_DigestVerify(md_ctx, signbuf, signlen, op-
> >eddsa.message.data,
> +					op->eddsa.message.length);
> +			if (ret == 0)
> +				goto err_eddsa;
> +		}
> +		break;
> +	default:
> +		/* allow ops with invalid args to be pushed to
> +		 * completion queue
> +		 */
> +		cop->status = RTE_CRYPTO_OP_STATUS_INVALID_ARGS;
> +		goto err_eddsa;
> +	}
> +
> +	ret = 0;
> +	cop->status = RTE_CRYPTO_OP_STATUS_SUCCESS;
> +err_eddsa:
> +	OSSL_PARAM_BLD_free(iparam_bld);
> +
> +	if (sctx)
> +		EVP_PKEY_CTX_free(sctx);
> +
> +	if (cctx)
> +		EVP_PKEY_CTX_free(cctx);
> +
> +	if (pkey)
> +		EVP_PKEY_free(pkey);
> +
> +	return ret;
> +}
>  #else
>  static int
>  process_openssl_rsa_op(struct rte_crypto_op *cop, @@ -3174,6 +3365,15 @@
> process_openssl_rsa_op(struct rte_crypto_op *cop,
>  	return 0;
>  }
> 
> +static int
> +process_openssl_ecfpm_op(struct rte_crypto_op *cop,
> +		struct openssl_asym_session *sess)
> +{
> +	RTE_SET_USED(cop);
> +	RTE_SET_USED(sess);
> +	return -ENOTSUP;
> +}
> +
>  static int
>  process_openssl_sm2_op(struct rte_crypto_op *cop,
>  		struct openssl_asym_session *sess)
> @@ -3182,6 +3382,15 @@ process_openssl_sm2_op(struct rte_crypto_op
> *cop,
>  	RTE_SET_USED(sess);
>  	return -ENOTSUP;
>  }
> +
> +static int
> +process_openssl_eddsa_op(struct rte_crypto_op *cop,
> +		struct openssl_asym_session *sess)
> +{
> +	RTE_SET_USED(cop);
> +	RTE_SET_USED(sess);
> +	return -ENOTSUP;
> +}
>  #endif
> 
>  static int
> @@ -3230,6 +3439,13 @@ process_asym_op(struct openssl_qp *qp, struct
> rte_crypto_op *op,
>  				process_openssl_dsa_verify_op(op, sess);
>  		else
>  			op->status =
> RTE_CRYPTO_OP_STATUS_INVALID_ARGS;
> +#endif
> +		break;
> +	case RTE_CRYPTO_ASYM_XFORM_ECFPM:
> +#if (OPENSSL_VERSION_NUMBER >= 0x30000000L)
> +		retval = process_openssl_ecfpm_op_evp(op, sess); #else
> +		retval = process_openssl_ecfpm_op(op, sess);
>  #endif
>  		break;
>  	case RTE_CRYPTO_ASYM_XFORM_SM2:
> @@ -3237,6 +3453,13 @@ process_asym_op(struct openssl_qp *qp, struct
> rte_crypto_op *op,
>  		retval = process_openssl_sm2_op_evp(op, sess);  #else
>  		retval = process_openssl_sm2_op(op, sess);
> +#endif
> +		break;
> +	case RTE_CRYPTO_ASYM_XFORM_EDDSA:
> +#if (OPENSSL_VERSION_NUMBER >= 0x30000000L)
> +		retval = process_openssl_eddsa_op_evp(op, sess); #else
> +		retval = process_openssl_eddsa_op(op, sess);
>  #endif
>  		break;
>  	default:
> diff --git a/drivers/crypto/openssl/rte_openssl_pmd_ops.c
> b/drivers/crypto/openssl/rte_openssl_pmd_ops.c
> index b7b612fc57..0725184653 100644
> --- a/drivers/crypto/openssl/rte_openssl_pmd_ops.c
> +++ b/drivers/crypto/openssl/rte_openssl_pmd_ops.c
> @@ -593,6 +593,16 @@ static const struct rte_cryptodev_capabilities
> openssl_pmd_capabilities[] = {
>  		},
>  		}
>  	},
> +	{	/* ECFPM */
> +		.op = RTE_CRYPTO_OP_TYPE_ASYMMETRIC,
> +		{.asym = {
> +			.xform_capa = {
> +				.xform_type =
> RTE_CRYPTO_ASYM_XFORM_ECFPM,
> +				.op_types = 0
> +				}
> +			}
> +		}
> +	},
>  	{	/* SM2 */
>  		.op = RTE_CRYPTO_OP_TYPE_ASYMMETRIC,
>  		{.asym = {
> @@ -610,6 +620,20 @@ static const struct rte_cryptodev_capabilities
> openssl_pmd_capabilities[] = {
>  		}
>  		}
>  	},
> +	{	/* EDDSA */
> +		.op = RTE_CRYPTO_OP_TYPE_ASYMMETRIC,
> +		{.asym = {
> +			.xform_capa = {
> +				.xform_type =
> RTE_CRYPTO_ASYM_XFORM_EDDSA,
> +				.hash_algos = (1 <<
> RTE_CRYPTO_AUTH_SHA512 |
> +					       1 <<
> RTE_CRYPTO_AUTH_SHAKE_256),
> +				.op_types =
> +				((1<<RTE_CRYPTO_ASYM_OP_SIGN) |
> +				 (1 << RTE_CRYPTO_ASYM_OP_VERIFY)),
> +			}
> +		}
> +		}
> +	},
> 
>  	RTE_CRYPTODEV_END_OF_CAPABILITIES_LIST()
>  };
> @@ -1356,6 +1380,47 @@ static int openssl_set_asym_session_parameters(
>  		BN_free(pub_key);
>  		return -1;
>  	}
> +	case RTE_CRYPTO_ASYM_XFORM_ECFPM:
> +	{
> +#if (OPENSSL_VERSION_NUMBER >= 0x30000000L)
> +		EC_GROUP *ecgrp = NULL;
> +
> +		asym_session->xfrm_type = xform->xform_type;
> +
> +		switch (xform->ec.curve_id) {
> +		case RTE_CRYPTO_EC_GROUP_SECP192R1:
> +			ecgrp =
> EC_GROUP_new_by_curve_name(NID_secp192k1);
> +			break;
> +		case RTE_CRYPTO_EC_GROUP_SECP224R1:
> +			ecgrp =
> EC_GROUP_new_by_curve_name(NID_secp224r1);
> +			break;
> +		case RTE_CRYPTO_EC_GROUP_SECP256R1:
> +			ecgrp =
> EC_GROUP_new_by_curve_name(NID_secp256k1);
> +			break;
> +		case RTE_CRYPTO_EC_GROUP_SECP384R1:
> +			ecgrp =
> EC_GROUP_new_by_curve_name(NID_secp384r1);
> +			break;
> +		case RTE_CRYPTO_EC_GROUP_SECP521R1:
> +			ecgrp =
> EC_GROUP_new_by_curve_name(NID_secp521r1);
> +			break;
> +		case RTE_CRYPTO_EC_GROUP_ED25519:
> +			ecgrp =
> EC_GROUP_new_by_curve_name(NID_ED25519);
> +			break;
> +		case RTE_CRYPTO_EC_GROUP_ED448:
> +			ecgrp = EC_GROUP_new_by_curve_name(NID_ED448);
> +			break;
> +		default:
> +			break;
> +		}
> +
> +		asym_session->u.ec.curve_id = xform->ec.curve_id;
> +		asym_session->u.ec.group = ecgrp;
> +		break;
> +#else
> +		OPENSSL_LOG(WARNING, "ECFPM unsupported for OpenSSL
> Version < 3.0");
> +		return -ENOTSUP;
> +#endif
> +	}
>  	case RTE_CRYPTO_ASYM_XFORM_SM2:
>  	{
>  #if (OPENSSL_VERSION_NUMBER >= 0x30000000L) @@ -1440,6 +1505,66 @@
> static int openssl_set_asym_session_parameters(
>  #else
>  		OPENSSL_LOG(WARNING, "SM2 unsupported for OpenSSL
> Version < 3.0");
>  		return -ENOTSUP;
> +#endif
> +	}
> +	case RTE_CRYPTO_ASYM_XFORM_EDDSA:
> +	{
> +#if (OPENSSL_VERSION_NUMBER >= 0x30300000L)
> +		OSSL_PARAM_BLD *param_bld = NULL;
> +		OSSL_PARAM *params = NULL;
> +		int ret = -1;
> +
> +		asym_session->u.eddsa.curve_id = xform->ec.curve_id;
> +
> +		param_bld = OSSL_PARAM_BLD_new();
> +		if (!param_bld) {
> +			OPENSSL_LOG(ERR, "failed to allocate params");
> +			goto err_eddsa;
> +		}
> +
> +		ret = OSSL_PARAM_BLD_push_utf8_string(param_bld,
> +			  OSSL_PKEY_PARAM_GROUP_NAME, "ED25519",
> sizeof("ED25519"));
> +		if (!ret) {
> +			OPENSSL_LOG(ERR, "failed to push params");
> +			goto err_eddsa;
> +		}
> +
> +		ret = OSSL_PARAM_BLD_push_octet_string(param_bld,
> OSSL_PKEY_PARAM_PRIV_KEY,
> +				xform->ec.pkey.data, xform->ec.pkey.length);
> +		if (!ret) {
> +			OPENSSL_LOG(ERR, "failed to push params");
> +			goto err_eddsa;
> +		}
> +
> +		ret = OSSL_PARAM_BLD_push_octet_string(param_bld,
> OSSL_PKEY_PARAM_PUB_KEY,
> +				xform->ec.q.x.data, xform->ec.q.x.length);
> +		if (!ret) {
> +			OPENSSL_LOG(ERR, "failed to push params");
> +			goto err_eddsa;
> +		}
> +
> +		params = OSSL_PARAM_BLD_to_param(param_bld);
> +		if (!params) {
> +			OPENSSL_LOG(ERR, "failed to push params");
> +			goto err_eddsa;
> +		}
> +
> +		asym_session->u.eddsa.params = params;
> +		OSSL_PARAM_BLD_free(param_bld);
> +
> +		asym_session->xfrm_type =
> RTE_CRYPTO_ASYM_XFORM_EDDSA;
> +		break;
> +err_eddsa:
> +		if (param_bld)
> +			OSSL_PARAM_BLD_free(param_bld);
> +
> +		if (asym_session->u.eddsa.params)
> +			OSSL_PARAM_free(asym_session->u.eddsa.params);
> +
> +		return -1;
> +#else
> +		OPENSSL_LOG(WARNING, "EDDSA unsupported for OpenSSL
> Version < 3.3");
> +		return -ENOTSUP;
>  #endif
>  	}
>  	default:
> @@ -1538,6 +1663,12 @@ static void openssl_reset_asym_session(struct
> openssl_asym_session *sess)  #if (OPENSSL_VERSION_NUMBER >=
> 0x30000000L)
>  		OSSL_PARAM_free(sess->u.sm2.params);
>  #endif
> +		break;
> +	case RTE_CRYPTO_ASYM_XFORM_EDDSA:
> +#if (OPENSSL_VERSION_NUMBER >= 0x30300000L)
> +		OSSL_PARAM_free(sess->u.eddsa.params);
> +#endif
> +		break;
>  	default:
>  		break;
>  	}
> --
> 2.21.0


  parent reply	other threads:[~2024-10-07 16:27 UTC|newest]

Thread overview: 47+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-11-29 16:10 [PATCH v1 1/3] cryptodev: add EDDSA asymmetric crypto algorithm Gowrishankar Muthukrishnan
2023-11-29 16:10 ` [PATCH v1 2/3] crypto/openssl: add EDDSA support Gowrishankar Muthukrishnan
2023-11-29 16:10 ` [PATCH v1 3/3] test/crypto: add asymmetric EDDSA test cases Gowrishankar Muthukrishnan
2024-09-05 13:36 ` [PATCH v2 1/6] cryptodev: add EDDSA asymmetric crypto algorithm Gowrishankar Muthukrishnan
2024-09-05 13:39 ` Gowrishankar Muthukrishnan
2024-09-05 13:39   ` [PATCH v2 2/6] crypto/openssl: support EDDSA Gowrishankar Muthukrishnan
2024-09-09  9:56     ` Jack Bond-Preston
2024-09-05 13:39   ` [PATCH v2 3/6] crypto/cnxk: " Gowrishankar Muthukrishnan
2024-09-20 13:09     ` [PATCH v3 1/6] cryptodev: add EDDSA asymmetric crypto algorithm Gowrishankar Muthukrishnan
2024-09-20 13:09       ` [PATCH v3 2/6] crypto/openssl: support EDDSA Gowrishankar Muthukrishnan
2024-09-20 14:36         ` Akhil Goyal
2024-09-20 13:09       ` [PATCH v3 3/6] crypto/cnxk: " Gowrishankar Muthukrishnan
2024-09-20 13:09       ` [PATCH v3 4/6] test/crypto: add asymmetric EDDSA test cases Gowrishankar Muthukrishnan
2024-09-20 13:09       ` [PATCH v3 5/6] examples/fips_validation: support EDDSA Gowrishankar Muthukrishnan
2024-09-20 13:09       ` [PATCH v3 6/6] app/crypto-perf: " Gowrishankar Muthukrishnan
2024-10-03  6:42         ` Akhil Goyal
2024-10-03 17:56       ` [PATCH v4 1/6] cryptodev: add EDDSA asymmetric crypto algorithm Gowrishankar Muthukrishnan
2024-10-03 17:56         ` [PATCH v4 2/6] crypto/openssl: support EDDSA Gowrishankar Muthukrishnan
2024-10-03 17:56         ` [PATCH v4 3/6] crypto/cnxk: " Gowrishankar Muthukrishnan
2024-10-03 17:56         ` [PATCH v4 4/6] test/crypto: add asymmetric EDDSA test cases Gowrishankar Muthukrishnan
2024-10-03 17:56         ` [PATCH v4 5/6] examples/fips_validation: support EDDSA Gowrishankar Muthukrishnan
2024-10-03 17:56         ` [PATCH v4 6/6] app/crypto-perf: " Gowrishankar Muthukrishnan
2024-10-04  5:30         ` [PATCH v5 1/6] cryptodev: add EDDSA asymmetric crypto algorithm Gowrishankar Muthukrishnan
2024-10-04  5:30           ` [PATCH v5 2/6] crypto/openssl: support EDDSA Gowrishankar Muthukrishnan
2024-10-04  5:30           ` [PATCH v5 3/6] crypto/cnxk: " Gowrishankar Muthukrishnan
2024-10-04  5:30           ` [PATCH v5 4/6] test/crypto: add asymmetric EDDSA test cases Gowrishankar Muthukrishnan
2024-10-04  5:30           ` [PATCH v5 5/6] examples/fips_validation: support EDDSA Gowrishankar Muthukrishnan
2024-10-04  5:30           ` [PATCH v5 6/6] app/crypto-perf: " Gowrishankar Muthukrishnan
2024-10-04  8:26           ` [PATCH v6 1/6] cryptodev: add EDDSA asymmetric crypto algorithm Gowrishankar Muthukrishnan
2024-10-04  8:26             ` [PATCH v6 2/6] crypto/openssl: support EDDSA Gowrishankar Muthukrishnan
2024-10-07  9:50               ` Ji, Kai
2024-10-07 16:27               ` Kusztal, ArkadiuszX [this message]
2024-10-04  8:26             ` [PATCH v6 3/6] crypto/cnxk: " Gowrishankar Muthukrishnan
2024-10-04  8:26             ` [PATCH v6 4/6] test/crypto: add asymmetric EDDSA test cases Gowrishankar Muthukrishnan
2024-10-04  8:26             ` [PATCH v6 5/6] examples/fips_validation: support EDDSA Gowrishankar Muthukrishnan
2024-10-04 16:19               ` Dooley, Brian
2024-10-04  8:26             ` [PATCH v6 6/6] app/crypto-perf: " Gowrishankar Muthukrishnan
2024-10-04 16:20               ` Dooley, Brian
2024-10-07 16:03             ` [PATCH v6 1/6] cryptodev: add EDDSA asymmetric crypto algorithm Kusztal, ArkadiuszX
2024-10-08  7:40               ` Kusztal, ArkadiuszX
2024-10-08  9:31                 ` Gowrishankar Muthukrishnan
2024-10-08 11:37                   ` Kusztal, ArkadiuszX
2024-10-09  3:43                     ` Gowrishankar Muthukrishnan
2024-10-09 19:43                     ` Akhil Goyal
2024-09-05 13:39   ` [PATCH v2 4/6] test/crypto: add asymmetric EDDSA test cases Gowrishankar Muthukrishnan
2024-09-05 13:39   ` [PATCH v2 5/6] examples/fips_validation: support EDDSA Gowrishankar Muthukrishnan
2024-09-05 13:39   ` [PATCH v2 6/6] app/crypto-perf: " Gowrishankar Muthukrishnan

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=PH0PR11MB501378721FF63D83CA8086F49F7D2@PH0PR11MB5013.namprd11.prod.outlook.com \
    --to=arkadiuszx.kusztal@intel.com \
    --cc=anoobj@marvell.com \
    --cc=bruce.richardson@intel.com \
    --cc=david.marchand@redhat.com \
    --cc=declan.doherty@intel.com \
    --cc=dev@dpdk.org \
    --cc=fanzhang.oss@gmail.com \
    --cc=fiona.trahe@intel.com \
    --cc=gakhil@marvell.com \
    --cc=gmuthukrishn@marvell.com \
    --cc=hemant.agrawal@nxp.com \
    --cc=jack.bond-preston@foss.arm.com \
    --cc=jerinj@marvell.com \
    --cc=kai.ji@intel.com \
    --cc=matan@nvidia.com \
    --cc=pablo.de.lara.guarch@intel.com \
    --cc=ruifeng.wang@arm.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).