b25c0c78cf
Add a test case calling ssl_set_hostname twice to test_suite_ssl. When run in CMake build mode ASan, this catches the current leak, but will hopefully be fine with the new version.
55 lines
No EOL
1.5 KiB
Text
55 lines
No EOL
1.5 KiB
Text
/* BEGIN_HEADER */
|
|
#include <mbedtls/ssl.h>
|
|
#include <mbedtls/ssl_internal.h>
|
|
/* END_HEADER */
|
|
|
|
/* BEGIN_DEPENDENCIES
|
|
* depends_on:MBEDTLS_SSL_TLS_C
|
|
* END_DEPENDENCIES
|
|
*/
|
|
|
|
/* BEGIN_CASE depends_on:MBEDTLS_SSL_DTLS_ANTI_REPLAY */
|
|
void ssl_dtls_replay( char *prevs, char *new, int ret )
|
|
{
|
|
mbedtls_ssl_context ssl;
|
|
mbedtls_ssl_config conf;
|
|
char *end_prevs = prevs + strlen( prevs ) + 1;
|
|
|
|
mbedtls_ssl_init( &ssl );
|
|
mbedtls_ssl_config_init( &conf );
|
|
|
|
TEST_ASSERT( mbedtls_ssl_config_defaults( &conf,
|
|
MBEDTLS_SSL_IS_CLIENT,
|
|
MBEDTLS_SSL_TRANSPORT_DATAGRAM,
|
|
MBEDTLS_SSL_PRESET_DEFAULT ) == 0 );
|
|
TEST_ASSERT( mbedtls_ssl_setup( &ssl, &conf ) == 0 );
|
|
|
|
/* Read previous record numbers */
|
|
for( ; end_prevs - prevs >= 13; prevs += 13 )
|
|
{
|
|
prevs[12] = '\0';
|
|
unhexify( ssl.in_ctr + 2, prevs );
|
|
mbedtls_ssl_dtls_replay_update( &ssl );
|
|
}
|
|
|
|
/* Check new number */
|
|
unhexify( ssl.in_ctr + 2, new );
|
|
TEST_ASSERT( mbedtls_ssl_dtls_replay_check( &ssl ) == ret );
|
|
|
|
mbedtls_ssl_free( &ssl );
|
|
mbedtls_ssl_config_free( &conf );
|
|
}
|
|
/* END_CASE */
|
|
|
|
/* BEGIN_CASE depends_on:MBEDTLS_X509_CRT_PARSE_C */
|
|
void ssl_set_hostname_twice( char *hostname0, char *hostname1 )
|
|
{
|
|
mbedtls_ssl_context ssl;
|
|
mbedtls_ssl_init( &ssl );
|
|
|
|
TEST_ASSERT( mbedtls_ssl_set_hostname( &ssl, hostname0 ) == 0 );
|
|
TEST_ASSERT( mbedtls_ssl_set_hostname( &ssl, hostname1 ) == 0 );
|
|
|
|
mbedtls_ssl_free( &ssl );
|
|
}
|
|
/* END_CASE */ |