Skip to content

Commit a96f4fe

Browse files
committed
Merge remote-tracking branch 'origin/pr/2380' into development
* origin/pr/2380: Fix backwards config dependency on oid.c Fix backwards include of x509.h in oid.h
2 parents eb0195d + 430a66f commit a96f4fe

File tree

3 files changed

+46
-34
lines changed

3 files changed

+46
-34
lines changed

include/mbedtls/oid.h

Lines changed: 22 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -43,13 +43,31 @@
4343
#include "md.h"
4444
#endif
4545

46-
#if defined(MBEDTLS_X509_USE_C) || defined(MBEDTLS_X509_CREATE_C)
47-
#include "x509.h"
48-
#endif
49-
5046
#define MBEDTLS_ERR_OID_NOT_FOUND -0x002E /**< OID is not found. */
5147
#define MBEDTLS_ERR_OID_BUF_TOO_SMALL -0x000B /**< output buffer is too small */
5248

49+
/* This is for the benefit of X.509, but defined here in order to avoid
50+
* having a "backwards" include of x.509.h here */
51+
/*
52+
* X.509 extension types (internal, arbitrary values for bitsets)
53+
*/
54+
#define MBEDTLS_OID_X509_EXT_AUTHORITY_KEY_IDENTIFIER (1 << 0)
55+
#define MBEDTLS_OID_X509_EXT_SUBJECT_KEY_IDENTIFIER (1 << 1)
56+
#define MBEDTLS_OID_X509_EXT_KEY_USAGE (1 << 2)
57+
#define MBEDTLS_OID_X509_EXT_CERTIFICATE_POLICIES (1 << 3)
58+
#define MBEDTLS_OID_X509_EXT_POLICY_MAPPINGS (1 << 4)
59+
#define MBEDTLS_OID_X509_EXT_SUBJECT_ALT_NAME (1 << 5)
60+
#define MBEDTLS_OID_X509_EXT_ISSUER_ALT_NAME (1 << 6)
61+
#define MBEDTLS_OID_X509_EXT_SUBJECT_DIRECTORY_ATTRS (1 << 7)
62+
#define MBEDTLS_OID_X509_EXT_BASIC_CONSTRAINTS (1 << 8)
63+
#define MBEDTLS_OID_X509_EXT_NAME_CONSTRAINTS (1 << 9)
64+
#define MBEDTLS_OID_X509_EXT_POLICY_CONSTRAINTS (1 << 10)
65+
#define MBEDTLS_OID_X509_EXT_EXTENDED_KEY_USAGE (1 << 11)
66+
#define MBEDTLS_OID_X509_EXT_CRL_DISTRIBUTION_POINTS (1 << 12)
67+
#define MBEDTLS_OID_X509_EXT_INIHIBIT_ANYPOLICY (1 << 13)
68+
#define MBEDTLS_OID_X509_EXT_FRESHEST_CRL (1 << 14)
69+
#define MBEDTLS_OID_X509_EXT_NS_CERT_TYPE (1 << 16)
70+
5371
/*
5472
* Top level OID tuples
5573
*/
@@ -424,7 +442,6 @@ typedef struct mbedtls_oid_descriptor_t
424442
*/
425443
int mbedtls_oid_get_numeric_string( char *buf, size_t size, const mbedtls_asn1_buf *oid );
426444

427-
#if defined(MBEDTLS_X509_USE_C) || defined(MBEDTLS_X509_CREATE_C)
428445
/**
429446
* \brief Translate an X.509 extension OID into local values
430447
*
@@ -434,7 +451,6 @@ int mbedtls_oid_get_numeric_string( char *buf, size_t size, const mbedtls_asn1_b
434451
* \return 0 if successful, or MBEDTLS_ERR_OID_NOT_FOUND
435452
*/
436453
int mbedtls_oid_get_x509_ext_type( const mbedtls_asn1_buf *oid, int *ext_type );
437-
#endif
438454

