From d488d1d40436fa9f438248a3985adad7b8bc4918 Mon Sep 17 00:00:00 2001 From: Ben Taylor Date: Tue, 6 Jan 2026 08:10:22 +0000 Subject: [PATCH 01/10] Move declaration of get functions to the public header include/mbedtls/oid.h Signed-off-by: Ben Taylor --- include/mbedtls/oid.h | 68 +++++++++++++++++++++++++++++++++++++++++++ library/x509_oid.h | 68 ------------------------------------------- 2 files changed, 68 insertions(+), 68 deletions(-) diff --git a/include/mbedtls/oid.h b/include/mbedtls/oid.h index d769ff2180..f958713f06 100644 --- a/include/mbedtls/oid.h +++ b/include/mbedtls/oid.h @@ -280,6 +280,74 @@ int mbedtls_oid_get_numeric_string(char *buf, size_t size, const mbedtls_asn1_buf *oid); #endif /* MBEDTLS_X509_USE_C */ +#if defined(MBEDTLS_X509_USE_C) +/** + * \brief Translate an X.509 attribute type OID into the short name + * (e.g. the OID for an X520 Common Name into "CN") + * + * \param oid OID to use + * \param short_name place to store the string pointer + * + * \return 0 if successful, or MBEDTLS_ERR_X509_UNKNOWN_OID + */ +int mbedtls_x509_oid_get_attr_short_name(const mbedtls_asn1_buf *oid, const char **short_name); +#endif /* MBEDTLS_X509_USE_C */ + +#if defined(MBEDTLS_X509_USE_C) +/** + * \brief Translate SignatureAlgorithm OID into md_type and pk_type + * + * \param oid OID to use + * \param md_alg place to store message digest algorithm + * \param pk_alg place to store public key algorithm + * + * \return 0 if successful, or MBEDTLS_ERR_X509_UNKNOWN_OID + */ +int mbedtls_x509_oid_get_sig_alg(const mbedtls_asn1_buf *oid, + mbedtls_md_type_t *md_alg, mbedtls_pk_sigalg_t *pk_alg); + +#if !defined(MBEDTLS_X509_REMOVE_INFO) +/** + * \brief Translate SignatureAlgorithm OID into description + * + * \param oid OID to use + * \param desc place to store string pointer + * + * \return 0 if successful, or MBEDTLS_ERR_X509_UNKNOWN_OID + */ +int mbedtls_x509_oid_get_sig_alg_desc(const mbedtls_asn1_buf *oid, const char **desc); +#endif /* !MBEDTLS_X509_REMOVE_INFO */ +#endif /* MBEDTLS_X509_USE_C */ + +#if defined(MBEDTLS_X509_CRT_WRITE_C) || defined(MBEDTLS_X509_CSR_WRITE_C) +/** + * \brief Translate md_type and pk_type into SignatureAlgorithm OID + * + * \param md_alg message digest algorithm + * \param pk_alg public key algorithm + * \param oid place to store ASN.1 OID string pointer + * \param olen length of the OID + * + * \return 0 if successful, or MBEDTLS_ERR_X509_UNKNOWN_OID + */ +int mbedtls_x509_oid_get_oid_by_sig_alg(mbedtls_pk_sigalg_t pk_alg, mbedtls_md_type_t md_alg, + const char **oid, size_t *olen); +#endif /* MBEDTLS_X509_CRT_WRITE_C || MBEDTLS_X509_CSR_WRITE_C */ + +#if (defined(MBEDTLS_X509_USE_C) && defined(MBEDTLS_X509_RSASSA_PSS_SUPPORT)) || \ + defined(MBEDTLS_PKCS7_C) +#define MBEDTLS_X509_OID_HAVE_GET_MD_ALG +/** + * \brief Translate hash algorithm OID into md_type + * + * \param oid OID to use + * \param md_alg place to store message digest algorithm + * + * \return 0 if successful, or MBEDTLS_ERR_X509_UNKNOWN_OID + */ +int mbedtls_x509_oid_get_md_alg(const mbedtls_asn1_buf *oid, mbedtls_md_type_t *md_alg); +#endif /* MBEDTLS_X509_OID_HAVE_GET_MD_ALG */ + #if defined(MBEDTLS_X509_CREATE_C) /** * \brief Translate a string containing a dotted-decimal diff --git a/library/x509_oid.h b/library/x509_oid.h index 5721d8586c..607f0b958d 100644 --- a/library/x509_oid.h +++ b/library/x509_oid.h @@ -53,74 +53,6 @@ typedef struct { int mbedtls_x509_oid_get_x509_ext_type(const mbedtls_asn1_buf *oid, int *ext_type); #endif /* MBEDTLS_X509_OID_HAVE_GET_X509_EXT_TYPE */ -#if defined(MBEDTLS_X509_USE_C) -/** - * \brief Translate an X.509 attribute type OID into the short name - * (e.g. the OID for an X520 Common Name into "CN") - * - * \param oid OID to use - * \param short_name place to store the string pointer - * - * \return 0 if successful, or MBEDTLS_ERR_X509_UNKNOWN_OID - */ -int mbedtls_x509_oid_get_attr_short_name(const mbedtls_asn1_buf *oid, const char **short_name); -#endif /* MBEDTLS_X509_USE_C */ - -#if defined(MBEDTLS_X509_USE_C) -/** - * \brief Translate SignatureAlgorithm OID into md_type and pk_type - * - * \param oid OID to use - * \param md_alg place to store message digest algorithm - * \param pk_alg place to store public key algorithm - * - * \return 0 if successful, or MBEDTLS_ERR_X509_UNKNOWN_OID - */ -int mbedtls_x509_oid_get_sig_alg(const mbedtls_asn1_buf *oid, - mbedtls_md_type_t *md_alg, mbedtls_pk_sigalg_t *pk_alg); - -#if !defined(MBEDTLS_X509_REMOVE_INFO) -/** - * \brief Translate SignatureAlgorithm OID into description - * - * \param oid OID to use - * \param desc place to store string pointer - * - * \return 0 if successful, or MBEDTLS_ERR_X509_UNKNOWN_OID - */ -int mbedtls_x509_oid_get_sig_alg_desc(const mbedtls_asn1_buf *oid, const char **desc); -#endif /* !MBEDTLS_X509_REMOVE_INFO */ -#endif /* MBEDTLS_X509_USE_C */ - -#if defined(MBEDTLS_X509_CRT_WRITE_C) || defined(MBEDTLS_X509_CSR_WRITE_C) -/** - * \brief Translate md_type and pk_type into SignatureAlgorithm OID - * - * \param md_alg message digest algorithm - * \param pk_alg public key algorithm - * \param oid place to store ASN.1 OID string pointer - * \param olen length of the OID - * - * \return 0 if successful, or MBEDTLS_ERR_X509_UNKNOWN_OID - */ -int mbedtls_x509_oid_get_oid_by_sig_alg(mbedtls_pk_sigalg_t pk_alg, mbedtls_md_type_t md_alg, - const char **oid, size_t *olen); -#endif /* MBEDTLS_X509_CRT_WRITE_C || MBEDTLS_X509_CSR_WRITE_C */ - -#if (defined(MBEDTLS_X509_USE_C) && defined(MBEDTLS_X509_RSASSA_PSS_SUPPORT)) || \ - defined(MBEDTLS_PKCS7_C) -#define MBEDTLS_X509_OID_HAVE_GET_MD_ALG -/** - * \brief Translate hash algorithm OID into md_type - * - * \param oid OID to use - * \param md_alg place to store message digest algorithm - * - * \return 0 if successful, or MBEDTLS_ERR_X509_UNKNOWN_OID - */ -int mbedtls_x509_oid_get_md_alg(const mbedtls_asn1_buf *oid, mbedtls_md_type_t *md_alg); -#endif /* MBEDTLS_X509_OID_HAVE_GET_MD_ALG */ - #if defined(MBEDTLS_X509_CRT_PARSE_C) && !defined(MBEDTLS_X509_REMOVE_INFO) /** * \brief Translate Extended Key Usage OID into description From c8765acc73efd73e70bdfb7be1b763415659531f Mon Sep 17 00:00:00 2001 From: Ben Taylor Date: Tue, 6 Jan 2026 14:28:30 +0000 Subject: [PATCH 02/10] move mbedtls_x509_oid_get_attr_short_name and mbedtls_x509_oid_get_sig_alg_desc back Signed-off-by: Ben Taylor --- include/mbedtls/oid.h | 24 ------------------------ library/x509_oid.h | 24 ++++++++++++++++++++++++ 2 files changed, 24 insertions(+), 24 deletions(-) diff --git a/include/mbedtls/oid.h b/include/mbedtls/oid.h index f958713f06..944d050d19 100644 --- a/include/mbedtls/oid.h +++ b/include/mbedtls/oid.h @@ -280,18 +280,6 @@ int mbedtls_oid_get_numeric_string(char *buf, size_t size, const mbedtls_asn1_buf *oid); #endif /* MBEDTLS_X509_USE_C */ -#if defined(MBEDTLS_X509_USE_C) -/** - * \brief Translate an X.509 attribute type OID into the short name - * (e.g. the OID for an X520 Common Name into "CN") - * - * \param oid OID to use - * \param short_name place to store the string pointer - * - * \return 0 if successful, or MBEDTLS_ERR_X509_UNKNOWN_OID - */ -int mbedtls_x509_oid_get_attr_short_name(const mbedtls_asn1_buf *oid, const char **short_name); -#endif /* MBEDTLS_X509_USE_C */ #if defined(MBEDTLS_X509_USE_C) /** @@ -305,18 +293,6 @@ int mbedtls_x509_oid_get_attr_short_name(const mbedtls_asn1_buf *oid, const char */ int mbedtls_x509_oid_get_sig_alg(const mbedtls_asn1_buf *oid, mbedtls_md_type_t *md_alg, mbedtls_pk_sigalg_t *pk_alg); - -#if !defined(MBEDTLS_X509_REMOVE_INFO) -/** - * \brief Translate SignatureAlgorithm OID into description - * - * \param oid OID to use - * \param desc place to store string pointer - * - * \return 0 if successful, or MBEDTLS_ERR_X509_UNKNOWN_OID - */ -int mbedtls_x509_oid_get_sig_alg_desc(const mbedtls_asn1_buf *oid, const char **desc); -#endif /* !MBEDTLS_X509_REMOVE_INFO */ #endif /* MBEDTLS_X509_USE_C */ #if defined(MBEDTLS_X509_CRT_WRITE_C) || defined(MBEDTLS_X509_CSR_WRITE_C) diff --git a/library/x509_oid.h b/library/x509_oid.h index 607f0b958d..25d3f36658 100644 --- a/library/x509_oid.h +++ b/library/x509_oid.h @@ -42,6 +42,30 @@ typedef struct { #if defined(MBEDTLS_X509_CRT_PARSE_C) || defined(MBEDTLS_X509_CSR_PARSE_C) #define MBEDTLS_X509_OID_HAVE_GET_X509_EXT_TYPE +#if defined(MBEDTLS_X509_USE_C) +/** + * \brief Translate an X.509 attribute type OID into the short name + * (e.g. the OID for an X520 Common Name into "CN") + * + * \param oid OID to use + * \param short_name place to store the string pointer + * + * \return 0 if successful, or MBEDTLS_ERR_X509_UNKNOWN_OID + */ +int mbedtls_x509_oid_get_attr_short_name(const mbedtls_asn1_buf *oid, const char **short_name); +#if !defined(MBEDTLS_X509_REMOVE_INFO) +/** + * \brief Translate SignatureAlgorithm OID into description + * + * \param oid OID to use + * \param desc place to store string pointer + * + * \return 0 if successful, or MBEDTLS_ERR_X509_UNKNOWN_OID + */ +int mbedtls_x509_oid_get_sig_alg_desc(const mbedtls_asn1_buf *oid, const char **desc); +#endif /* !MBEDTLS_X509_REMOVE_INFO */ +#endif /* MBEDTLS_X509_USE_C */ + /** * \brief Translate an X.509 extension OID into local values * From 6ab7b607ad326f182dd1bd51263166e403e24595 Mon Sep 17 00:00:00 2001 From: Ben Taylor Date: Wed, 7 Jan 2026 08:06:26 +0000 Subject: [PATCH 03/10] Add new header to tests Signed-off-by: Ben Taylor --- tests/suites/test_suite_x509_oid.function | 1 + 1 file changed, 1 insertion(+) diff --git a/tests/suites/test_suite_x509_oid.function b/tests/suites/test_suite_x509_oid.function index b988aa0f67..dc7e2969a6 100644 --- a/tests/suites/test_suite_x509_oid.function +++ b/tests/suites/test_suite_x509_oid.function @@ -3,6 +3,7 @@ #include "mbedtls/asn1.h" #include "mbedtls/asn1write.h" #include "string.h" +#include "mbedtls/oid.h" /* END_HEADER */ /* BEGIN_CASE depends_on:MBEDTLS_X509_CRT_PARSE_C:!MBEDTLS_X509_REMOVE_INFO */ From 2ce8e1165dfdeaeeb82e5299057a61e493024705 Mon Sep 17 00:00:00 2001 From: Ben Taylor Date: Wed, 21 Jan 2026 14:14:25 +0000 Subject: [PATCH 04/10] Restore mbedtls_x509_oid_get_attr_short_name move Signed-off-by: Ben Taylor --- library/x509_oid.h | 10 ---------- 1 file changed, 10 deletions(-) diff --git a/library/x509_oid.h b/library/x509_oid.h index 25d3f36658..f7465e54d6 100644 --- a/library/x509_oid.h +++ b/library/x509_oid.h @@ -43,16 +43,6 @@ typedef struct { #if defined(MBEDTLS_X509_CRT_PARSE_C) || defined(MBEDTLS_X509_CSR_PARSE_C) #define MBEDTLS_X509_OID_HAVE_GET_X509_EXT_TYPE #if defined(MBEDTLS_X509_USE_C) -/** - * \brief Translate an X.509 attribute type OID into the short name - * (e.g. the OID for an X520 Common Name into "CN") - * - * \param oid OID to use - * \param short_name place to store the string pointer - * - * \return 0 if successful, or MBEDTLS_ERR_X509_UNKNOWN_OID - */ -int mbedtls_x509_oid_get_attr_short_name(const mbedtls_asn1_buf *oid, const char **short_name); #if !defined(MBEDTLS_X509_REMOVE_INFO) /** * \brief Translate SignatureAlgorithm OID into description From 471feaf01abadecb51194551fb84bf117190f0bc Mon Sep 17 00:00:00 2001 From: Ben Taylor Date: Wed, 21 Jan 2026 14:20:05 +0000 Subject: [PATCH 05/10] Restore mbedtls_x509_oid_get_attr_short_name move Signed-off-by: Ben Taylor --- include/mbedtls/oid.h | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/include/mbedtls/oid.h b/include/mbedtls/oid.h index 944d050d19..90adc957e3 100644 --- a/include/mbedtls/oid.h +++ b/include/mbedtls/oid.h @@ -266,6 +266,20 @@ #define MBEDTLS_OID_ECDSA_SHA512 MBEDTLS_OID_ANSI_X9_62_SIG_SHA2 "\x04" #if defined(MBEDTLS_X509_USE_C) +#if defined(MBEDTLS_X509_CRT_PARSE_C) || defined(MBEDTLS_X509_CSR_PARSE_C) +#define MBEDTLS_X509_OID_HAVE_GET_X509_EXT_TYPE +/** + * \brief Translate an X.509 attribute type OID into the short name + * (e.g. the OID for an X520 Common Name into "CN") + * + * \param oid OID to use + * \param short_name place to store the string pointer + * + * \return 0 if successful, or MBEDTLS_ERR_X509_UNKNOWN_OID + */ +int mbedtls_x509_oid_get_attr_short_name(const mbedtls_asn1_buf *oid, const char **short_name); +#endif /* MBEDTLS_X509_CRT_PARSE_C || MBEDTLS_X509_CSR_PARSE_C*/ + /** * \brief Translate an ASN.1 OID into its numeric representation * (e.g. "\x2A\x86\x48\x86\xF7\x0D" into "1.2.840.113549") From 0e50f0233b5a2b732936b21254b0e2c49a79d118 Mon Sep 17 00:00:00 2001 From: Ben Taylor Date: Wed, 21 Jan 2026 14:20:44 +0000 Subject: [PATCH 06/10] Revert move of mbedtls_x509_oid_get_x509_ext_type Signed-off-by: Ben Taylor --- library/x509_oid.h | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/library/x509_oid.h b/library/x509_oid.h index f7465e54d6..b4893c09d5 100644 --- a/library/x509_oid.h +++ b/library/x509_oid.h @@ -42,6 +42,16 @@ typedef struct { #if defined(MBEDTLS_X509_CRT_PARSE_C) || defined(MBEDTLS_X509_CSR_PARSE_C) #define MBEDTLS_X509_OID_HAVE_GET_X509_EXT_TYPE + +/** + * \brief Translate an X.509 extension OID into local values + * + * \param oid OID to use + * \param ext_type place to store the extension type + * + * \return 0 if successful, or MBEDTLS_ERR_X509_UNKNOWN_OID + */ +int mbedtls_x509_oid_get_x509_ext_type(const mbedtls_asn1_buf *oid, int *ext_type); #if defined(MBEDTLS_X509_USE_C) #if !defined(MBEDTLS_X509_REMOVE_INFO) /** @@ -55,16 +65,6 @@ typedef struct { int mbedtls_x509_oid_get_sig_alg_desc(const mbedtls_asn1_buf *oid, const char **desc); #endif /* !MBEDTLS_X509_REMOVE_INFO */ #endif /* MBEDTLS_X509_USE_C */ - -/** - * \brief Translate an X.509 extension OID into local values - * - * \param oid OID to use - * \param ext_type place to store the extension type - * - * \return 0 if successful, or MBEDTLS_ERR_X509_UNKNOWN_OID - */ -int mbedtls_x509_oid_get_x509_ext_type(const mbedtls_asn1_buf *oid, int *ext_type); #endif /* MBEDTLS_X509_OID_HAVE_GET_X509_EXT_TYPE */ #if defined(MBEDTLS_X509_CRT_PARSE_C) && !defined(MBEDTLS_X509_REMOVE_INFO) From 16e7986f2570b91564c60b58f0775296e5153c55 Mon Sep 17 00:00:00 2001 From: Ben Taylor Date: Wed, 21 Jan 2026 14:32:03 +0000 Subject: [PATCH 07/10] Correct endif comment Signed-off-by: Ben Taylor --- library/x509_oid.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/library/x509_oid.h b/library/x509_oid.h index b4893c09d5..62be330e07 100644 --- a/library/x509_oid.h +++ b/library/x509_oid.h @@ -65,7 +65,7 @@ int mbedtls_x509_oid_get_x509_ext_type(const mbedtls_asn1_buf *oid, int *ext_typ int mbedtls_x509_oid_get_sig_alg_desc(const mbedtls_asn1_buf *oid, const char **desc); #endif /* !MBEDTLS_X509_REMOVE_INFO */ #endif /* MBEDTLS_X509_USE_C */ -#endif /* MBEDTLS_X509_OID_HAVE_GET_X509_EXT_TYPE */ +#endif /* MBEDTLS_X509_CRT_PARSE_C || MBEDTLS_X509_CSR_PARSE_C */ #if defined(MBEDTLS_X509_CRT_PARSE_C) && !defined(MBEDTLS_X509_REMOVE_INFO) /** From 3237484d91a4b876987536ff71e57b8ef63a4025 Mon Sep 17 00:00:00 2001 From: Ben Taylor Date: Wed, 21 Jan 2026 14:34:12 +0000 Subject: [PATCH 08/10] Correct endif comment Signed-off-by: Ben Taylor --- include/mbedtls/oid.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/include/mbedtls/oid.h b/include/mbedtls/oid.h index 90adc957e3..d5d9df91f4 100644 --- a/include/mbedtls/oid.h +++ b/include/mbedtls/oid.h @@ -336,7 +336,7 @@ int mbedtls_x509_oid_get_oid_by_sig_alg(mbedtls_pk_sigalg_t pk_alg, mbedtls_md_t * \return 0 if successful, or MBEDTLS_ERR_X509_UNKNOWN_OID */ int mbedtls_x509_oid_get_md_alg(const mbedtls_asn1_buf *oid, mbedtls_md_type_t *md_alg); -#endif /* MBEDTLS_X509_OID_HAVE_GET_MD_ALG */ +#endif /* (MBEDTLS_X509_USE_C && MBEDTLS_X509_RSASSA_PSS_SUPPORT) || MBEDTLS_PKCS7_C */ #if defined(MBEDTLS_X509_CREATE_C) /** From 1b7b9116534e72d6ad3aeb3e81d998f625618b07 Mon Sep 17 00:00:00 2001 From: Ben Taylor Date: Wed, 4 Feb 2026 08:36:01 +0000 Subject: [PATCH 09/10] Update functions to be moved between oid.h and x509_oid.h Signed-off-by: Ben Taylor --- include/mbedtls/oid.h | 98 ++++++++++++++++++------------------------- library/x509_oid.h | 41 +++++++++++++----- 2 files changed, 70 insertions(+), 69 deletions(-) diff --git a/include/mbedtls/oid.h b/include/mbedtls/oid.h index d5d9df91f4..5702ced9be 100644 --- a/include/mbedtls/oid.h +++ b/include/mbedtls/oid.h @@ -266,20 +266,6 @@ #define MBEDTLS_OID_ECDSA_SHA512 MBEDTLS_OID_ANSI_X9_62_SIG_SHA2 "\x04" #if defined(MBEDTLS_X509_USE_C) -#if defined(MBEDTLS_X509_CRT_PARSE_C) || defined(MBEDTLS_X509_CSR_PARSE_C) -#define MBEDTLS_X509_OID_HAVE_GET_X509_EXT_TYPE -/** - * \brief Translate an X.509 attribute type OID into the short name - * (e.g. the OID for an X520 Common Name into "CN") - * - * \param oid OID to use - * \param short_name place to store the string pointer - * - * \return 0 if successful, or MBEDTLS_ERR_X509_UNKNOWN_OID - */ -int mbedtls_x509_oid_get_attr_short_name(const mbedtls_asn1_buf *oid, const char **short_name); -#endif /* MBEDTLS_X509_CRT_PARSE_C || MBEDTLS_X509_CSR_PARSE_C*/ - /** * \brief Translate an ASN.1 OID into its numeric representation * (e.g. "\x2A\x86\x48\x86\xF7\x0D" into "1.2.840.113549") @@ -294,50 +280,6 @@ int mbedtls_x509_oid_get_attr_short_name(const mbedtls_asn1_buf *oid, const char int mbedtls_oid_get_numeric_string(char *buf, size_t size, const mbedtls_asn1_buf *oid); #endif /* MBEDTLS_X509_USE_C */ - -#if defined(MBEDTLS_X509_USE_C) -/** - * \brief Translate SignatureAlgorithm OID into md_type and pk_type - * - * \param oid OID to use - * \param md_alg place to store message digest algorithm - * \param pk_alg place to store public key algorithm - * - * \return 0 if successful, or MBEDTLS_ERR_X509_UNKNOWN_OID - */ -int mbedtls_x509_oid_get_sig_alg(const mbedtls_asn1_buf *oid, - mbedtls_md_type_t *md_alg, mbedtls_pk_sigalg_t *pk_alg); -#endif /* MBEDTLS_X509_USE_C */ - -#if defined(MBEDTLS_X509_CRT_WRITE_C) || defined(MBEDTLS_X509_CSR_WRITE_C) -/** - * \brief Translate md_type and pk_type into SignatureAlgorithm OID - * - * \param md_alg message digest algorithm - * \param pk_alg public key algorithm - * \param oid place to store ASN.1 OID string pointer - * \param olen length of the OID - * - * \return 0 if successful, or MBEDTLS_ERR_X509_UNKNOWN_OID - */ -int mbedtls_x509_oid_get_oid_by_sig_alg(mbedtls_pk_sigalg_t pk_alg, mbedtls_md_type_t md_alg, - const char **oid, size_t *olen); -#endif /* MBEDTLS_X509_CRT_WRITE_C || MBEDTLS_X509_CSR_WRITE_C */ - -#if (defined(MBEDTLS_X509_USE_C) && defined(MBEDTLS_X509_RSASSA_PSS_SUPPORT)) || \ - defined(MBEDTLS_PKCS7_C) -#define MBEDTLS_X509_OID_HAVE_GET_MD_ALG -/** - * \brief Translate hash algorithm OID into md_type - * - * \param oid OID to use - * \param md_alg place to store message digest algorithm - * - * \return 0 if successful, or MBEDTLS_ERR_X509_UNKNOWN_OID - */ -int mbedtls_x509_oid_get_md_alg(const mbedtls_asn1_buf *oid, mbedtls_md_type_t *md_alg); -#endif /* (MBEDTLS_X509_USE_C && MBEDTLS_X509_RSASSA_PSS_SUPPORT) || MBEDTLS_PKCS7_C */ - #if defined(MBEDTLS_X509_CREATE_C) /** * \brief Translate a string containing a dotted-decimal @@ -359,4 +301,44 @@ int mbedtls_x509_oid_get_md_alg(const mbedtls_asn1_buf *oid, mbedtls_md_type_t * int mbedtls_oid_from_numeric_string(mbedtls_asn1_buf *oid, const char *oid_str, size_t size); #endif /* MBEDTLS_X509_CREATE_C */ +#if defined(MBEDTLS_X509_CRT_PARSE_C) || defined(MBEDTLS_X509_CSR_PARSE_C) + +#if defined(MBEDTLS_X509_USE_C) +/** + * \brief Translate an X.509 attribute type OID into the short name + * (e.g. the OID for an X520 Common Name into "CN") + * + * \param oid OID to use + * \param short_name place to store the string pointer + * + * \return 0 if successful, or MBEDTLS_ERR_X509_UNKNOWN_OID + */ +int mbedtls_x509_oid_get_attr_short_name(const mbedtls_asn1_buf *oid, const char **short_name); +#endif /* MBEDTLS_X509_USE_C */ + +#endif /* MBEDTLS_X509_CRT_PARSE_C || MBEDTLS_X509_CSR_PARSE_C */ + +#if defined(MBEDTLS_X509_CRT_PARSE_C) && !defined(MBEDTLS_X509_REMOVE_INFO) +/** + * \brief Translate Extended Key Usage OID into description + * + * \param oid OID to use + * \param desc place to store string pointer + * + * \return 0 if successful, or MBEDTLS_ERR_X509_UNKNOWN_OID + */ +int mbedtls_x509_oid_get_extended_key_usage(const mbedtls_asn1_buf *oid, const char **desc); + +/** + * \brief Translate certificate policies OID into description + * + * \param oid OID to use + * \param desc place to store string pointer + * + * \return 0 if successful, or MBEDTLS_ERR_X509_UNKNOWN_OID + */ +int mbedtls_x509_oid_get_certificate_policies(const mbedtls_asn1_buf *oid, const char **desc); +#endif /* MBEDTLS_X509_CRT_PARSE_C && !MBEDTLS_X509_REMOVE_INFO */ + + #endif /* oid.h */ diff --git a/library/x509_oid.h b/library/x509_oid.h index 62be330e07..26f862a9d8 100644 --- a/library/x509_oid.h +++ b/library/x509_oid.h @@ -42,7 +42,6 @@ typedef struct { #if defined(MBEDTLS_X509_CRT_PARSE_C) || defined(MBEDTLS_X509_CSR_PARSE_C) #define MBEDTLS_X509_OID_HAVE_GET_X509_EXT_TYPE - /** * \brief Translate an X.509 extension OID into local values * @@ -52,7 +51,21 @@ typedef struct { * \return 0 if successful, or MBEDTLS_ERR_X509_UNKNOWN_OID */ int mbedtls_x509_oid_get_x509_ext_type(const mbedtls_asn1_buf *oid, int *ext_type); +#endif /* MBEDTLS_X509_OID_HAVE_GET_X509_EXT_TYPE */ + #if defined(MBEDTLS_X509_USE_C) +/** + * \brief Translate SignatureAlgorithm OID into md_type and pk_type + * + * \param oid OID to use + * \param md_alg place to store message digest algorithm + * \param pk_alg place to store public key algorithm + * + * \return 0 if successful, or MBEDTLS_ERR_X509_UNKNOWN_OID + */ +int mbedtls_x509_oid_get_sig_alg(const mbedtls_asn1_buf *oid, + mbedtls_md_type_t *md_alg, mbedtls_pk_sigalg_t *pk_alg); + #if !defined(MBEDTLS_X509_REMOVE_INFO) /** * \brief Translate SignatureAlgorithm OID into description @@ -65,29 +78,35 @@ int mbedtls_x509_oid_get_x509_ext_type(const mbedtls_asn1_buf *oid, int *ext_typ int mbedtls_x509_oid_get_sig_alg_desc(const mbedtls_asn1_buf *oid, const char **desc); #endif /* !MBEDTLS_X509_REMOVE_INFO */ #endif /* MBEDTLS_X509_USE_C */ -#endif /* MBEDTLS_X509_CRT_PARSE_C || MBEDTLS_X509_CSR_PARSE_C */ -#if defined(MBEDTLS_X509_CRT_PARSE_C) && !defined(MBEDTLS_X509_REMOVE_INFO) +#if defined(MBEDTLS_X509_CRT_WRITE_C) || defined(MBEDTLS_X509_CSR_WRITE_C) /** - * \brief Translate Extended Key Usage OID into description + * \brief Translate md_type and pk_type into SignatureAlgorithm OID * - * \param oid OID to use - * \param desc place to store string pointer + * \param md_alg message digest algorithm + * \param pk_alg public key algorithm + * \param oid place to store ASN.1 OID string pointer + * \param olen length of the OID * * \return 0 if successful, or MBEDTLS_ERR_X509_UNKNOWN_OID */ -int mbedtls_x509_oid_get_extended_key_usage(const mbedtls_asn1_buf *oid, const char **desc); +int mbedtls_x509_oid_get_oid_by_sig_alg(mbedtls_pk_sigalg_t pk_alg, mbedtls_md_type_t md_alg, + const char **oid, size_t *olen); +#endif /* MBEDTLS_X509_CRT_WRITE_C || MBEDTLS_X509_CSR_WRITE_C */ +#if (defined(MBEDTLS_X509_USE_C) && defined(MBEDTLS_X509_RSASSA_PSS_SUPPORT)) || \ + defined(MBEDTLS_PKCS7_C) +#define MBEDTLS_X509_OID_HAVE_GET_MD_ALG /** - * \brief Translate certificate policies OID into description + * \brief Translate hash algorithm OID into md_type * * \param oid OID to use - * \param desc place to store string pointer + * \param md_alg place to store message digest algorithm * * \return 0 if successful, or MBEDTLS_ERR_X509_UNKNOWN_OID */ -int mbedtls_x509_oid_get_certificate_policies(const mbedtls_asn1_buf *oid, const char **desc); -#endif /* MBEDTLS_X509_CRT_PARSE_C && !MBEDTLS_X509_REMOVE_INFO */ +int mbedtls_x509_oid_get_md_alg(const mbedtls_asn1_buf *oid, mbedtls_md_type_t *md_alg); +#endif /* MBEDTLS_X509_OID_HAVE_GET_MD_ALG */ #ifdef __cplusplus } From 41905a450a9ea6cc13964745a965a1be61aeb966 Mon Sep 17 00:00:00 2001 From: Ben Taylor Date: Fri, 13 Mar 2026 14:49:20 +0000 Subject: [PATCH 10/10] Correct guards for mbedtls_x509_oid_get_attr_short_name Signed-off-by: Ben Taylor --- include/mbedtls/oid.h | 4 ---- 1 file changed, 4 deletions(-) diff --git a/include/mbedtls/oid.h b/include/mbedtls/oid.h index 5702ced9be..5b3a8f9fac 100644 --- a/include/mbedtls/oid.h +++ b/include/mbedtls/oid.h @@ -301,8 +301,6 @@ int mbedtls_oid_get_numeric_string(char *buf, size_t size, const mbedtls_asn1_bu int mbedtls_oid_from_numeric_string(mbedtls_asn1_buf *oid, const char *oid_str, size_t size); #endif /* MBEDTLS_X509_CREATE_C */ -#if defined(MBEDTLS_X509_CRT_PARSE_C) || defined(MBEDTLS_X509_CSR_PARSE_C) - #if defined(MBEDTLS_X509_USE_C) /** * \brief Translate an X.509 attribute type OID into the short name @@ -316,8 +314,6 @@ int mbedtls_oid_from_numeric_string(mbedtls_asn1_buf *oid, const char *oid_str, int mbedtls_x509_oid_get_attr_short_name(const mbedtls_asn1_buf *oid, const char **short_name); #endif /* MBEDTLS_X509_USE_C */ -#endif /* MBEDTLS_X509_CRT_PARSE_C || MBEDTLS_X509_CSR_PARSE_C */ - #if defined(MBEDTLS_X509_CRT_PARSE_C) && !defined(MBEDTLS_X509_REMOVE_INFO) /** * \brief Translate Extended Key Usage OID into description