From f60cb08c29b1c658f4856072a91c1d086459e691 Mon Sep 17 00:00:00 2001 From: Jacob Barthelmeh Date: Mon, 12 Dec 2016 10:39:15 -0700 Subject: [PATCH] macro and tests for get_passwd_cb functions --- src/ssl.c | 6 +++--- tests/api.c | 3 +++ wolfssl/openssl/ssl.h | 4 ++-- wolfssl/ssl.h | 2 +- 4 files changed, 9 insertions(+), 6 deletions(-) diff --git a/src/ssl.c b/src/ssl.c index bbd642545..5d81e51cb 100644 --- a/src/ssl.c +++ b/src/ssl.c @@ -12102,14 +12102,14 @@ int wolfSSL_EVP_MD_type(const WOLFSSL_EVP_MD *md) return 0; } - WOLFSSL_API pem_password_cb wolfSSL_CTX_get_default_passwd_cb( + WOLFSSL_API pem_password_cb* wolfSSL_CTX_get_default_passwd_cb( WOLFSSL_CTX *ctx) { - if (ctx == NULL) { + if (ctx == NULL || ctx->passwd_cb == NULL) { return NULL; } - return ctx->passwd_cb; + return &(ctx->passwd_cb); } diff --git a/tests/api.c b/tests/api.c index 3cd7e0005..45c79c7c6 100644 --- a/tests/api.c +++ b/tests/api.c @@ -2623,6 +2623,9 @@ static void test_wolfSSL_CTX_add_extra_chain_cert(void) AssertNotNull(x509); AssertIntEQ((int)SSL_CTX_add_extra_chain_cert(ctx, x509), SSL_SUCCESS); + AssertNull(SSL_CTX_get_default_passwd_cb(ctx)); + AssertNull(SSL_CTX_get_default_passwd_cb_userdata(ctx)); + SSL_CTX_free(ctx); printf(resultFmt, passed); #endif /* defined(OPENSSL_EXTRA) && !defined(NO_CERTS) && \ diff --git a/wolfssl/openssl/ssl.h b/wolfssl/openssl/ssl.h index 423868ff0..d0b114c10 100644 --- a/wolfssl/openssl/ssl.h +++ b/wolfssl/openssl/ssl.h @@ -652,8 +652,6 @@ typedef WOLFSSL_ASN1_BIT_STRING ASN1_BIT_STRING; #define SSL_CTX_get_verify_callback wolfSSL_CTX_get_verify_callback #define SSL_CTX_set_tlsext_servername_callback wolfSSL_CTX_set_servername_callback #define SSL_CTX_set_tlsext_servername_arg wolfSSL_CTX_set_servername_arg -#define SSL_CTX_get_default_passwd_cb wolfSSL_SSL_CTX_get_default_passwd_cb -#define SSL_CTX_get_default_passwd_cb_userdata wolfSSL_SSL_CTX_get_default_passwd_cb_userdata #define PSK_MAX_PSK_LEN 256 #define PSK_MAX_IDENTITY_LEN 128 @@ -662,6 +660,8 @@ typedef WOLFSSL_ASN1_BIT_STRING ASN1_BIT_STRING; #endif /* HAVE_STUNNEL */ +#define SSL_CTX_get_default_passwd_cb wolfSSL_CTX_get_default_passwd_cb +#define SSL_CTX_get_default_passwd_cb_userdata wolfSSL_CTX_get_default_passwd_cb_userdata /* certificate extension NIDs */ #define NID_basic_constraints 133 diff --git a/wolfssl/ssl.h b/wolfssl/ssl.h index c3ea3bd5c..5db4f8270 100644 --- a/wolfssl/ssl.h +++ b/wolfssl/ssl.h @@ -1963,7 +1963,7 @@ WOLFSSL_API size_t wolfSSL_get_server_random(const WOLFSSL *ssl, unsigned char *out, size_t outlen); WOLFSSL_API size_t wolfSSL_get_client_random(const WOLFSSL* ssl, unsigned char* out, size_t outSz); -WOLFSSL_API pem_password_cb wolfSSL_CTX_get_default_passwd_cb(WOLFSSL_CTX *ctx); +WOLFSSL_API pem_password_cb* wolfSSL_CTX_get_default_passwd_cb(WOLFSSL_CTX *ctx); WOLFSSL_API void *wolfSSL_CTX_get_default_passwd_cb_userdata(WOLFSSL_CTX *ctx); WOLFSSL_API int wolfSSL_CTX_use_PrivateKey(WOLFSSL_CTX *ctx, WOLFSSL_EVP_PKEY *pkey); WOLFSSL_API WOLFSSL_X509 *wolfSSL_PEM_read_bio_X509(WOLFSSL_BIO *bp, WOLFSSL_X509 **x, pem_password_cb *cb, void *u);