[EXT] [PATCH v2 08/14] cryptodev: add public key verify option
Akhil Goyal
gakhil at marvell.com
Thu May 26 13:34:21 CEST 2022
> - Added key exchange public key verify option.
> For some elliptic curves public point in DH exchange
> needs to be checked, if it lays on the curve.
> Modular exponentiation needs certain checks as well, though
> mathematically much easier.
> This commit adds verify option to asym_op operations.
>
> Signed-off-by: Arek Kusztal <arkadiuszx.kusztal at intel.com>
> ---
> lib/cryptodev/rte_crypto_asym.h | 9 ++++++---
> lib/cryptodev/rte_cryptodev.c | 3 ++-
> 2 files changed, 8 insertions(+), 4 deletions(-)
>
> diff --git a/lib/cryptodev/rte_crypto_asym.h b/lib/cryptodev/rte_crypto_asym.h
> index 0dab7c0593..3eafaecbbe 100644
> --- a/lib/cryptodev/rte_crypto_asym.h
> +++ b/lib/cryptodev/rte_crypto_asym.h
> @@ -141,8 +141,10 @@ enum rte_crypto_asym_ke_type {
> /**< Private Key generation operation */
> RTE_CRYPTO_ASYM_KE_PUBLIC_KEY_GENERATE,
> /**< Public Key generation operation */
> - RTE_CRYPTO_ASYM_KE_SHARED_SECRET_COMPUTE
> + RTE_CRYPTO_ASYM_KE_SHARED_SECRET_COMPUTE,
> /**< Shared Secret compute operation */
> + RTE_CRYPTO_ASYM_KE_EC_PUBLIC_KEY_VERIFY,
> + /**< Public Key Verification */
If this is not for DH and only for ECDH, then specify this in comments also.
But IMO, it will be OK to use RTE_CRYPTO_ASYM_KE_PUB_KEY_VERIFY.
If it is not valid to use it for DH, we can mention in comments.
> };
>
> /**
> @@ -434,8 +436,9 @@ struct rte_crypto_ecdh_op_param {
> * 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.
> + * Input - peer's public key, when xform type is one of:
> + * RTE_CRYPTO_ASYM_KE_SHARED_SECRET_COMPUTE,
> + * RTE_CRYPTO_ASYM_KE_EC_PUBLIC_KEY_VERIFY.
> */
> struct rte_crypto_ec_point shared_secret;
> /**<
> diff --git a/lib/cryptodev/rte_cryptodev.c b/lib/cryptodev/rte_cryptodev.c
> index af58f49d07..57ee6b3f07 100644
> --- a/lib/cryptodev/rte_cryptodev.c
> +++ b/lib/cryptodev/rte_cryptodev.c
> @@ -185,7 +185,8 @@ const char *rte_crypto_asym_op_strings[] = {
> const char *rte_crypto_asym_ke_strings[] = {
> [RTE_CRYPTO_ASYM_KE_PRIVATE_KEY_GENERATE] =
> "priv_key_generate",
> [RTE_CRYPTO_ASYM_KE_PUBLIC_KEY_GENERATE] =
> "pub_key_generate",
> - [RTE_CRYPTO_ASYM_KE_SHARED_SECRET_COMPUTE] =
> "sharedsecret_compute"
> + [RTE_CRYPTO_ASYM_KE_SHARED_SECRET_COMPUTE] =
> "sharedsecret_compute",
> + [RTE_CRYPTO_ASYM_KE_EC_PUBLIC_KEY_VERIFY] =
> "pub_ec_key_verify"
> };
>
> /**
> --
> 2.13.6
More information about the dev
mailing list