[v1 4/6] cryptodev: use generic EC xform params for SM2
Kusztal, ArkadiuszX
arkadiuszx.kusztal at intel.com
Tue Sep 26 22:05:00 CEST 2023
> -----Original Message-----
> From: Gowrishankar Muthukrishnan <gmuthukrishn at marvell.com>
> Sent: Thursday, August 10, 2023 11:35 AM
> To: dev at dpdk.org
> Cc: anoobj at marvell.com; Akhil Goyal <gakhil at marvell.com>; Fan Zhang
> <fanzhang.oss at gmail.com>; Ji, Kai <kai.ji at intel.com>; Gowrishankar
> Muthukrishnan <gmuthukrishn at marvell.com>
> Subject: [v1 4/6] cryptodev: use generic EC xform params for SM2
>
> Now, generic EC xform parameters include hash algorithm field.
> Hence, SM2 curve can use this generic struct for setting hash algorithm, which
> would also require SM2 curve ID enumerated along with other curves, as listed
> in:
> https://www.iana.org/assignments/tls-parameters/tls-parameters.xhtml
>
> Signed-off-by: Gowrishankar Muthukrishnan <gmuthukrishn at marvell.com>
> ---
> app/test/test_cryptodev_asym.c | 12 ++++++++----
> app/test/test_cryptodev_sm2_test_vectors.h | 4 +++-
> doc/guides/rel_notes/release_23_11.rst | 2 ++
> drivers/crypto/openssl/rte_openssl_pmd_ops.c | 2 +-
> lib/cryptodev/rte_crypto_asym.h | 16 ++--------------
> 5 files changed, 16 insertions(+), 20 deletions(-)
>
> diff --git a/app/test/test_cryptodev_asym.c b/app/test/test_cryptodev_asym.c
> index 0ef2642fdd..b08772a9bf 100644
> --- a/app/test/test_cryptodev_asym.c
> +++ b/app/test/test_cryptodev_asym.c
> @@ -1838,7 +1838,8 @@ _test_sm2_sign(bool rnd_secret)
> /* Setup asym xform */
> xform.next = NULL;
> xform.xform_type = RTE_CRYPTO_ASYM_XFORM_SM2;
> - xform.sm2.hash = RTE_CRYPTO_AUTH_SM3;
> + xform.ec.curve_id = input_params.curve;
> + xform.ec.hash = RTE_CRYPTO_AUTH_SM3;
>
> ret = rte_cryptodev_asym_session_create(dev_id, &xform, sess_mpool,
> &sess);
> if (ret < 0) {
> @@ -2019,7 +2020,8 @@ test_sm2_verify(void)
> /* Setup asym xform */
> xform.next = NULL;
> xform.xform_type = RTE_CRYPTO_ASYM_XFORM_SM2;
> - xform.sm2.hash = RTE_CRYPTO_AUTH_SM3;
> + xform.ec.curve_id = input_params.curve;
> + xform.ec.hash = RTE_CRYPTO_AUTH_SM3;
>
> ret = rte_cryptodev_asym_session_create(dev_id, &xform, sess_mpool,
> &sess);
> if (ret < 0) {
> @@ -2120,7 +2122,8 @@ _test_sm2_enc(bool rnd_secret)
> /* Setup asym xform */
> +++ b/lib/cryptodev/rte_crypto_asym.h
> @@ -69,7 +69,8 @@ enum rte_crypto_curve_id {
> RTE_CRYPTO_EC_GROUP_SECP224R1 = 21,
> RTE_CRYPTO_EC_GROUP_SECP256R1 = 23,
> RTE_CRYPTO_EC_GROUP_SECP384R1 = 24,
> - RTE_CRYPTO_EC_GROUP_SECP521R1 = 25
> + RTE_CRYPTO_EC_GROUP_SECP521R1 = 25,
> + RTE_CRYPTO_EC_GROUP_SM2 = 41,
> };
>
> /**
> @@ -382,16 +383,6 @@ struct rte_crypto_ec_xform {
> /**< Hash algorithm used in EC op. */
> };
>
> -/**
> - * Asymmetric SM2 transform data.
> - *
> - * Structure describing SM2 xform params.
> - */
> -struct rte_crypto_sm2_xform {
> - enum rte_crypto_auth_algorithm hash;
> - /**< Hash algorithm used in SM2 op. */
> -};
> -
> /**
> * Operations params for modular operations:
> * exponentiation and multiplicative inverse @@ -649,9 +640,6 @@ struct
> rte_crypto_asym_xform {
> /**< EC xform parameters, used by elliptic curve based
> * operations.
> */
> -
> - struct rte_crypto_sm2_xform sm2;
> - /**< SM2 xform parameters */
> };
> };
>
> --
> 2.25.1
Acked-by: Arkadiusz Kusztal <arkadiuszx.kusztal at intel.com>
More information about the dev
mailing list