| /**************************************************************************** |
| * apps/crypto/openssl_mbedtls_wrapper/include/openssl/ssl_dbg.h |
| * |
| * SPDX-License-Identifier: Apache-2.0 |
| * SPDX-FileCopyrightText: 2015-2016 Espressif Systems (Shanghai) PTE LTD |
| * |
| * Licensed under the Apache License, Version 2.0 (the "License"); |
| * you may not use this file except in compliance with the License. |
| * You may obtain a copy of the License at |
| * |
| * http://www.apache.org/licenses/LICENSE-2.0 |
| * |
| * Unless required by applicable law or agreed to in writing, software |
| * distributed under the License is distributed on an "AS IS" BASIS, |
| * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| * See the License for the specific language governing permissions and |
| * limitations under the License. |
| ****************************************************************************/ |
| |
| #ifndef OPENSSL_MBEDTLS_WRAPPER_SSL_DBG_H |
| #define OPENSSL_MBEDTLS_WRAPPER_SSL_DBG_H |
| |
| #ifdef __cplusplus |
| extern "C" |
| { |
| #endif |
| |
| #ifdef CONFIG_OPENSSL_DEBUG_LEVEL |
| # define SSL_DEBUG_LEVEL CONFIG_OPENSSL_DEBUG_LEVEL |
| #else |
| # define SSL_DEBUG_LEVEL 0 |
| #endif |
| |
| #define SSL_DEBUG_ON (SSL_DEBUG_LEVEL + 1) |
| #define SSL_DEBUG_OFF (SSL_DEBUG_LEVEL - 1) |
| |
| #ifdef CONFIG_OPENSSL_DEBUG |
| # ifndef SSL_DEBUG_LOG |
| # error "SSL_DEBUG_LOG is not defined" |
| # endif |
| |
| # ifndef SSL_DEBUG_FL |
| # define SSL_DEBUG_FL "\n" |
| # endif |
| |
| # define SSL_SHOW_LOCATION() \ |
| SSL_DEBUG_LOG("SSL assert : %s %d\n", \ |
| __FILE__, __LINE__) |
| |
| # define SSL_DEBUG(level, fmt, ...) \ |
| { \ |
| if (level > SSL_DEBUG_LEVEL) \ |
| { \ |
| SSL_DEBUG_LOG(fmt SSL_DEBUG_FL, ##__VA_ARGS__); \ |
| } \ |
| } |
| #else /* CONFIG_OPENSSL_DEBUG */ |
| # define SSL_SHOW_LOCATION() |
| |
| # define SSL_DEBUG(level, fmt, ...) |
| #endif /* CONFIG_OPENSSL_DEBUG */ |
| |
| /* OpenSSL assert function |
| * |
| * if select "CONFIG_OPENSSL_ASSERT_DEBUG", SSL_ASSERT* will show error |
| * file name and line |
| * if select "CONFIG_OPENSSL_ASSERT_EXIT", SSL_ASSERT* will just return |
| * error code. |
| * if select "CONFIG_OPENSSL_ASSERT_DEBUG_EXIT" SSL_ASSERT* will show error |
| * file name and line, then return error code. |
| * if select "CONFIG_OPENSSL_ASSERT_DEBUG_BLOCK", SSL_ASSERT* will show error |
| * file name and line, then block here with "while (1)" |
| * |
| * SSL_ASSERT1 may will return "-1", so function's return argument is |
| * integer. |
| * SSL_ASSERT2 may will return "NULL", so function's return argument is a |
| * point. |
| * SSL_ASSERT2 may will return nothing, so function's return argument is |
| * "void". |
| */ |
| |
| #if defined(CONFIG_OPENSSL_ASSERT_DEBUG) |
| # define SSL_ASSERT1(s) \ |
| { \ |
| if (!(s)) \ |
| { \ |
| SSL_SHOW_LOCATION(); \ |
| } \ |
| } |
| |
| # define SSL_ASSERT2(s) \ |
| { \ |
| if (!(s)) \ |
| { \ |
| SSL_SHOW_LOCATION(); \ |
| } \ |
| } |
| |
| # define SSL_ASSERT3(s) \ |
| { \ |
| if (!(s)) \ |
| { \ |
| SSL_SHOW_LOCATION(); \ |
| } \ |
| } |
| #elif defined(CONFIG_OPENSSL_ASSERT_EXIT) |
| # define SSL_ASSERT1(s) \ |
| { \ |
| if (!(s)) \ |
| { \ |
| return -1; \ |
| } \ |
| } |
| |
| # define SSL_ASSERT2(s) \ |
| { \ |
| if (!(s)) \ |
| { \ |
| return NULL; \ |
| } \ |
| } |
| |
| # define SSL_ASSERT3(s) \ |
| { \ |
| if (!(s)) \ |
| { \ |
| return ; \ |
| } \ |
| } |
| #elif defined(CONFIG_OPENSSL_ASSERT_DEBUG_EXIT) |
| # define SSL_ASSERT1(s) \ |
| { \ |
| if (!(s)) \ |
| { \ |
| SSL_SHOW_LOCATION(); \ |
| return -1; \ |
| } \ |
| } |
| |
| # define SSL_ASSERT2(s) \ |
| { \ |
| if (!(s)) \ |
| { \ |
| SSL_SHOW_LOCATION(); \ |
| return NULL; \ |
| } \ |
| } |
| |
| # define SSL_ASSERT3(s) \ |
| { \ |
| if (!(s)) \ |
| { \ |
| SSL_SHOW_LOCATION(); \ |
| return ; \ |
| } \ |
| } |
| #elif defined(CONFIG_OPENSSL_ASSERT_DEBUG_BLOCK) |
| # define SSL_ASSERT1(s) \ |
| { \ |
| if (!(s)) \ |
| { \ |
| SSL_SHOW_LOCATION(); \ |
| while (1); \ |
| } \ |
| } |
| |
| # define SSL_ASSERT2(s) \ |
| { \ |
| if (!(s)) \ |
| { \ |
| SSL_SHOW_LOCATION(); \ |
| while (1); \ |
| } \ |
| } |
| |
| # define SSL_ASSERT3(s) \ |
| { \ |
| if (!(s)) \ |
| { \ |
| SSL_SHOW_LOCATION(); \ |
| while (1); \ |
| } \ |
| } |
| #else |
| # define SSL_ASSERT1(s) |
| # define SSL_ASSERT2(s) |
| # define SSL_ASSERT3(s) |
| #endif |
| |
| #define SSL_PLATFORM_DEBUG_LEVEL SSL_DEBUG_OFF |
| #define SSL_PLATFORM_ERROR_LEVEL SSL_DEBUG_ON |
| |
| #define SSL_CERT_DEBUG_LEVEL SSL_DEBUG_OFF |
| #define SSL_CERT_ERROR_LEVEL SSL_DEBUG_ON |
| |
| #define SSL_PKEY_DEBUG_LEVEL SSL_DEBUG_OFF |
| #define SSL_PKEY_ERROR_LEVEL SSL_DEBUG_ON |
| |
| #define SSL_X509_DEBUG_LEVEL SSL_DEBUG_OFF |
| #define SSL_X509_ERROR_LEVEL SSL_DEBUG_ON |
| |
| #define SSL_LIB_DEBUG_LEVEL SSL_DEBUG_OFF |
| #define SSL_LIB_ERROR_LEVEL SSL_DEBUG_ON |
| |
| #define SSL_STACK_DEBUG_LEVEL SSL_DEBUG_OFF |
| #define SSL_STACK_ERROR_LEVEL SSL_DEBUG_ON |
| |
| #ifdef __cplusplus |
| } |
| #endif |
| |
| #endif /* OPENSSL_MBEDTLS_WRAPPER_SSL_DBG_H */ |