diff --git a/.github/workflows/check-headers.yml b/.github/workflows/check-headers.yml index 35d35d4597..68d5685280 100644 --- a/.github/workflows/check-headers.yml +++ b/.github/workflows/check-headers.yml @@ -26,7 +26,7 @@ jobs: # Only run from the wolfssl org to avoid burning forks' CI minutes. if: github.repository_owner == 'wolfssl' runs-on: ubuntu-24.04 - timeout-minutes: 10 + timeout-minutes: 25 steps: - uses: actions/checkout@v5 @@ -44,3 +44,12 @@ jobs: - name: Run check-headers run: ./.github/scripts/check-headers.sh + + # WOLFSSL_VERBOSE_LOGGING gates a branch of logging.h that no other + # configuration compiles, so a typo there would reach users rather than + # CI. Build only - enabling the tier while running tests would restore + # the log volume it exists to avoid. + - name: Compile the verbose logging tier + run: | + ./configure --enable-all CPPFLAGS=-DWOLFSSL_VERBOSE_LOGGING + make -j$(nproc) diff --git a/src/bio.c b/src/bio.c index 9fe38c6623..4323c1c4f6 100644 --- a/src/bio.c +++ b/src/bio.c @@ -1329,9 +1329,7 @@ int wolfSSL_BIO_supports_pending(const WOLFSSL_BIO *bio) /* Return the number of pending bytes in read and write buffers */ size_t wolfSSL_BIO_ctrl_pending(WOLFSSL_BIO *bio) { -#ifdef WOLFSSL_DEBUG_OPENSSL - WOLFSSL_ENTER("wolfSSL_BIO_ctrl_pending"); -#endif + WOLFSSL_ENTER_VERBOSE("wolfSSL_BIO_ctrl_pending"); for (; bio != NULL; bio = bio->next) { if (bio->method != NULL && bio->method->ctrlCb != NULL) { @@ -2352,9 +2350,7 @@ int wolfSSL_BIO_get_mem_data(WOLFSSL_BIO* bio, void* p) { WOLFSSL_BIO* mem_bio; -#ifdef WOLFSSL_DEBUG_OPENSSL - WOLFSSL_ENTER("wolfSSL_BIO_get_mem_data"); -#endif + WOLFSSL_ENTER_VERBOSE("wolfSSL_BIO_get_mem_data"); if (bio == NULL) return WOLFSSL_FATAL_ERROR; diff --git a/src/internal.c b/src/internal.c index 9d16fad25e..a703e2c3be 100644 --- a/src/internal.c +++ b/src/internal.c @@ -29733,7 +29733,9 @@ int RetrySendAlert(WOLFSSL* ssl) int ret = 0; int type; int severity; - WOLFSSL_ENTER("RetrySendAlert"); + /* Called on every I/O and returns immediately when no alert is pending, so + * this fires constantly and says nothing. */ + WOLFSSL_ENTER_VERBOSE("RetrySendAlert"); if (ssl == NULL) { return BAD_FUNC_ARG; diff --git a/src/ssl.c b/src/ssl.c index 329d5e60c9..14bbed57ae 100644 --- a/src/ssl.c +++ b/src/ssl.c @@ -174,7 +174,8 @@ static struct SystemCryptoPolicy crypto_policy; * OPENSSL_COMPATIBLE_DEFAULTS: * Default behavior compatible with OpenSSL default: off * NO_WOLFSSL_STUB: Disable stubs for unimplemented funcs default: off - * WOLFSSL_DEBUG_OPENSSL: Debug logging for OpenSSL compat layer default: off + * WOLFSSL_DEBUG_OPENSSL: + * Alias for WOLFSSL_VERBOSE_LOGGING default: off * WOLFSSL_HAVE_ERROR_QUEUE: OpenSSL-compatible error queue default: off * WOLFSSL_ERROR_CODE_OPENSSL: Use OpenSSL-compatible error codes default: off * WOLFSSL_CIPHER_INTERNALNAME: diff --git a/src/ssl_asn1.c b/src/ssl_asn1.c index 0a434a73cb..29f35fb6be 100644 --- a/src/ssl_asn1.c +++ b/src/ssl_asn1.c @@ -2123,9 +2123,7 @@ void wolfSSL_ASN1_OBJECT_free(WOLFSSL_ASN1_OBJECT* obj) if (obj != NULL) { /* Check for dynamically allocated copy of encoded data. */ if ((obj->dynamic & WOLFSSL_ASN1_DYNAMIC_DATA) != 0) { - #ifdef WOLFSSL_DEBUG_OPENSSL - WOLFSSL_MSG("Freeing ASN1 data"); - #endif + WOLFSSL_MSG_VERBOSE("Freeing ASN1 data"); XFREE((void*)obj->obj, obj->heap, DYNAMIC_TYPE_ASN1); obj->obj = NULL; } @@ -2138,9 +2136,7 @@ void wolfSSL_ASN1_OBJECT_free(WOLFSSL_ASN1_OBJECT* obj) #endif /* Check whether object was dynamically allocated. */ if ((obj->dynamic & WOLFSSL_ASN1_DYNAMIC) != 0) { - #ifdef WOLFSSL_DEBUG_OPENSSL - WOLFSSL_MSG("Freeing ASN1 OBJECT"); - #endif + WOLFSSL_MSG_VERBOSE("Freeing ASN1 OBJECT"); XFREE(obj, NULL, DYNAMIC_TYPE_ASN1); } } @@ -2632,9 +2628,7 @@ WOLFSSL_ASN1_STRING* wolfSSL_ASN1_STRING_new(void) { WOLFSSL_ASN1_STRING* asn1; -#ifdef WOLFSSL_DEBUG_OPENSSL - WOLFSSL_ENTER("wolfSSL_ASN1_STRING_new"); -#endif + WOLFSSL_ENTER_VERBOSE("wolfSSL_ASN1_STRING_new"); asn1 = (WOLFSSL_ASN1_STRING*)XMALLOC(sizeof(WOLFSSL_ASN1_STRING), NULL, DYNAMIC_TYPE_OPENSSL); @@ -2655,9 +2649,7 @@ WOLFSSL_ASN1_STRING* wolfSSL_ASN1_STRING_type_new(int type) { WOLFSSL_ASN1_STRING* asn1; -#ifdef WOLFSSL_DEBUG_OPENSSL - WOLFSSL_ENTER("wolfSSL_ASN1_STRING_type_new"); -#endif + WOLFSSL_ENTER_VERBOSE("wolfSSL_ASN1_STRING_type_new"); asn1 = wolfSSL_ASN1_STRING_new(); if (asn1 != NULL) { @@ -2673,9 +2665,7 @@ WOLFSSL_ASN1_STRING* wolfSSL_ASN1_STRING_type_new(int type) */ void wolfSSL_ASN1_STRING_free(WOLFSSL_ASN1_STRING* asn1) { -#ifdef WOLFSSL_DEBUG_OPENSSL - WOLFSSL_ENTER("wolfSSL_ASN1_STRING_free"); -#endif + WOLFSSL_ENTER_VERBOSE("wolfSSL_ASN1_STRING_free"); /* Check we have an object to free. */ if (asn1 != NULL) { @@ -3158,9 +3148,7 @@ int wolfSSL_ASN1_STRING_type(const WOLFSSL_ASN1_STRING* asn1) { int type = 0; -#ifdef WOLFSSL_DEBUG_OPENSSL - WOLFSSL_ENTER("wolfSSL_ASN1_STRING_type"); -#endif + WOLFSSL_ENTER_VERBOSE("wolfSSL_ASN1_STRING_type"); if (asn1 != NULL) { type = asn1->type; @@ -3200,9 +3188,7 @@ unsigned char* wolfSSL_ASN1_STRING_data(WOLFSSL_ASN1_STRING* asn) { char* data = NULL; -#ifdef WOLFSSL_DEBUG_OPENSSL - WOLFSSL_ENTER("wolfSSL_ASN1_STRING_data"); -#endif + WOLFSSL_ENTER_VERBOSE("wolfSSL_ASN1_STRING_data"); if (asn != NULL) { data = asn->data; @@ -3221,9 +3207,7 @@ int wolfSSL_ASN1_STRING_length(const WOLFSSL_ASN1_STRING* asn) { int len = 0; -#ifdef WOLFSSL_DEBUG_OPENSSL - WOLFSSL_ENTER("wolfSSL_ASN1_STRING_length"); -#endif + WOLFSSL_ENTER_VERBOSE("wolfSSL_ASN1_STRING_length"); if (asn) { len = asn->length; @@ -3248,9 +3232,7 @@ int wolfSSL_ASN1_STRING_set(WOLFSSL_ASN1_STRING* asn1, const void* data, int sz) { int ret = 1; -#ifdef WOLFSSL_DEBUG_OPENSSL - WOLFSSL_ENTER("wolfSSL_ASN1_STRING_set"); -#endif + WOLFSSL_ENTER_VERBOSE("wolfSSL_ASN1_STRING_set"); /* Validate parameters. */ if ((asn1 == NULL) || ((data == NULL) && (sz != 0))) { @@ -5722,9 +5704,7 @@ int wc_OBJ_sn2nid(const char *sn) const char* sName = NULL; int i; -#ifdef WOLFSSL_DEBUG_OPENSSL - WOLFSSL_ENTER("wolfSSL_OBJ_nid2obj"); -#endif + WOLFSSL_ENTER_VERBOSE("wolfSSL_OBJ_nid2obj"); for (i = 0; i < (int)wolfssl_object_info_sz; i++) { if (wolfssl_object_info[i].nid == id) { @@ -6110,9 +6090,7 @@ int wc_OBJ_sn2nid(const char *sn) word32 idx = 0; int ret; -#ifdef WOLFSSL_DEBUG_OPENSSL - WOLFSSL_ENTER("wolfSSL_OBJ_obj2nid"); -#endif + WOLFSSL_ENTER_VERBOSE("wolfSSL_OBJ_obj2nid"); if (o == NULL) { return WOLFSSL_FATAL_ERROR; diff --git a/src/ssl_bn.c b/src/ssl_bn.c index 86f81aa7a9..ea1355cb4b 100644 --- a/src/ssl_bn.c +++ b/src/ssl_bn.c @@ -134,9 +134,7 @@ int wolfssl_bn_set_value(WOLFSSL_BIGNUM** bn, mp_int* mpi) int ret = 1; WOLFSSL_BIGNUM* a = NULL; -#ifdef WOLFSSL_DEBUG_OPENSSL - WOLFSSL_ENTER("wolfssl_bn_set_value"); -#endif + WOLFSSL_ENTER_VERBOSE("wolfssl_bn_set_value"); /* Validate parameters. */ if ((bn == NULL) || (mpi == NULL)) { @@ -193,9 +191,7 @@ WOLFSSL_BIGNUM* wolfSSL_BN_new(void) { WOLFSSL_BIGNUM* bn = NULL; -#ifdef WOLFSSL_DEBUG_OPENSSL - WOLFSSL_ENTER("wolfSSL_BN_new"); -#endif + WOLFSSL_ENTER_VERBOSE("wolfSSL_BN_new"); /* Allocate memory for big number. */ bn = (WOLFSSL_BIGNUM*)XMALLOC(sizeof(WOLFSSL_BIGNUM), NULL, @@ -222,9 +218,7 @@ WOLFSSL_BIGNUM* wolfSSL_BN_new(void) */ void wolfSSL_BN_init(WOLFSSL_BIGNUM* bn) { -#ifdef WOLFSSL_DEBUG_OPENSSL - WOLFSSL_ENTER("wolfSSL_BN_init"); -#endif + WOLFSSL_ENTER_VERBOSE("wolfSSL_BN_init"); /* Validate parameter. */ if (bn != NULL) { @@ -242,9 +236,7 @@ void wolfSSL_BN_init(WOLFSSL_BIGNUM* bn) */ void wolfSSL_BN_free(WOLFSSL_BIGNUM* bn) { -#ifdef WOLFSSL_DEBUG_OPENSSL - WOLFSSL_ENTER("wolfSSL_BN_free"); -#endif + WOLFSSL_ENTER_VERBOSE("wolfSSL_BN_free"); /* Validate parameter. */ if (bn != NULL) { @@ -267,9 +259,7 @@ void wolfSSL_BN_free(WOLFSSL_BIGNUM* bn) */ void wolfSSL_BN_clear_free(WOLFSSL_BIGNUM* bn) { -#ifdef WOLFSSL_DEBUG_OPENSSL - WOLFSSL_ENTER("wolfSSL_BN_clear_free"); -#endif + WOLFSSL_ENTER_VERBOSE("wolfSSL_BN_clear_free"); /* Validate parameter. */ if (bn != NULL) { @@ -289,9 +279,7 @@ void wolfSSL_BN_clear_free(WOLFSSL_BIGNUM* bn) */ void wolfSSL_BN_clear(WOLFSSL_BIGNUM* bn) { -#ifdef WOLFSSL_DEBUG_OPENSSL - WOLFSSL_ENTER("wolfSSL_BN_clear"); -#endif + WOLFSSL_ENTER_VERBOSE("wolfSSL_BN_clear"); /* Validate parameter. */ if (!BN_IS_NULL(bn)) { diff --git a/src/ssl_sk.c b/src/ssl_sk.c index 69fe7799b2..15ec66a6f2 100644 --- a/src/ssl_sk.c +++ b/src/ssl_sk.c @@ -55,7 +55,7 @@ WOLFSSL_STACK* wolfSSL_sk_new_node(void* heap) { WOLFSSL_STACK* node; - WOLFSSL_ENTER("wolfSSL_sk_new_node"); + WOLFSSL_ENTER_VERBOSE("wolfSSL_sk_new_node"); node = (WOLFSSL_STACK*)XMALLOC(sizeof(WOLFSSL_STACK), heap, DYNAMIC_TYPE_OPENSSL); @@ -596,7 +596,7 @@ WOLFSSL_STACK* wolfSSL_shallow_sk_dup(WOLFSSL_STACK* stack) */ void wolfSSL_sk_free(WOLFSSL_STACK* stack) { - WOLFSSL_ENTER("wolfSSL_sk_free"); + WOLFSSL_ENTER_VERBOSE("wolfSSL_sk_free"); while (stack != NULL) { WOLFSSL_STACK* next = stack->next; @@ -702,7 +702,7 @@ void* wolfSSL_sk_value(const WOLFSSL_STACK* sk, int i) */ int wolfSSL_sk_push(WOLFSSL_STACK* stack, const void *data) { - WOLFSSL_ENTER("wolfSSL_sk_push"); + WOLFSSL_ENTER_VERBOSE("wolfSSL_sk_push"); return wolfSSL_sk_insert(stack, data, -1); } @@ -719,7 +719,7 @@ int wolfSSL_sk_insert(WOLFSSL_STACK *stack, const void *data, int idx) { int ret; WOLFSSL_STACK* node; - WOLFSSL_ENTER("wolfSSL_sk_insert"); + WOLFSSL_ENTER_VERBOSE("wolfSSL_sk_insert"); /* Validate parameters. */ if (stack == NULL) { diff --git a/src/x509.c b/src/x509.c index 55967dc5c1..5d10ff67cb 100644 --- a/src/x509.c +++ b/src/x509.c @@ -11798,7 +11798,7 @@ WOLF_STACK_OF(WOLFSSL_X509_OBJECT)* wolfSSL_sk_X509_OBJECT_deep_copy( #if defined(OPENSSL_EXTRA) || defined(OPENSSL_EXTRA_X509_SMALL) void wolfSSL_X509_NAME_free(WOLFSSL_X509_NAME *name) { - WOLFSSL_ENTER("wolfSSL_X509_NAME_free"); + WOLFSSL_ENTER_VERBOSE("wolfSSL_X509_NAME_free"); FreeX509Name(name); if (name != NULL) { XFREE(name, name->heap, DYNAMIC_TYPE_X509); @@ -11814,7 +11814,7 @@ WOLF_STACK_OF(WOLFSSL_X509_OBJECT)* wolfSSL_sk_X509_OBJECT_deep_copy( { WOLFSSL_X509_NAME* name; - WOLFSSL_ENTER("wolfSSL_X509_NAME_new_ex"); + WOLFSSL_ENTER_VERBOSE("wolfSSL_X509_NAME_new_ex"); name = (WOLFSSL_X509_NAME*)XMALLOC(sizeof(WOLFSSL_X509_NAME), heap, DYNAMIC_TYPE_X509); @@ -14530,7 +14530,7 @@ int wolfSSL_write_X509_CRL(WOLFSSL_X509_CRL* crl, const char* path, int type) void wolfSSL_X509_NAME_ENTRY_free(WOLFSSL_X509_NAME_ENTRY* ne) { - WOLFSSL_ENTER("wolfSSL_X509_NAME_ENTRY_free"); + WOLFSSL_ENTER_VERBOSE("wolfSSL_X509_NAME_ENTRY_free"); if (ne != NULL) { wolfSSL_ASN1_OBJECT_free(ne->object); if (ne->value != NULL) { @@ -14628,9 +14628,7 @@ int wolfSSL_write_X509_CRL(WOLFSSL_X509_CRL* crl, const char* path, int type) { WOLFSSL_X509_NAME_ENTRY* ne; -#ifdef WOLFSSL_DEBUG_OPENSSL - WOLFSSL_ENTER("wolfSSL_X509_NAME_ENTRY_create_by_NID"); -#endif + WOLFSSL_ENTER_VERBOSE("wolfSSL_X509_NAME_ENTRY_create_by_NID"); if (!data) { WOLFSSL_MSG("Bad parameter"); @@ -14665,9 +14663,7 @@ WOLFSSL_ASN1_OBJECT* wolfSSL_X509_NAME_ENTRY_get_object( { WOLFSSL_ASN1_OBJECT* object = NULL; -#ifdef WOLFSSL_DEBUG_OPENSSL - WOLFSSL_ENTER("wolfSSL_X509_NAME_ENTRY_get_object"); -#endif + WOLFSSL_ENTER_VERBOSE("wolfSSL_X509_NAME_ENTRY_get_object"); if (ne != NULL) { /* Create object from nid - reuse existing object if possible. */ @@ -14788,9 +14784,7 @@ WOLFSSL_ASN1_OBJECT* wolfSSL_X509_NAME_ENTRY_get_object( WOLFSSL_X509_NAME_ENTRY* current = NULL; int ret, i; -#ifdef WOLFSSL_DEBUG_OPENSSL - WOLFSSL_ENTER("wolfSSL_X509_NAME_add_entry"); -#endif + WOLFSSL_ENTER_VERBOSE("wolfSSL_X509_NAME_add_entry"); if (name == NULL || entry == NULL || entry->value == NULL) { WOLFSSL_MSG("NULL argument passed in"); @@ -14810,7 +14804,7 @@ WOLFSSL_ASN1_OBJECT* wolfSSL_X509_NAME_ENTRY_get_object( /* iterate through and find first open spot */ for (i = 0; i < MAX_NAME_ENTRIES; i++) { if (name->entry[i].set == 0) { /* not set so overwritten */ - WOLFSSL_MSG("Found place for name entry"); + WOLFSSL_MSG_VERBOSE("Found place for name entry"); break; } } @@ -14905,7 +14899,7 @@ WOLFSSL_ASN1_OBJECT* wolfSSL_X509_NAME_ENTRY_get_object( { int ret; WOLFSSL_X509_NAME_ENTRY* entry; - WOLFSSL_ENTER("wolfSSL_X509_NAME_add_entry_by_NID"); + WOLFSSL_ENTER_VERBOSE("wolfSSL_X509_NAME_add_entry_by_NID"); entry = wolfSSL_X509_NAME_ENTRY_create_by_NID(NULL, nid, type, bytes, len); if (entry == NULL) @@ -14995,9 +14989,7 @@ WOLFSSL_ASN1_OBJECT* wolfSSL_X509_NAME_ENTRY_get_object( WOLFSSL_X509_NAME_ENTRY *wolfSSL_X509_NAME_get_entry( const WOLFSSL_X509_NAME *name, int loc) { -#ifdef WOLFSSL_DEBUG_OPENSSL - WOLFSSL_ENTER("wolfSSL_X509_NAME_get_entry"); -#endif + WOLFSSL_ENTER_VERBOSE("wolfSSL_X509_NAME_get_entry"); if (name == NULL) { return NULL; @@ -15211,7 +15203,7 @@ WOLF_STACK_OF(WOLFSSL_X509_NAME)* wolfSSL_sk_X509_NAME_new( WOLFSSL_STACK* sk; (void)cb; - WOLFSSL_ENTER("wolfSSL_sk_X509_NAME_new"); + WOLFSSL_ENTER_VERBOSE("wolfSSL_sk_X509_NAME_new"); sk = wolfSSL_sk_new_node(NULL); if (sk != NULL) { diff --git a/wolfcrypt/src/asn.c b/wolfcrypt/src/asn.c index 6623eb858b..0263c8f8b5 100644 --- a/wolfcrypt/src/asn.c +++ b/wolfcrypt/src/asn.c @@ -15479,7 +15479,7 @@ static int GetCertName(DecodedCert* cert, char* full, byte* hash, int nameType, WOLFSSL_X509_NAME* dName = NULL; #endif /* WOLFSSL_X509_NAME_AVAILABLE */ - WOLFSSL_MSG("Getting Cert Name"); + WOLFSSL_MSG_VERBOSE("Getting Cert Name"); /* For OCSP, RFC2560 section 4.1.1 states the issuer hash should be * calculated over the entire DER encoding of the Name field, including diff --git a/wolfcrypt/src/asn_orig.c b/wolfcrypt/src/asn_orig.c index a77382f4bb..c29602d8ab 100644 --- a/wolfcrypt/src/asn_orig.c +++ b/wolfcrypt/src/asn_orig.c @@ -1851,7 +1851,7 @@ static int GetCertName(DecodedCert* cert, char* full, byte* hash, int nameType, WOLFSSL_X509_NAME* dName = NULL; #endif - WOLFSSL_MSG("Getting Cert Name"); + WOLFSSL_MSG_VERBOSE("Getting Cert Name"); /* For OCSP, RFC2560 section 4.1.1 states the issuer hash should be * calculated over the entire DER encoding of the Name field, including diff --git a/wolfcrypt/test/test.c b/wolfcrypt/test/test.c index 472f763103..f39fdc8378 100644 --- a/wolfcrypt/test/test.c +++ b/wolfcrypt/test/test.c @@ -81412,8 +81412,15 @@ static int myCryptoDevCb(int devIdArg, wc_CryptoInfo* info, void* ctx) if (info == NULL || myCtx == NULL) return BAD_FUNC_ARG; -#ifdef DEBUG_WOLFSSL - WOLFSSL_MSG_EX("CryptoDevCb: Algo Type %d\n", info->algo_type); + /* One line per crypto-callback invocation - millions across the test + * suite. DEBUG_CRYPTOCB is the existing switch for crypto-callback + * tracing (see wolfcrypt/src/cryptocb.c), so gate on that rather than on + * DEBUG_WOLFSSL alone. Both are needed: WOLFSSL_MSG_EX itself compiles + * out without DEBUG_WOLFSSL, so say so here rather than leave a guard that + * reads as though DEBUG_CRYPTOCB were sufficient. wolfssl_log() appends + * its own newline. */ +#if defined(DEBUG_CRYPTOCB) && defined(DEBUG_WOLFSSL) + WOLFSSL_MSG_EX("CryptoDevCb: Algo Type %d", info->algo_type); #endif if (info->algo_type == WC_ALGO_TYPE_RNG) { diff --git a/wolfssl/wolfcrypt/logging.h b/wolfssl/wolfcrypt/logging.h index 64e716acbc..631c1cb9ac 100644 --- a/wolfssl/wolfcrypt/logging.h +++ b/wolfssl/wolfcrypt/logging.h @@ -441,6 +441,37 @@ WOLFSSL_API void wolfSSL_SetLoggingPrefix(const char* prefix); #define WOLFSSL_ERROR_VERBOSE(e) (void)(e) #endif /* WOLFSSL_VERBOSE_ERRORS */ +/* Verbose message logging. + * + * The sibling of WOLFSSL_VERBOSE_ERRORS / WOLFSSL_ERROR_VERBOSE above: that + * pair controls how much detail reaches the *error queue*, this one controls + * how much reaches the *log*. + * + * These narrow the normal macros rather than bypassing them: they expand to + * WOLFSSL_MSG/WOLFSSL_ENTER/WOLFSSL_LEAVE, so DEBUG_WOLFSSL (without + * WOLFSSL_DEBUG_ERRORS_ONLY) is still required for any output at all. + * WOLFSSL_VERBOSE_LOGGING on its own emits nothing; it admits these traces + * into a build that is already logging, and they stay off otherwise. + * + * Use it for traces in functions called so often that the trace is itself the + * problem - container helpers, name-entry churn - where the line is noise + * during ordinary debugging and is only wanted when tracing that area + * specifically. As a rule of thumb: if one API call can emit the line + * thousands of times, it belongs here. + * + * WOLFSSL_DEBUG_OPENSSL is honoured as well. It was the hand-rolled spelling + * of this same idea in the OpenSSL compatibility layer, applied as + * #ifdef/#endif around individual traces; enabling it keeps giving those + * callers exactly what it always did. + */ +#if defined(WOLFSSL_VERBOSE_LOGGING) || defined(WOLFSSL_DEBUG_OPENSSL) + #define WOLFSSL_MSG_VERBOSE(m) WOLFSSL_MSG(m) + #define WOLFSSL_ENTER_VERBOSE(m) WOLFSSL_ENTER(m) +#else + #define WOLFSSL_MSG_VERBOSE(m) WC_DO_NOTHING + #define WOLFSSL_ENTER_VERBOSE(m) WC_DO_NOTHING +#endif /* WOLFSSL_VERBOSE_LOGGING || WOLFSSL_DEBUG_OPENSSL */ + #ifdef HAVE_STACK_SIZE_VERBOSE extern WOLFSSL_API THREAD_LS_T unsigned char *StackSizeCheck_myStack; extern WOLFSSL_API THREAD_LS_T size_t StackSizeCheck_stackSize;