| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224 |
- /* BEGIN_HEADER */
- #include "mbedtls/debug.h"
- #include "string.h"
- #include "mbedtls/legacy_or_psa.h"
- #include "mbedtls/pk.h"
- struct buffer_data {
- char buf[2000];
- char *ptr;
- };
- void string_debug(void *data, int level, const char *file, int line, const char *str)
- {
- struct buffer_data *buffer = (struct buffer_data *) data;
- char *p = buffer->ptr;
- ((void) level);
- memcpy(p, file, strlen(file));
- p += strlen(file);
- *p++ = '(';
- *p++ = '0' + (line / 1000) % 10;
- *p++ = '0' + (line / 100) % 10;
- *p++ = '0' + (line / 10) % 10;
- *p++ = '0' + (line / 1) % 10;
- *p++ = ')';
- *p++ = ':';
- *p++ = ' ';
- #if defined(MBEDTLS_THREADING_C)
- /* Skip "thread ID" (up to the first space) as it is not predictable */
- while (*str++ != ' ') {
- ;
- }
- #endif
- memcpy(p, str, strlen(str));
- p += strlen(str);
- /* Detect if debug messages output partial lines and mark them */
- if (p[-1] != '\n') {
- *p++ = '*';
- }
- buffer->ptr = p;
- }
- /* END_HEADER */
- /* BEGIN_DEPENDENCIES
- * depends_on:MBEDTLS_DEBUG_C:MBEDTLS_SSL_TLS_C
- * END_DEPENDENCIES
- */
- /* BEGIN_CASE */
- void debug_print_msg_threshold(int threshold, int level, char *file,
- int line, char *result_str)
- {
- mbedtls_ssl_context ssl;
- mbedtls_ssl_config conf;
- struct buffer_data buffer;
- mbedtls_ssl_init(&ssl);
- mbedtls_ssl_config_init(&conf);
- memset(buffer.buf, 0, 2000);
- buffer.ptr = buffer.buf;
- mbedtls_ssl_config_defaults(&conf,
- MBEDTLS_SSL_IS_CLIENT,
- MBEDTLS_SSL_TRANSPORT_STREAM,
- MBEDTLS_SSL_PRESET_DEFAULT);
- mbedtls_ssl_conf_dbg(&conf, string_debug, &buffer);
- TEST_ASSERT(mbedtls_ssl_setup(&ssl, &conf) == 0);
- mbedtls_debug_set_threshold(threshold);
- mbedtls_debug_print_msg(&ssl, level, file, line,
- "Text message, 2 == %d", 2);
- TEST_ASSERT(strcmp(buffer.buf, result_str) == 0);
- exit:
- mbedtls_ssl_free(&ssl);
- mbedtls_ssl_config_free(&conf);
- }
- /* END_CASE */
- /* BEGIN_CASE */
- void mbedtls_debug_print_ret(char *file, int line, char *text, int value,
- char *result_str)
- {
- mbedtls_ssl_context ssl;
- mbedtls_ssl_config conf;
- struct buffer_data buffer;
- mbedtls_ssl_init(&ssl);
- mbedtls_ssl_config_init(&conf);
- memset(buffer.buf, 0, 2000);
- buffer.ptr = buffer.buf;
- mbedtls_ssl_config_defaults(&conf,
- MBEDTLS_SSL_IS_CLIENT,
- MBEDTLS_SSL_TRANSPORT_STREAM,
- MBEDTLS_SSL_PRESET_DEFAULT);
- mbedtls_ssl_conf_dbg(&conf, string_debug, &buffer);
- TEST_ASSERT(mbedtls_ssl_setup(&ssl, &conf) == 0);
- mbedtls_debug_print_ret(&ssl, 0, file, line, text, value);
- TEST_ASSERT(strcmp(buffer.buf, result_str) == 0);
- exit:
- mbedtls_ssl_free(&ssl);
- mbedtls_ssl_config_free(&conf);
- }
- /* END_CASE */
- /* BEGIN_CASE */
- void mbedtls_debug_print_buf(char *file, int line, char *text,
- data_t *data, char *result_str)
- {
- mbedtls_ssl_context ssl;
- mbedtls_ssl_config conf;
- struct buffer_data buffer;
- mbedtls_ssl_init(&ssl);
- mbedtls_ssl_config_init(&conf);
- memset(buffer.buf, 0, 2000);
- buffer.ptr = buffer.buf;
- mbedtls_ssl_config_defaults(&conf,
- MBEDTLS_SSL_IS_CLIENT,
- MBEDTLS_SSL_TRANSPORT_STREAM,
- MBEDTLS_SSL_PRESET_DEFAULT);
- mbedtls_ssl_conf_dbg(&conf, string_debug, &buffer);
- TEST_ASSERT(mbedtls_ssl_setup(&ssl, &conf) == 0);
- mbedtls_debug_print_buf(&ssl, 0, file, line, text, data->x, data->len);
- TEST_ASSERT(strcmp(buffer.buf, result_str) == 0);
- exit:
- mbedtls_ssl_free(&ssl);
- mbedtls_ssl_config_free(&conf);
- }
- /* END_CASE */
- /* BEGIN_CASE depends_on:MBEDTLS_FS_IO:MBEDTLS_X509_CRT_PARSE_C:!MBEDTLS_X509_REMOVE_INFO */
- void mbedtls_debug_print_crt(char *crt_file, char *file, int line,
- char *prefix, char *result_str)
- {
- mbedtls_x509_crt crt;
- mbedtls_ssl_context ssl;
- mbedtls_ssl_config conf;
- struct buffer_data buffer;
- mbedtls_ssl_init(&ssl);
- mbedtls_ssl_config_init(&conf);
- mbedtls_x509_crt_init(&crt);
- memset(buffer.buf, 0, 2000);
- buffer.ptr = buffer.buf;
- mbedtls_ssl_config_defaults(&conf,
- MBEDTLS_SSL_IS_CLIENT,
- MBEDTLS_SSL_TRANSPORT_STREAM,
- MBEDTLS_SSL_PRESET_DEFAULT);
- mbedtls_ssl_conf_dbg(&conf, string_debug, &buffer);
- TEST_ASSERT(mbedtls_ssl_setup(&ssl, &conf) == 0);
- TEST_ASSERT(mbedtls_x509_crt_parse_file(&crt, crt_file) == 0);
- mbedtls_debug_print_crt(&ssl, 0, file, line, prefix, &crt);
- TEST_ASSERT(strcmp(buffer.buf, result_str) == 0);
- exit:
- mbedtls_x509_crt_free(&crt);
- mbedtls_ssl_free(&ssl);
- mbedtls_ssl_config_free(&conf);
- }
- /* END_CASE */
- /* BEGIN_CASE depends_on:MBEDTLS_BIGNUM_C */
- void mbedtls_debug_print_mpi(char *value, char *file, int line,
- char *prefix, char *result_str)
- {
- mbedtls_ssl_context ssl;
- mbedtls_ssl_config conf;
- struct buffer_data buffer;
- mbedtls_mpi val;
- mbedtls_ssl_init(&ssl);
- mbedtls_ssl_config_init(&conf);
- mbedtls_mpi_init(&val);
- memset(buffer.buf, 0, 2000);
- buffer.ptr = buffer.buf;
- mbedtls_ssl_config_defaults(&conf,
- MBEDTLS_SSL_IS_CLIENT,
- MBEDTLS_SSL_TRANSPORT_STREAM,
- MBEDTLS_SSL_PRESET_DEFAULT);
- mbedtls_ssl_conf_dbg(&conf, string_debug, &buffer);
- TEST_ASSERT(mbedtls_ssl_setup(&ssl, &conf) == 0);
- TEST_ASSERT(mbedtls_test_read_mpi(&val, value) == 0);
- mbedtls_debug_print_mpi(&ssl, 0, file, line, prefix, &val);
- TEST_ASSERT(strcmp(buffer.buf, result_str) == 0);
- exit:
- mbedtls_mpi_free(&val);
- mbedtls_ssl_free(&ssl);
- mbedtls_ssl_config_free(&conf);
- }
- /* END_CASE */
|