From 3cf6109ccb787e0bc4b23f0a88556b7fe496c044 Mon Sep 17 00:00:00 2001 From: Yi Wu Date: Mon, 2 Mar 2026 14:45:22 +0000 Subject: [PATCH 1/2] Replace mbedtls_md_info_from_string() with strcmp() Signed-off-by: Yi Wu --- programs/x509/cert_req.c | 43 ++++++++++++++++++++++++++++++++++++-- programs/x509/cert_write.c | 43 ++++++++++++++++++++++++++++++++++++-- 2 files changed, 82 insertions(+), 4 deletions(-) diff --git a/programs/x509/cert_req.c b/programs/x509/cert_req.c index d6e22aaf8c..8bb1dd8ac9 100644 --- a/programs/x509/cert_req.c +++ b/programs/x509/cert_req.c @@ -314,8 +314,47 @@ usage: q = r; } } else if (strcmp(p, "md") == 0) { - const mbedtls_md_info_t *md_info = - mbedtls_md_info_from_string(q); + const mbedtls_md_info_t *md_info = NULL; + +#if defined(PSA_WANT_ALG_MD5) + if (strcmp(q, "MD5") == 0) { + md_info = mbedtls_md_info_from_type(MBEDTLS_MD_MD5); + } else +#endif +#if defined(PSA_WANT_ALG_RIPEMD160) + if (strcmp(q, "RIPEMD160") == 0) { + md_info = mbedtls_md_info_from_type(MBEDTLS_MD_RIPEMD160); + } else +#endif +#if defined(PSA_WANT_ALG_SHA_1) + if (strcmp(q, "SHA1") == 0) { + md_info = mbedtls_md_info_from_type(MBEDTLS_MD_SHA1); + } else +#endif +#if defined(PSA_WANT_ALG_SHA_224) || defined(MBEDTLS_PSA_ACCEL_ALG_SHA3_224) + if (strcmp(q, "SHA224") == 0) { + md_info = mbedtls_md_info_from_type(MBEDTLS_MD_SHA224); + } else +#endif +#if defined(PSA_WANT_ALG_SHA_256) || defined(MBEDTLS_PSA_ACCEL_ALG_SHA3_256) + if (strcmp(q, "SHA256") == 0) { + md_info = mbedtls_md_info_from_type(MBEDTLS_MD_SHA256); + } else +#endif +#if defined(PSA_WANT_ALG_SHA_384) || defined(MBEDTLS_PSA_ACCEL_ALG_SHA3_384) + if (strcmp(q, "SHA384") == 0) { + md_info = mbedtls_md_info_from_type(MBEDTLS_MD_SHA384); + } else +#endif +#if defined(PSA_WANT_ALG_SHA_512) || defined(MBEDTLS_PSA_ACCEL_ALG_SHA3_512) + if (strcmp(q, "SHA512") == 0) { + md_info = mbedtls_md_info_from_type(MBEDTLS_MD_SHA512); + } else +#endif + { + md_info = NULL; + } + if (md_info == NULL) { mbedtls_printf("Invalid argument for option %s\n", p); goto usage; diff --git a/programs/x509/cert_write.c b/programs/x509/cert_write.c index 8ff35f0c2f..49000b0dd7 100644 --- a/programs/x509/cert_write.c +++ b/programs/x509/cert_write.c @@ -432,8 +432,47 @@ usage: goto usage; } } else if (strcmp(p, "md") == 0) { - const mbedtls_md_info_t *md_info = - mbedtls_md_info_from_string(q); + const mbedtls_md_info_t *md_info = NULL; + +#if defined(PSA_WANT_ALG_MD5) + if (strcmp(q, "MD5") == 0) { + md_info = mbedtls_md_info_from_type(MBEDTLS_MD_MD5); + } else +#endif +#if defined(PSA_WANT_ALG_RIPEMD160) + if (strcmp(q, "RIPEMD160") == 0) { + md_info = mbedtls_md_info_from_type(MBEDTLS_MD_RIPEMD160); + } else +#endif +#if defined(PSA_WANT_ALG_SHA_1) + if (strcmp(q, "SHA1") == 0) { + md_info = mbedtls_md_info_from_type(MBEDTLS_MD_SHA1); + } else +#endif +#if defined(PSA_WANT_ALG_SHA_224) || defined(MBEDTLS_PSA_ACCEL_ALG_SHA3_224) + if (strcmp(q, "SHA224") == 0) { + md_info = mbedtls_md_info_from_type(MBEDTLS_MD_SHA224); + } else +#endif +#if defined(PSA_WANT_ALG_SHA_256) || defined(MBEDTLS_PSA_ACCEL_ALG_SHA3_256) + if (strcmp(q, "SHA256") == 0) { + md_info = mbedtls_md_info_from_type(MBEDTLS_MD_SHA256); + } else +#endif +#if defined(PSA_WANT_ALG_SHA_384) || defined(MBEDTLS_PSA_ACCEL_ALG_SHA3_384) + if (strcmp(q, "SHA384") == 0) { + md_info = mbedtls_md_info_from_type(MBEDTLS_MD_SHA384); + } else +#endif +#if defined(PSA_WANT_ALG_SHA_512) || defined(MBEDTLS_PSA_ACCEL_ALG_SHA3_512) + if (strcmp(q, "SHA512") == 0) { + md_info = mbedtls_md_info_from_type(MBEDTLS_MD_SHA512); + } else +#endif + { + md_info = NULL; + } + if (md_info == NULL) { mbedtls_printf("Invalid argument for option %s\n", p); goto usage; From efe8ab6518eeaa056aa2e0333ac07c0cc8001f00 Mon Sep 17 00:00:00 2001 From: Yi Wu Date: Thu, 13 Aug 2026 09:24:52 +0100 Subject: [PATCH 2/2] fix guards and keep SHA Signed-off-by: Yi Wu --- programs/x509/cert_req.c | 30 +++++++++++++++++++++++++----- programs/x509/cert_write.c | 30 +++++++++++++++++++++++++----- 2 files changed, 50 insertions(+), 10 deletions(-) diff --git a/programs/x509/cert_req.c b/programs/x509/cert_req.c index 8bb1dd8ac9..73d712915a 100644 --- a/programs/x509/cert_req.c +++ b/programs/x509/cert_req.c @@ -327,29 +327,49 @@ usage: } else #endif #if defined(PSA_WANT_ALG_SHA_1) - if (strcmp(q, "SHA1") == 0) { + if (strcmp(q, "SHA1") == 0 || strcmp(q, "SHA") == 0) { md_info = mbedtls_md_info_from_type(MBEDTLS_MD_SHA1); } else #endif -#if defined(PSA_WANT_ALG_SHA_224) || defined(MBEDTLS_PSA_ACCEL_ALG_SHA3_224) +#if defined(PSA_WANT_ALG_SHA_224) if (strcmp(q, "SHA224") == 0) { md_info = mbedtls_md_info_from_type(MBEDTLS_MD_SHA224); } else #endif -#if defined(PSA_WANT_ALG_SHA_256) || defined(MBEDTLS_PSA_ACCEL_ALG_SHA3_256) +#if defined(PSA_WANT_ALG_SHA_256) if (strcmp(q, "SHA256") == 0) { md_info = mbedtls_md_info_from_type(MBEDTLS_MD_SHA256); } else #endif -#if defined(PSA_WANT_ALG_SHA_384) || defined(MBEDTLS_PSA_ACCEL_ALG_SHA3_384) +#if defined(PSA_WANT_ALG_SHA_384) if (strcmp(q, "SHA384") == 0) { md_info = mbedtls_md_info_from_type(MBEDTLS_MD_SHA384); } else #endif -#if defined(PSA_WANT_ALG_SHA_512) || defined(MBEDTLS_PSA_ACCEL_ALG_SHA3_512) +#if defined(PSA_WANT_ALG_SHA_512) if (strcmp(q, "SHA512") == 0) { md_info = mbedtls_md_info_from_type(MBEDTLS_MD_SHA512); } else +#endif +#if defined(PSA_WANT_ALG_SHA3_224) + if (strcmp(q, "SHA3-224") == 0) { + md_info = mbedtls_md_info_from_type(MBEDTLS_MD_SHA3_224); + } else +#endif +#if defined(PSA_WANT_ALG_SHA3_256) + if (strcmp(q, "SHA3-256") == 0) { + md_info = mbedtls_md_info_from_type(MBEDTLS_MD_SHA3_256); + } else +#endif +#if defined(PSA_WANT_ALG_SHA3_384) + if (strcmp(q, "SHA3-384") == 0) { + md_info = mbedtls_md_info_from_type(MBEDTLS_MD_SHA3_384); + } else +#endif +#if defined(PSA_WANT_ALG_SHA3_512) + if (strcmp(q, "SHA3-512") == 0) { + md_info = mbedtls_md_info_from_type(MBEDTLS_MD_SHA3_512); + } else #endif { md_info = NULL; diff --git a/programs/x509/cert_write.c b/programs/x509/cert_write.c index 49000b0dd7..5d9a306ee7 100644 --- a/programs/x509/cert_write.c +++ b/programs/x509/cert_write.c @@ -445,29 +445,49 @@ usage: } else #endif #if defined(PSA_WANT_ALG_SHA_1) - if (strcmp(q, "SHA1") == 0) { + if (strcmp(q, "SHA1") == 0 || strcmp(q, "SHA") == 0) { md_info = mbedtls_md_info_from_type(MBEDTLS_MD_SHA1); } else #endif -#if defined(PSA_WANT_ALG_SHA_224) || defined(MBEDTLS_PSA_ACCEL_ALG_SHA3_224) +#if defined(PSA_WANT_ALG_SHA_224) if (strcmp(q, "SHA224") == 0) { md_info = mbedtls_md_info_from_type(MBEDTLS_MD_SHA224); } else #endif -#if defined(PSA_WANT_ALG_SHA_256) || defined(MBEDTLS_PSA_ACCEL_ALG_SHA3_256) +#if defined(PSA_WANT_ALG_SHA_256) if (strcmp(q, "SHA256") == 0) { md_info = mbedtls_md_info_from_type(MBEDTLS_MD_SHA256); } else #endif -#if defined(PSA_WANT_ALG_SHA_384) || defined(MBEDTLS_PSA_ACCEL_ALG_SHA3_384) +#if defined(PSA_WANT_ALG_SHA_384) if (strcmp(q, "SHA384") == 0) { md_info = mbedtls_md_info_from_type(MBEDTLS_MD_SHA384); } else #endif -#if defined(PSA_WANT_ALG_SHA_512) || defined(MBEDTLS_PSA_ACCEL_ALG_SHA3_512) +#if defined(PSA_WANT_ALG_SHA_512) if (strcmp(q, "SHA512") == 0) { md_info = mbedtls_md_info_from_type(MBEDTLS_MD_SHA512); } else +#endif +#if defined(PSA_WANT_ALG_SHA3_224) + if (strcmp(q, "SHA3-224") == 0) { + md_info = mbedtls_md_info_from_type(MBEDTLS_MD_SHA3_224); + } else +#endif +#if defined(PSA_WANT_ALG_SHA3_256) + if (strcmp(q, "SHA3-256") == 0) { + md_info = mbedtls_md_info_from_type(MBEDTLS_MD_SHA3_256); + } else +#endif +#if defined(PSA_WANT_ALG_SHA3_384) + if (strcmp(q, "SHA3-384") == 0) { + md_info = mbedtls_md_info_from_type(MBEDTLS_MD_SHA3_384); + } else +#endif +#if defined(PSA_WANT_ALG_SHA3_512) + if (strcmp(q, "SHA3-512") == 0) { + md_info = mbedtls_md_info_from_type(MBEDTLS_MD_SHA3_512); + } else #endif { md_info = NULL;