diff --git a/src/ssl.c b/src/ssl.c index 090bb062a..4fb02383e 100644 --- a/src/ssl.c +++ b/src/ssl.c @@ -5685,6 +5685,30 @@ int wolfSSL_CTX_SetTmpDH_file(WOLFSSL_CTX* ctx, const char* fname, int format) /* put SSL type in extra for now, not very common */ #ifndef NO_CERTS +void* wolfSSL_X509_get_ext_d2i(const WOLFSSL_X509* x509, + int nid, int* c, int* idx) +{ + WOLFSSL_STUB("wolfSSL_X509_get_ext_d2i"); + (void)x509; + (void)nid; + (void)c; + (void)idx; + return NULL; +} + + +int wolfSSL_X509_digest(const WOLFSSL_X509* x509, const WOLFSSL_EVP_MD* digest, + unsigned char* buf, unsigned int* len) +{ + WOLFSSL_STUB("wolfSSL_X509_digest"); + (void)x509; + (void)digest; + (void)buf; + (void)len; + return SSL_FAILURE; +} + + int wolfSSL_use_PrivateKey(WOLFSSL* ssl, WOLFSSL_EVP_PKEY* pkey) { WOLFSSL_STUB("wolfSSL_use_PrivateKey"); @@ -7051,6 +7075,12 @@ int wolfSSL_DTLS_SetCookieSecret(WOLFSSL* ssl, #endif /* WOLFSSL_DTLS && !NO_WOLFSSL_SERVER */ +#ifdef OPENSSL_EXTRA + WOLFSSL_METHOD* wolfSSLv23_method(void) { + WOLFSSL_STUB("SSLv23_method"); + return NULL; + } +#endif /* OPENSSL_EXTRA */ /* client only parts */ #ifndef NO_WOLFSSL_CLIENT @@ -19387,7 +19417,7 @@ void WOLFSSL_ERR_remove_thread_state(void* pid) } /***TBD ***/ -void wolfSSL_ERR_print_errors_fp(XFILE *fp) +void wolfSSL_print_all_errors_fp(XFILE *fp) { (void)fp; } diff --git a/tests/api.c b/tests/api.c index bac81c532..469d67329 100644 --- a/tests/api.c +++ b/tests/api.c @@ -2278,11 +2278,13 @@ static void test_wolfSSL_certs(void) SSL_use_PrivateKey SSL_use_PrivateKey_ASN1 SSL_use_RSAPrivateKey_ASN1 + SSL_X509_digest + SSL_X509_get_ext_d2i */ SSL_free(ssl); SSL_CTX_free(ctx); - wolfSSL_FreeX509(x509); + X509_free(x509); printf(resultFmt, passed); #endif /* defined(OPENSSL_EXTRA) && !defined(NO_CERTS) */ diff --git a/wolfssl/openssl/evp.h b/wolfssl/openssl/evp.h index 4c992aa2d..97aa99709 100644 --- a/wolfssl/openssl/evp.h +++ b/wolfssl/openssl/evp.h @@ -53,7 +53,6 @@ extern "C" { #endif -typedef char WOLFSSL_EVP_MD; typedef char WOLFSSL_EVP_CIPHER; #ifndef NO_MD5 diff --git a/wolfssl/openssl/ssl.h b/wolfssl/openssl/ssl.h index 47dbc85e8..7a8c93c8a 100644 --- a/wolfssl/openssl/ssl.h +++ b/wolfssl/openssl/ssl.h @@ -101,7 +101,7 @@ typedef WOLFSSL_X509_STORE_CTX X509_STORE_CTX; strncpy(buf, "Not Implemented, SSLv2 only", len) /* @TODO */ -#define ERR_print_errors_fp(file) +#define ERR_print_errors_fp(file) wolfSSL_print_all_errors_fp((file)) /* at the moment only returns ok */ #define SSL_get_verify_result(ctx) X509_V_OK @@ -117,6 +117,7 @@ typedef WOLFSSL_X509_STORE_CTX X509_STORE_CTX; #define SSL_use_PrivateKey_ASN1 wolfSSL_use_PrivateKey_ASN1 #define SSL_use_RSAPrivateKey_ASN1 wolfSSL_use_RSAPrivateKey_ASN1 +#define SSLv23_method wolfSSLv23_method #define SSLv3_server_method wolfSSLv3_server_method #define SSLv3_client_method wolfSSLv3_client_method #define TLSv1_server_method wolfTLSv1_server_method @@ -211,6 +212,9 @@ typedef WOLFSSL_X509_STORE_CTX X509_STORE_CTX; #define SSL_SESSION_get_master_key wolfSSL_SESSION_get_master_key #define SSL_SESSION_get_master_key_length wolfSSL_SESSION_get_master_key_length +#define SSL_X509_NAME_get_text_by_NID wolfSSL_X509_NAME_get_text_by_NID +#define SSL_X509_get_ext_d2i wolfSSL_X509_get_ext_d2i +#define SSL_X509_digest wolfSSL_X509_digest #define X509_free wolfSSL_X509_free #define OPENSSL_free wolfSSL_OPENSSL_free diff --git a/wolfssl/ssl.h b/wolfssl/ssl.h index dd25e3dd7..1481ca3c1 100644 --- a/wolfssl/ssl.h +++ b/wolfssl/ssl.h @@ -118,6 +118,7 @@ typedef struct WOLFSSL_ASN1_BIT_STRING WOLFSSL_ASN1_BIT_STRING; #define WOLFSSL_ASN1_UTCTIME WOLFSSL_ASN1_TIME +typedef char WOLFSSL_EVP_MD; typedef struct WOLFSSL_EVP_PKEY { int type; /* openssh dereference */ int save_type; /* openssh dereference */ @@ -242,6 +243,7 @@ WOLFSSL_API WOLFSSL_METHOD *wolfSSLv23_client_method_ex(void* heap); WOLFSSL_API WOLFSSL_METHOD *wolfDTLSv1_2_client_method_ex(void* heap); WOLFSSL_API WOLFSSL_METHOD *wolfDTLSv1_2_server_method_ex(void* heap); #endif +WOLFSSL_API WOLFSSL_METHOD *wolfSSLv23_method(void); WOLFSSL_API WOLFSSL_METHOD *wolfSSLv3_server_method(void); WOLFSSL_API WOLFSSL_METHOD *wolfSSLv3_client_method(void); WOLFSSL_API WOLFSSL_METHOD *wolfTLSv1_server_method(void); @@ -1894,6 +1896,10 @@ WOLFSSL_API char* wolfSSL_ASN1_TIME_to_string(WOLFSSL_ASN1_TIME* time, #ifdef OPENSSL_EXTRA #ifndef NO_CERTS +WOLFSSL_API void* wolfSSL_X509_get_ext_d2i(const WOLFSSL_X509* x509, + int nid, int* c, int* idx); +WOLFSSL_API int wolfSSL_X509_digest(const WOLFSSL_X509* x509, + const WOLFSSL_EVP_MD* digest, unsigned char* buf, unsigned int* len); WOLFSSL_API int wolfSSL_use_certificate(WOLFSSL* ssl, WOLFSSL_X509* x509); WOLFSSL_API int wolfSSL_use_certificate_ASN1(WOLFSSL* ssl, unsigned char* der, int derSz); @@ -2063,7 +2069,7 @@ WOLFSSL_API void WOLFSSL_ERR_remove_thread_state(void*); WOLFSSL_API unsigned long wolfSSL_ERR_peek_last_error_line(const char **file, int *line); #ifndef NO_FILESYSTEM -WOLFSSL_API void wolfSSL_ERR_print_errors_fp(XFILE *fp); +WOLFSSL_API void wolfSSL_print_all_errors_fp(XFILE *fp); #endif WOLFSSL_API long wolfSSL_CTX_clear_options(WOLFSSL_CTX*, long);