439455
/**
440456
* \brief Translate an X.509 attribute type OID into the short name

include/mbedtls/x509.h

Lines changed: 19 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -142,24 +142,26 @@
142142
*
143143
* Comments refer to the status for using certificates. Status can be
144144
* different for writing certificates or reading CRLs or CSRs.
145+
*
146+
* Those are defined in oid.h as oid.c needs them in a data structure. Since
147+
* these were previously defined here, let's have aliases for compatibility.
145148
*/
146-
#define MBEDTLS_X509_EXT_AUTHORITY_KEY_IDENTIFIER (1 << 0)
147-
#define MBEDTLS_X509_EXT_SUBJECT_KEY_IDENTIFIER (1 << 1)
148-
#define MBEDTLS_X509_EXT_KEY_USAGE (1 << 2)
149-
#define MBEDTLS_X509_EXT_CERTIFICATE_POLICIES (1 << 3)
150-
#define MBEDTLS_X509_EXT_POLICY_MAPPINGS (1 << 4)
151-
#define MBEDTLS_X509_EXT_SUBJECT_ALT_NAME (1 << 5) /* Supported (DNS) */
152-
#define MBEDTLS_X509_EXT_ISSUER_ALT_NAME (1 << 6)
153-
#define MBEDTLS_X509_EXT_SUBJECT_DIRECTORY_ATTRS (1 << 7)
154-
#define MBEDTLS_X509_EXT_BASIC_CONSTRAINTS (1 << 8) /* Supported */
155-
#define MBEDTLS_X509_EXT_NAME_CONSTRAINTS (1 << 9)
156-
#define MBEDTLS_X509_EXT_POLICY_CONSTRAINTS (1 << 10)
157-
#define MBEDTLS_X509_EXT_EXTENDED_KEY_USAGE (1 << 11)
158-
#define MBEDTLS_X509_EXT_CRL_DISTRIBUTION_POINTS (1 << 12)
159-
#define MBEDTLS_X509_EXT_INIHIBIT_ANYPOLICY (1 << 13)
160-
#define MBEDTLS_X509_EXT_FRESHEST_CRL (1 << 14)
161-
162-
#define MBEDTLS_X509_EXT_NS_CERT_TYPE (1 << 16)
149+
#define MBEDTLS_X509_EXT_AUTHORITY_KEY_IDENTIFIER MBEDTLS_OID_X509_EXT_AUTHORITY_KEY_IDENTIFIER
150+
#define MBEDTLS_X509_EXT_SUBJECT_KEY_IDENTIFIER MBEDTLS_OID_X509_EXT_SUBJECT_KEY_IDENTIFIER
151+
#define MBEDTLS_X509_EXT_KEY_USAGE MBEDTLS_OID_X509_EXT_KEY_USAGE
152+
#define MBEDTLS_X509_EXT_CERTIFICATE_POLICIES MBEDTLS_OID_X509_EXT_CERTIFICATE_POLICIES
153+
#define MBEDTLS_X509_EXT_POLICY_MAPPINGS MBEDTLS_OID_X509_EXT_POLICY_MAPPINGS
154+
#define MBEDTLS_X509_EXT_SUBJECT_ALT_NAME MBEDTLS_OID_X509_EXT_SUBJECT_ALT_NAME /* Supported (DNS) */
155+
#define MBEDTLS_X509_EXT_ISSUER_ALT_NAME MBEDTLS_OID_X509_EXT_ISSUER_ALT_NAME
156+
#define MBEDTLS_X509_EXT_SUBJECT_DIRECTORY_ATTRS MBEDTLS_OID_X509_EXT_SUBJECT_DIRECTORY_ATTRS
157+
#define MBEDTLS_X509_EXT_BASIC_CONSTRAINTS MBEDTLS_OID_X509_EXT_BASIC_CONSTRAINTS /* Supported */
158+
#define MBEDTLS_X509_EXT_NAME_CONSTRAINTS MBEDTLS_OID_X509_EXT_NAME_CONSTRAINTS
159+
#define MBEDTLS_X509_EXT_POLICY_CONSTRAINTS MBEDTLS_OID_X509_EXT_POLICY_CONSTRAINTS
160+
#define MBEDTLS_X509_EXT_EXTENDED_KEY_USAGE MBEDTLS_OID_X509_EXT_EXTENDED_KEY_USAGE
161+
#define MBEDTLS_X509_EXT_CRL_DISTRIBUTION_POINTS MBEDTLS_OID_X509_EXT_CRL_DISTRIBUTION_POINTS
162+
#define MBEDTLS_X509_EXT_INIHIBIT_ANYPOLICY MBEDTLS_OID_X509_EXT_INIHIBIT_ANYPOLICY
163+
#define MBEDTLS_X509_EXT_FRESHEST_CRL MBEDTLS_OID_X509_EXT_FRESHEST_CRL
164+
#define MBEDTLS_X509_EXT_NS_CERT_TYPE MBEDTLS_OID_X509_EXT_NS_CERT_TYPE
163165

