From 5d9021e7f24b4b1c3e8cff73bbec905630dbaa87 Mon Sep 17 00:00:00 2001 From: Hanno Becker Date: Thu, 28 Feb 2019 14:32:37 +0000 Subject: [PATCH] Make use of new API in ssl_server2 example application --- programs/ssl/ssl_server2.c | 21 ++++++++++++++++++--- 1 file changed, 18 insertions(+), 3 deletions(-) diff --git a/programs/ssl/ssl_server2.c b/programs/ssl/ssl_server2.c index 8a12de23d..df39b5149 100644 --- a/programs/ssl/ssl_server2.c +++ b/programs/ssl/ssl_server2.c @@ -1065,6 +1065,7 @@ static int ssl_async_start( mbedtls_ssl_context *ssl, const unsigned char *input, size_t input_len ) { + int ret; ssl_async_key_context_t *config_data = mbedtls_ssl_conf_get_async_config_data( ssl->conf ); unsigned slot; @@ -1073,9 +1074,17 @@ static int ssl_async_start( mbedtls_ssl_context *ssl, { char dn[100]; - if( mbedtls_x509_dn_gets( dn, sizeof( dn ), &cert->subject ) > 0 ) + mbedtls_x509_name *subject; + + ret = mbedtls_x509_crt_get_subject( cert, &subject ); + if( ret != 0 ) + return( ret ); + + if( mbedtls_x509_dn_gets( dn, sizeof( dn ), subject ) > 0 ) mbedtls_printf( "Async %s callback: looking for DN=%s\n", op_name, dn ); + + mbedtls_x509_name_free( subject ); } /* Look for a private key that matches the public key in cert. @@ -1084,8 +1093,14 @@ static int ssl_async_start( mbedtls_ssl_context *ssl, * public key. */ for( slot = 0; slot < config_data->slots_used; slot++ ) { - if( mbedtls_pk_check_pair( &cert->pk, - config_data->slots[slot].pk ) == 0 ) + mbedtls_pk_context *pk; + int match; + ret = mbedtls_x509_crt_pk_acquire( cert, &pk ); + if( ret != 0 ) + return( ret ); + match = mbedtls_pk_check_pair( pk, config_data->slots[slot].pk ); + mbedtls_x509_crt_pk_release( cert, pk ); + if( match == 0 ) break; } if( slot == config_data->slots_used )