From 9d91cf18755f813a41ee07fc68ee21f028c72b84 Mon Sep 17 00:00:00 2001 From: Lin Huang Date: Fri, 4 Sep 2026 09:23:07 -0700 Subject: [PATCH] Fix -Wundef warnings for PSA macros in pk_internal.h MBEDTLS_PSA_MAX_EC_PUBKEY_LENGTH and MBEDTLS_PSA_MAX_EC_KEY_PAIR_LENGTH are only defined when MBEDTLS_PSA_CRYPTO_CLIENT is enabled (via psa_util_internal.h). However, the PK_EXPORT_KEYS_ON_THE_STACK block used them unconditionally, triggering -Wundef warnings when compiling with a minimal config that does not enable PSA. Guard the PSA-specific size macros with #if defined(MBEDTLS_PSA_CRYPTO_CLIENT), falling back to 0 when PSA is disabled. The subsequent MBEDTLS_ECP_MAX_BYTES comparison will set the proper value. Signed-off-by: Lin Huang --- ChangeLog.d/pk_internal_wundef.txt | 4 ++++ library/pk_internal.h | 8 ++++++-- 2 files changed, 10 insertions(+), 2 deletions(-) create mode 100644 ChangeLog.d/pk_internal_wundef.txt diff --git a/ChangeLog.d/pk_internal_wundef.txt b/ChangeLog.d/pk_internal_wundef.txt new file mode 100644 index 0000000000..c3251dcab0 --- /dev/null +++ b/ChangeLog.d/pk_internal_wundef.txt @@ -0,0 +1,4 @@ +Bugfix + * library/pk_internal.h: Fix 'MBEDTLS_PSA_MAX_EC_PUBKEY_LENGTH' and + 'MBEDTLS_PSA_MAX_EC_KEY_PAIR_LENGTH' are not defined errors when + building in a configuration that does not enable PSA. diff --git a/library/pk_internal.h b/library/pk_internal.h index a57b5545bf..b77695b11e 100644 --- a/library/pk_internal.h +++ b/library/pk_internal.h @@ -61,13 +61,17 @@ #endif #if defined(PK_EXPORT_KEYS_ON_THE_STACK) -/* We know for ECC, pubkey are longer than privkeys, but double check. - * Also, take the maximum size of legacy and PSA, as PSA might be disabled. */ +/* Take the maximum size of legacy ECP and PSA EC sizes. + * PSA might be disabled, so guard the PSA-specific macros. */ +#if defined(MBEDTLS_PSA_CRYPTO_CLIENT) #define PK_EXPORT_KEY_STACK_BUFFER_SIZE MBEDTLS_PSA_MAX_EC_PUBKEY_LENGTH #if PK_EXPORT_KEY_STACK_BUFFER_SIZE < MBEDTLS_PSA_MAX_EC_KEY_PAIR_LENGTH #undef PK_EXPORT_KEY_STACK_BUFFER_SIZE #define PK_EXPORT_KEY_STACK_BUFFER_SIZE MBEDTLS_PSA_MAX_EC_KEY_PAIR_LENGTH #endif +#else +#define PK_EXPORT_KEY_STACK_BUFFER_SIZE 0 +#endif /* MBEDTLS_PSA_CRYPTO_CLIENT */ #if PK_EXPORT_KEY_STACK_BUFFER_SIZE < MBEDTLS_ECP_MAX_BYTES #undef PK_EXPORT_KEY_STACK_BUFFER_SIZE #define PK_EXPORT_KEY_STACK_BUFFER_SIZE MBEDTLS_ECP_MAX_BYTES