diff --git a/src/x509.c b/src/x509.c index 53a5e2f2f..a7b512bd7 100644 --- a/src/x509.c +++ b/src/x509.c @@ -4903,6 +4903,17 @@ void wolfSSL_GENERAL_NAMES_free(WOLFSSL_GENERAL_NAMES *gens) wolfSSL_sk_GENERAL_NAME_free(gens); } +void wolfSSL_EXTENDED_KEY_USAGE_free(WOLFSSL_STACK * sk) +{ + WOLFSSL_ENTER("wolfSSL_EXTENDED_KEY_USAGE_free"); + + if (sk == NULL) { + return; + } + + wolfSSL_sk_X509_pop_free(sk, NULL); +} + #if defined(OPENSSL_ALL) && !defined(NO_BIO) /* Outputs name string of the given WOLFSSL_GENERAL_NAME_OBJECT to WOLFSSL_BIO. * Can handle following GENERAL_NAME_OBJECT types: diff --git a/tests/api.c b/tests/api.c index 43774eb6a..b877056e6 100644 --- a/tests/api.c +++ b/tests/api.c @@ -32763,7 +32763,7 @@ static int test_wolfSSL_certs(void) ExpectNotNull(ext = X509V3_EXT_i2d(NID_ext_key_usage, crit, sk)); X509_EXTENSION_free(ext); ext = NULL; - sk_ASN1_OBJECT_pop_free(sk, NULL); + EXTENDED_KEY_USAGE_free(sk); sk = NULL; #else sk = (STACK_OF(ASN1_OBJECT)*)X509_get_ext_d2i(x509ext, NID_ext_key_usage, diff --git a/wolfssl/openssl/ssl.h b/wolfssl/openssl/ssl.h index b42c73643..05004a824 100644 --- a/wolfssl/openssl/ssl.h +++ b/wolfssl/openssl/ssl.h @@ -1396,6 +1396,7 @@ typedef WOLFSSL_SRTP_PROTECTION_PROFILE SRTP_PROTECTION_PROFILE; #define sk_ASN1_OBJECT_pop_free wolfSSL_sk_ASN1_OBJECT_pop_free #define GENERAL_NAME_free wolfSSL_GENERAL_NAME_free #define GENERAL_NAMES_free wolfSSL_GENERAL_NAMES_free +#define EXTENDED_KEY_USAGE_free wolfSSL_EXTENDED_KEY_USAGE_free #define AUTHORITY_INFO_ACCESS_free wolfSSL_AUTHORITY_INFO_ACCESS_free #define AUTHORITY_INFO_ACCESS_pop_free wolfSSL_AUTHORITY_INFO_ACCESS_pop_free diff --git a/wolfssl/ssl.h b/wolfssl/ssl.h index a05cf262c..d55c8a31d 100644 --- a/wolfssl/ssl.h +++ b/wolfssl/ssl.h @@ -1585,6 +1585,7 @@ WOLFSSL_API void wolfSSL_sk_GENERAL_NAME_free(WOLFSSL_STACK* sk); WOLFSSL_API void wolfSSL_GENERAL_NAMES_free(WOLFSSL_GENERAL_NAMES* name); WOLFSSL_API int wolfSSL_GENERAL_NAME_print(WOLFSSL_BIO* out, WOLFSSL_GENERAL_NAME* name); +WOLFSSL_API void wolfSSL_EXTENDED_KEY_USAGE_free(WOLFSSL_STACK * sk); WOLFSSL_API WOLFSSL_DIST_POINT* wolfSSL_DIST_POINT_new(void); WOLFSSL_API void wolfSSL_DIST_POINT_free(WOLFSSL_DIST_POINT* dp);