From 03cfc3dc8fbedad7c69c780553e7ce1acd004955 Mon Sep 17 00:00:00 2001 From: Hideki Miyazaki Date: Wed, 14 Apr 2021 11:15:23 +0900 Subject: [PATCH] addressed review comments part1 --- src/ssl.c | 44 +++++++++++++++++++++++++------------- tests/api.c | 2 +- wolfcrypt/src/evp.c | 6 +++--- wolfcrypt/test/test.c | 10 ++------- wolfssl/openssl/evp.h | 2 +- wolfssl/openssl/opensslv.h | 4 +++- wolfssl/openssl/ssl.h | 11 +--------- wolfssl/ssl.h | 11 ++++------ 8 files changed, 44 insertions(+), 46 deletions(-) diff --git a/src/ssl.c b/src/ssl.c index c5472e5a7..056bc03ef 100644 --- a/src/ssl.c +++ b/src/ssl.c @@ -16179,7 +16179,7 @@ int wolfSSL_set_compression(WOLFSSL* ssl) return WOLFSSL_SUCCESS; } -#if defined(WOLFSSL_QT) +#if defined(OPENSSL_VERSION_NUMBER) && OPENSSL_VERSION_NUMBER >= 0x10100000L WOLFSSL_BIO* wolfSSL_BIO_new(const WOLFSSL_BIO_METHOD* method) #else WOLFSSL_BIO* wolfSSL_BIO_new(WOLFSSL_BIO_METHOD* method) @@ -16198,7 +16198,11 @@ int wolfSSL_set_compression(WOLFSSL* ssl) if (bio) { XMEMSET(bio, 0, sizeof(WOLFSSL_BIO)); bio->type = (byte)method->type; +#if defined(OPENSSL_VERSION_NUMBER) && OPENSSL_VERSION_NUMBER >= 0x10100000L bio->method = (WOLFSSL_BIO_METHOD*)method; +#else + bio->method = method; +#endif bio->shutdown = BIO_CLOSE; /* default to close things */ bio->num = -1; /* Default to invalid socket */ bio->init = 1; @@ -22032,7 +22036,7 @@ const char* wolfSSL_lib_version(void) } #ifdef OPENSSL_EXTRA -#ifdef WOLFSSL_QT +#if defined(OPENSSL_VERSION_NUMBER) && OPENSSL_VERSION_NUMBER >= 0x10100000L const char* wolfSSL_OpenSSL_version(int a) { (void)a; @@ -23350,7 +23354,6 @@ int wolfSSL_X509_cmp(const WOLFSSL_X509 *a, const WOLFSSL_X509 *b) #ifndef NO_CERTS #if defined(OPENSSL_EXTRA) || defined(OPENSSL_EXTRA_X509_SMALL) -#if defined(WOLFSSL_QT) const unsigned char* wolfSSL_ASN1_STRING_get0_data( const WOLFSSL_ASN1_STRING* asn) { @@ -23362,7 +23365,7 @@ int wolfSSL_X509_cmp(const WOLFSSL_X509 *a, const WOLFSSL_X509 *b) return NULL; } } -#endif + unsigned char* wolfSSL_ASN1_STRING_data(WOLFSSL_ASN1_STRING* asn) { WOLFSSL_ENTER("wolfSSL_ASN1_STRING_data"); @@ -36336,7 +36339,7 @@ const char* wolfSSL_EC_curve_nid2nist(int nid) /** * return nist curve id * @param name nist curve name - * @return nist curve id when find, 0 when not find + * @return nist curve id when found, 0 when not found */ int wolfSSL_EC_curve_nist2nid(const char* name) { @@ -48897,7 +48900,7 @@ int wolfSSL_SSL_do_handshake(WOLFSSL *s) #endif } -#if defined(WOLFSSL_QT) +#if defined(OPENSSL_VERSION_NUMBER) && OPENSSL_VERSION_NUMBER >= 0x10100000L int wolfSSL_SSL_in_init(const WOLFSSL *ssl) #else int wolfSSL_SSL_in_init(WOLFSSL *ssl) @@ -55329,7 +55332,7 @@ int wolfSSL_CTX_set_ecdh_auto(WOLFSSL_CTX* ctx, int onoff) } /** - * set security level(wolfSSL doesn't suppor security level) + * set security level (wolfSSL doesn't support security level) * @param ctx a pointer to WOLFSSL_EVP_PKEY_CTX structure * @param level security level */ @@ -55340,7 +55343,7 @@ void wolfSSL_CTX_set_security_level(WOLFSSL_CTX* ctx, int level) (void)level; } /** - * get security level(wolfSSL doesn't suppor security level) + * get security level (wolfSSL doesn't support security level) * @param ctx a pointer to WOLFSSL_EVP_PKEY_CTX structure * @return always 0(level 0) */ @@ -55366,21 +55369,22 @@ int wolfSSL_EVP_PKEY_param_check(WOLFSSL_EVP_PKEY_CTX* ctx) } /** - * get call back function for psk session use + * set call back function for psk session use * @param ssl a pointer to WOLFSSL structure * @return none */ void wolfSSL_set_psk_use_session_callback(WOLFSSL* ssl, - wolfSSL_psk_use_session_cb_func cb) + wolfSSL_psk_use_session_cb_func cb) { WOLFSSL_STUB("wolfSSL_set_psk_use_session_callback"); (void)ssl; (void)cb; } /** - * Determine whether an WOLFSSL_SESSION object can be used for resumption + * Determine whether a WOLFSSL_SESSION object can be used for resumption * @param s a pointer to WOLFSSL_SESSION structure - * @return always 0 cannot + * @return return 1 if session is resumable, + * otherwise 0 (currently always 0 with stub) */ int wolfSSL_SESSION_is_resumable(const WOLFSSL_SESSION *s) { @@ -55391,21 +55395,31 @@ int wolfSSL_SESSION_is_resumable(const WOLFSSL_SESSION *s) #endif /* NO_WOLFSSL_STUB */ -#ifdef WOLFSSL_QT +/** + * free allocated memory resouce + * @param str a pointer to resource to be freed + * @param file dummy argument + * @param line dummy argument + */ void wolfSSL_CRYPTO_free(void *str, const char *file, int line) { (void)file; (void)line; XFREE(str, 0, DYNAMIC_TYPE_TMP_BUFFER); } - +/** + * allocate memory with size of num + * @param num size of memory allocation to be malloced + * @param file dummy argument + * @param line dummy argument + * @return a pointer to allocated memory on succssesful, otherwise NULL + */ void *wolfSSL_CRYPTO_malloc(size_t num, const char *file, int line) { (void)file; (void)line; return XMALLOC(num, 0, DYNAMIC_TYPE_TMP_BUFFER); } -#endif /* WOLFSSL_QT */ #endif /* OPENSSL_EXTRA */ #endif /* !WOLFCRYPT_ONLY */ diff --git a/tests/api.c b/tests/api.c index ec6c57bef..37bc6896a 100644 --- a/tests/api.c +++ b/tests/api.c @@ -42352,7 +42352,7 @@ static void test_wolfSSL_OpenSSL_version() printf(testingFmt, "test_wolfSSL_OpenSSL_version()"); const char* ver; - #if defined(WOLFSSL_QT) + #if defined(OPENSSL_VERSION_NUMBER) && OPENSSL_VERSION_NUMBER >= 0x10100000L AssertNotNull(ver = OpenSSL_version(0)); #else AssertNotNull(ver = OpenSSL_version()); diff --git a/wolfcrypt/src/evp.c b/wolfcrypt/src/evp.c index 890a6baa9..3f849f1b1 100644 --- a/wolfcrypt/src/evp.c +++ b/wolfcrypt/src/evp.c @@ -1366,14 +1366,14 @@ int wolfSSL_EVP_add_digest(const WOLFSSL_EVP_MD *digest) * * return WOLFSSL_SUCCESS on success */ -#ifdef WOLFSSL_QT +#if defined(OPENSSL_VERSION_NUMBER) && OPENSSL_VERSION_NUMBER >= 0x10100000L void wolfSSL_EVP_PKEY_CTX_free(WOLFSSL_EVP_PKEY_CTX *ctx) #else int wolfSSL_EVP_PKEY_CTX_free(WOLFSSL_EVP_PKEY_CTX *ctx) #endif { if (ctx == NULL) -#ifdef WOLFSSL_QT +#if defined(OPENSSL_VERSION_NUMBER) && OPENSSL_VERSION_NUMBER >= 0x10100000L return; #else return 0; @@ -1384,7 +1384,7 @@ int wolfSSL_EVP_PKEY_CTX_free(WOLFSSL_EVP_PKEY_CTX *ctx) if (ctx->peerKey != NULL) wolfSSL_EVP_PKEY_free(ctx->peerKey); XFREE(ctx, NULL, DYNAMIC_TYPE_PUBLIC_KEY); -#ifndef WOLFSSL_QT +#if !defined(OPENSSL_VERSION_NUMBER) || OPENSSL_VERSION_NUMBER < 0x10100000L return WOLFSSL_SUCCESS; #endif } diff --git a/wolfcrypt/test/test.c b/wolfcrypt/test/test.c index 5ad7a29ed..e5381cce1 100644 --- a/wolfcrypt/test/test.c +++ b/wolfcrypt/test/test.c @@ -18013,20 +18013,14 @@ WOLFSSL_TEST_SUBROUTINE int openssl_test(void) /* test malloc / free , 10 is an arbitrary amount of memory chosen */ { byte* p; -#ifdef WOLFSSL_QT + p = (byte*)CRYPTO_malloc(10, "", 0); -#else - p = (byte*)CRYPTO_malloc(10); -#endif + if (p == NULL) { return -8600; } XMEMSET(p, 0, 10); -#ifdef WOLFSSL_QT CRYPTO_free(p, "", 0); -#else - CRYPTO_free(p); -#endif } #ifndef NO_MD5 diff --git a/wolfssl/openssl/evp.h b/wolfssl/openssl/evp.h index cee512d2c..367eb7f5f 100644 --- a/wolfssl/openssl/evp.h +++ b/wolfssl/openssl/evp.h @@ -547,7 +547,7 @@ WOLFSSL_API int wolfSSL_EVP_PKEY_keygen_init(WOLFSSL_EVP_PKEY_CTX *ctx); WOLFSSL_API int wolfSSL_EVP_PKEY_keygen(WOLFSSL_EVP_PKEY_CTX *ctx, WOLFSSL_EVP_PKEY **ppkey); WOLFSSL_API int wolfSSL_EVP_PKEY_bits(const WOLFSSL_EVP_PKEY *pkey); -#ifdef WOLFSSL_QT +#if defined(OPENSSL_VERSION_NUMBER) && OPENSSL_VERSION_NUMBER >= 0x10100000L WOLFSSL_API void wolfSSL_EVP_PKEY_CTX_free(WOLFSSL_EVP_PKEY_CTX *ctx); #else WOLFSSL_API int wolfSSL_EVP_PKEY_CTX_free(WOLFSSL_EVP_PKEY_CTX *ctx); diff --git a/wolfssl/openssl/opensslv.h b/wolfssl/openssl/opensslv.h index 0605a3e8b..017f41778 100644 --- a/wolfssl/openssl/opensslv.h +++ b/wolfssl/openssl/opensslv.h @@ -33,9 +33,11 @@ #elif defined(WOLFSSL_APACHE_HTTPD) || defined(HAVE_LIBEST) /* For Apache httpd, Use 1.1.0 compatibility */ #define OPENSSL_VERSION_NUMBER 0x10100000L +#elif defined(WOLFSSL_QT) + #define OPENSSL_VERSION_NUMBER 0x10100000L #elif defined(OPENSSL_ALL) || defined(HAVE_STUNNEL) || defined(HAVE_LIGHTY) || \ defined(WOLFSSL_NGINX) || defined(WOLFSSL_HAPROXY) || \ - defined(WOLFSSL_OPENSSH) || defined(WOLFSSL_QT) || defined(WOLFSSL_OPENVPN) + defined(WOLFSSL_OPENSSH) || defined(WOLFSSL_OPENVPN) /* version number can be increased for Lighty after compatibility for ECDH is added */ #define OPENSSL_VERSION_NUMBER 0x10001040L diff --git a/wolfssl/openssl/ssl.h b/wolfssl/openssl/ssl.h index 3c1421116..eedb0440d 100644 --- a/wolfssl/openssl/ssl.h +++ b/wolfssl/openssl/ssl.h @@ -137,13 +137,8 @@ typedef WOLFSSL_X509_VERIFY_PARAM X509_VERIFY_PARAM; #define CONF_get1_default_config_file wolfSSL_CONF_get1_default_config_file typedef STACK_OF(ACCESS_DESCRIPTION) AUTHORITY_INFO_ACCESS; -#ifdef WOLFSSL_QT #define CRYPTO_free wolfSSL_CRYPTO_free #define CRYPTO_malloc wolfSSL_CRYPTO_malloc -#else -#define CRYPTO_free(xp) XFREE(xp, NULL, DYNAMIC_TYPE_TMP_BUFFER) -#define CRYPTO_malloc(sz) XMALLOC(sz, NULL, DYNAMIC_TYPE_TMP_BUFFER) -#endif #define CRYPTO_EX_new WOLFSSL_CRYPTO_EX_new #define CRYPTO_EX_dup WOLFSSL_CRYPTO_EX_dup #define CRYPTO_EX_free WOLFSSL_CRYPTO_EX_free @@ -772,11 +767,7 @@ wolfSSL_X509_STORE_set_verify_cb((WOLFSSL_X509_STORE *)(s), (WOLFSSL_X509_STORE_ #define ASN1_STRING_free wolfSSL_ASN1_STRING_free #define ASN1_STRING_cmp wolfSSL_ASN1_STRING_cmp #define ASN1_STRING_data wolfSSL_ASN1_STRING_data -#if defined(WOLFSSL_QT) #define ASN1_STRING_get0_data wolfSSL_ASN1_STRING_get0_data -#else -#define ASN1_STRING_get0_data wolfSSL_ASN1_STRING_data -#endif #define ASN1_STRING_length wolfSSL_ASN1_STRING_length #define ASN1_STRING_to_UTF8 wolfSSL_ASN1_STRING_to_UTF8 #define ASN1_UNIVERSALSTRING_to_string wolfSSL_ASN1_UNIVERSALSTRING_to_string @@ -1391,7 +1382,7 @@ wolfSSL_X509_STORE_set_verify_cb((WOLFSSL_X509_STORE *)(s), (WOLFSSL_X509_STORE_ #define sk_X509_OBJECT_delete wolfSSL_sk_X509_OBJECT_delete #define X509_OBJECT_free wolfSSL_X509_OBJECT_free #define X509_OBJECT_get_type(x) 0 -#ifdef WOLFSSL_QT +#if defined(OPENSSL_VERSION_NUMBER) && OPENSSL_VERSION_NUMBER >= 0x10100000L #define OpenSSL_version(x) wolfSSL_OpenSSL_version(x) #else #define OpenSSL_version(x) wolfSSL_OpenSSL_version() diff --git a/wolfssl/ssl.h b/wolfssl/ssl.h index 755c264c4..0c602c7bd 100644 --- a/wolfssl/ssl.h +++ b/wolfssl/ssl.h @@ -1310,7 +1310,7 @@ WOLFSSL_API WOLFSSL_METHOD* wolfSSLv23_client_method(void); WOLFSSL_API WOLFSSL_METHOD* wolfSSLv2_client_method(void); WOLFSSL_API WOLFSSL_METHOD* wolfSSLv2_server_method(void); -#if defined(WOLFSSL_QT) +#if defined(OPENSSL_VERSION_NUMBER) && OPENSSL_VERSION_NUMBER >= 0x10100000L WOLFSSL_API WOLFSSL_BIO* wolfSSL_BIO_new(const WOLFSSL_BIO_METHOD*); #else WOLFSSL_API WOLFSSL_BIO* wolfSSL_BIO_new(WOLFSSL_BIO_METHOD*); @@ -1528,10 +1528,8 @@ WOLFSSL_API void wolfSSL_ASN1_STRING_free(WOLFSSL_ASN1_STRING* asn1); WOLFSSL_API int wolfSSL_ASN1_STRING_set(WOLFSSL_ASN1_STRING* asn1, const void* data, int dataSz); WOLFSSL_API unsigned char* wolfSSL_ASN1_STRING_data(WOLFSSL_ASN1_STRING*); -#ifdef WOLFSSL_QT WOLFSSL_API const unsigned char* wolfSSL_ASN1_STRING_get0_data( const WOLFSSL_ASN1_STRING*); -#endif WOLFSSL_API int wolfSSL_ASN1_STRING_length(WOLFSSL_ASN1_STRING*); WOLFSSL_API int wolfSSL_ASN1_STRING_copy(WOLFSSL_ASN1_STRING* dst, const WOLFSSL_ASN1_STRING* src); @@ -2280,7 +2278,7 @@ WOLFSSL_ABI WOLFSSL_API int wolfSSL_Cleanup(void); /* which library version do we have */ WOLFSSL_API const char* wolfSSL_lib_version(void); -#ifdef WOLFSSL_QT +#if defined(OPENSSL_VERSION_NUMBER) && OPENSSL_VERSION_NUMBER >= 0x10100000L WOLFSSL_API const char* wolfSSL_OpenSSL_version(int a); #else WOLFSSL_API const char* wolfSSL_OpenSSL_version(void); @@ -4075,7 +4073,7 @@ WOLFSSL_API int wolfSSL_SSL_CTX_remove_session(WOLFSSL_CTX *, WOLFSSL_API WOLFSSL_BIO *wolfSSL_SSL_get_rbio(const WOLFSSL *s); WOLFSSL_API WOLFSSL_BIO *wolfSSL_SSL_get_wbio(const WOLFSSL *s); WOLFSSL_API int wolfSSL_SSL_do_handshake(WOLFSSL *s); -#if defined(WOLFSSL_QT) +#if defined(OPENSSL_VERSION_NUMBER) && OPENSSL_VERSION_NUMBER >= 0x10100000L WOLFSSL_API int wolfSSL_SSL_in_init(const WOLFSSL*); #else WOLFSSL_API int wolfSSL_SSL_in_init(WOLFSSL*); @@ -4270,10 +4268,9 @@ WOLFSSL_API void wolfSSL_set_psk_use_session_callback(WOLFSSL* ssl, WOLFSSL_API int wolfSSL_SESSION_is_resumable(const WOLFSSL_SESSION *s); -#ifdef WOLFSSL_QT WOLFSSL_API void wolfSSL_CRYPTO_free(void *str, const char *file, int line); WOLFSSL_API void *wolfSSL_CRYPTO_malloc(size_t num, const char *file, int line); -#endif /* WOLFSSL_QT */ + #endif /* OPENSSL_EXTRA */ #ifdef __cplusplus } /* extern "C" */