164166
/*
165167
* Storage format identifiers

library/oid.c

Lines changed: 5 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -41,10 +41,6 @@
4141
#define mbedtls_snprintf snprintf
4242
#endif
4343

44-
#if defined(MBEDTLS_X509_USE_C) || defined(MBEDTLS_X509_CREATE_C)
45-
#include "mbedtls/x509.h"
46-
#endif
47-
4844
/*
4945
* Macro to automatically add the size of #define'd OIDs
5046
*/
@@ -152,7 +148,6 @@ int FN_NAME( ATTR1_TYPE ATTR1, ATTR2_TYPE ATTR2, const char **oid , \
152148
return( MBEDTLS_ERR_OID_NOT_FOUND ); \
153149
}
154150

155-
#if defined(MBEDTLS_X509_USE_C) || defined(MBEDTLS_X509_CREATE_C)
156151
/*
157152
* For X520 attribute types
158153
*/
@@ -260,23 +255,23 @@ static const oid_x509_ext_t oid_x509_ext[] =
260255
{
261256
{
262257
{ ADD_LEN( MBEDTLS_OID_BASIC_CONSTRAINTS ), "id-ce-basicConstraints", "Basic Constraints" },
263-
MBEDTLS_X509_EXT_BASIC_CONSTRAINTS,
258+
MBEDTLS_OID_X509_EXT_BASIC_CONSTRAINTS,
264259
},
265260
{
266261
{ ADD_LEN( MBEDTLS_OID_KEY_USAGE ), "id-ce-keyUsage", "Key Usage" },
267-
MBEDTLS_X509_EXT_KEY_USAGE,
262+
MBEDTLS_OID_X509_EXT_KEY_USAGE,
268263
},
269264
{
270265
{ ADD_LEN( MBEDTLS_OID_EXTENDED_KEY_USAGE ), "id-ce-extKeyUsage", "Extended Key Usage" },
271-
MBEDTLS_X509_EXT_EXTENDED_KEY_USAGE,
266+
MBEDTLS_OID_X509_EXT_EXTENDED_KEY_USAGE,
272267
},
273268
{
274269
{ ADD_LEN( MBEDTLS_OID_SUBJECT_ALT_NAME ), "id-ce-subjectAltName", "Subject Alt Name" },
275-
MBEDTLS_X509_EXT_SUBJECT_ALT_NAME,
270+
MBEDTLS_OID_X509_EXT_SUBJECT_ALT_NAME,
276271
},
277272
{
278273
{ ADD_LEN( MBEDTLS_OID_NS_CERT_TYPE ), "id-netscape-certtype", "Netscape Certificate Type" },
279-
MBEDTLS_X509_EXT_NS_CERT_TYPE,
274+
MBEDTLS_OID_X509_EXT_NS_CERT_TYPE,
280275
},
281276
{
282277
{ NULL, 0, NULL, NULL },
@@ -300,7 +295,6 @@ static const mbedtls_oid_descriptor_t oid_ext_key_usage[] =
300295

301296
FN_OID_TYPED_FROM_ASN1(mbedtls_oid_descriptor_t, ext_key_usage, oid_ext_key_usage)
302297
FN_OID_GET_ATTR1(mbedtls_oid_get_extended_key_usage, mbedtls_oid_descriptor_t, ext_key_usage, const char *, description)
303-
#endif /* MBEDTLS_X509_USE_C || MBEDTLS_X509_CREATE_C */
304298

305299
#if defined(MBEDTLS_MD_C)
306300
/*

0 commit comments

Comments
 (0)