diff --git a/src/ssl.c b/src/ssl.c index 20c907af1..d79433309 100644 --- a/src/ssl.c +++ b/src/ssl.c @@ -15886,6 +15886,20 @@ void wolfSSL_X509_free(WOLFSSL_X509* x509) WOLFSSL_ENTER("wolfSSL_X509_free"); ExternalFreeX509(x509); } + + +WOLFSSL_X509* wolfSSL_X509_new() +{ + WOLFSSL_X509* x509; + + x509 = (WOLFSSL_X509*)XMALLOC(sizeof(WOLFSSL_X509), NULL, + DYNAMIC_TYPE_X509); + if (x509 != NULL) { + InitX509(x509, 1, NULL); + } + + return x509; +} #endif /* NO_CERTS */ diff --git a/wolfssl/openssl/ssl.h b/wolfssl/openssl/ssl.h index e233deed6..a810371ba 100644 --- a/wolfssl/openssl/ssl.h +++ b/wolfssl/openssl/ssl.h @@ -228,6 +228,7 @@ typedef WOLFSSL_X509_STORE_CTX X509_STORE_CTX; #define X509_get_ext_d2i wolfSSL_X509_get_ext_d2i #define X509_digest wolfSSL_X509_digest #define X509_free wolfSSL_X509_free +#define X509_new wolfSSL_X509_new #define OPENSSL_free wolfSSL_OPENSSL_free #define OPENSSL_malloc wolfSSL_OPENSSL_malloc diff --git a/wolfssl/ssl.h b/wolfssl/ssl.h index 22cdabe64..cf0f67580 100644 --- a/wolfssl/ssl.h +++ b/wolfssl/ssl.h @@ -645,6 +645,7 @@ WOLFSSL_API const char* wolfSSL_get_cipher(WOLFSSL*); WOLFSSL_API WOLFSSL_SESSION* wolfSSL_get1_session(WOLFSSL* ssl); /* what's ref count */ +WOLFSSL_API WOLFSSL_X509* wolfSSL_X509_new(void); WOLFSSL_API void wolfSSL_X509_free(WOLFSSL_X509*); #ifdef OPENSSL_EXTRA