mirror of
				https://github.com/cuberite/polarssl.git
				synced 2025-11-03 20:22:59 -05:00 
			
		
		
		
	Test new semantics for static PSK configuration
Signed-off-by: Hanno Becker <hanno.becker@arm.com>
This commit is contained in:
		
							parent
							
								
									2ed3dced8f
								
							
						
					
					
						commit
						6667ffdd86
					
				@ -1,3 +1,15 @@
 | 
			
		||||
Attempt to register multiple PSKs
 | 
			
		||||
test_multiple_psks:
 | 
			
		||||
 | 
			
		||||
Attempt to register multiple PSKS, incl. opaque PSK, #0
 | 
			
		||||
test_multiple_psks_opaque:0
 | 
			
		||||
 | 
			
		||||
Attempt to register multiple PSKs, incl. opaque PSK, #1
 | 
			
		||||
test_multiple_psks_opaque:1
 | 
			
		||||
 | 
			
		||||
Attempt to register multiple PSKs, incl. opaque PSK, #2
 | 
			
		||||
test_multiple_psks_opaque:2
 | 
			
		||||
 | 
			
		||||
Test calback buffer sanity
 | 
			
		||||
test_callback_buffer_sanity:
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -8,6 +8,8 @@
 | 
			
		||||
#include <ssl_tls13_keys.h>
 | 
			
		||||
#include "test/certs.h"
 | 
			
		||||
 | 
			
		||||
#include <psa/crypto.h>
 | 
			
		||||
 | 
			
		||||
#include <ssl_invasive.h>
 | 
			
		||||
 | 
			
		||||
#include <test/constant_flow.h>
 | 
			
		||||
@ -4535,3 +4537,109 @@ exit:
 | 
			
		||||
    mbedtls_free( src );
 | 
			
		||||
}
 | 
			
		||||
/* END_CASE */
 | 
			
		||||
 | 
			
		||||
/* BEGIN_CASE depends_on:MBEDTLS_KEY_EXCHANGE_SOME_PSK_ENABLED */
 | 
			
		||||
void test_multiple_psks()
 | 
			
		||||
{
 | 
			
		||||
    unsigned char psk0[10] = { 0 };
 | 
			
		||||
    unsigned char psk0_identity[] = { 'f', 'o', 'o' };
 | 
			
		||||
 | 
			
		||||
    unsigned char psk1[10] = { 0 };
 | 
			
		||||
    unsigned char psk1_identity[] = { 'b', 'a', 'r' };
 | 
			
		||||
 | 
			
		||||
    mbedtls_ssl_config conf;
 | 
			
		||||
 | 
			
		||||
    mbedtls_ssl_config_init( &conf );
 | 
			
		||||
 | 
			
		||||
    TEST_ASSERT( mbedtls_ssl_conf_psk( &conf,
 | 
			
		||||
                     psk0, sizeof( psk0 ),
 | 
			
		||||
                     psk0_identity, sizeof( psk0_identity ) ) == 0 );
 | 
			
		||||
    TEST_ASSERT( mbedtls_ssl_conf_psk( &conf,
 | 
			
		||||
                     psk1, sizeof( psk1 ),
 | 
			
		||||
                     psk1_identity, sizeof( psk1_identity ) ) ==
 | 
			
		||||
                 MBEDTLS_ERR_SSL_FEATURE_UNAVAILABLE );
 | 
			
		||||
 | 
			
		||||
exit:
 | 
			
		||||
 | 
			
		||||
    mbedtls_ssl_config_free( &conf );
 | 
			
		||||
}
 | 
			
		||||
/* END_CASE */
 | 
			
		||||
 | 
			
		||||
/* BEGIN_CASE depends_on:MBEDTLS_KEY_EXCHANGE_SOME_PSK_ENABLED:MBEDTLS_USE_PSA_CRYPTO */
 | 
			
		||||
void test_multiple_psks_opaque( int mode )
 | 
			
		||||
{
 | 
			
		||||
    /*
 | 
			
		||||
     * Mode 0: Raw PSK, then opaque PSK
 | 
			
		||||
     * Mode 1: Opaque PSK, then raw PSK
 | 
			
		||||
     * Mode 2: 2x opaque PSK
 | 
			
		||||
     */
 | 
			
		||||
 | 
			
		||||
    unsigned char psk0_raw[10] = { 0 };
 | 
			
		||||
    unsigned char psk0_raw_identity[] = { 'f', 'o', 'o' };
 | 
			
		||||
 | 
			
		||||
    psa_key_id_t psk0_opaque = (psa_key_id_t) 1;
 | 
			
		||||
    unsigned char psk0_opaque_identity[] = { 'f', 'o', 'o' };
 | 
			
		||||
 | 
			
		||||
    unsigned char psk1_raw[10] = { 0 };
 | 
			
		||||
    unsigned char psk1_raw_identity[] = { 'b', 'a', 'r' };
 | 
			
		||||
 | 
			
		||||
    psa_key_id_t psk1_opaque = (psa_key_id_t) 2;
 | 
			
		||||
    unsigned char psk1_opaque_identity[] = { 'b', 'a', 'r' };
 | 
			
		||||
 | 
			
		||||
    mbedtls_ssl_config conf;
 | 
			
		||||
 | 
			
		||||
    USE_PSA_INIT( );
 | 
			
		||||
    mbedtls_ssl_config_init( &conf );
 | 
			
		||||
 | 
			
		||||
    switch( mode )
 | 
			
		||||
    {
 | 
			
		||||
        case 0:
 | 
			
		||||
 | 
			
		||||
            TEST_ASSERT( mbedtls_ssl_conf_psk( &conf,
 | 
			
		||||
                         psk0_raw, sizeof( psk0_raw ),
 | 
			
		||||
                         psk0_raw_identity, sizeof( psk0_raw_identity ) )
 | 
			
		||||
                   == 0 );
 | 
			
		||||
            TEST_ASSERT( mbedtls_ssl_conf_psk_opaque( &conf,
 | 
			
		||||
                         psk1_opaque,
 | 
			
		||||
                         psk1_opaque_identity, sizeof( psk1_opaque_identity ) )
 | 
			
		||||
                   == MBEDTLS_ERR_SSL_FEATURE_UNAVAILABLE );
 | 
			
		||||
            break;
 | 
			
		||||
 | 
			
		||||
        case 1:
 | 
			
		||||
 | 
			
		||||
            TEST_ASSERT( mbedtls_ssl_conf_psk_opaque( &conf,
 | 
			
		||||
                         psk0_opaque,
 | 
			
		||||
                         psk0_opaque_identity, sizeof( psk0_opaque_identity ) )
 | 
			
		||||
                   == 0 );
 | 
			
		||||
            TEST_ASSERT( mbedtls_ssl_conf_psk( &conf,
 | 
			
		||||
                         psk1_raw, sizeof( psk1_raw ),
 | 
			
		||||
                         psk1_raw_identity, sizeof( psk1_raw_identity ) )
 | 
			
		||||
                   == MBEDTLS_ERR_SSL_FEATURE_UNAVAILABLE );
 | 
			
		||||
 | 
			
		||||
            break;
 | 
			
		||||
 | 
			
		||||
        case 2:
 | 
			
		||||
 | 
			
		||||
            TEST_ASSERT( mbedtls_ssl_conf_psk_opaque( &conf,
 | 
			
		||||
                         psk0_opaque,
 | 
			
		||||
                         psk0_opaque_identity, sizeof( psk0_opaque_identity ) )
 | 
			
		||||
                   == 0 );
 | 
			
		||||
            TEST_ASSERT( mbedtls_ssl_conf_psk_opaque( &conf,
 | 
			
		||||
                         psk1_opaque,
 | 
			
		||||
                         psk1_opaque_identity, sizeof( psk1_opaque_identity ) )
 | 
			
		||||
                   == MBEDTLS_ERR_SSL_FEATURE_UNAVAILABLE );
 | 
			
		||||
 | 
			
		||||
            break;
 | 
			
		||||
 | 
			
		||||
        default:
 | 
			
		||||
            TEST_ASSERT( 0 );
 | 
			
		||||
            break;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
exit:
 | 
			
		||||
 | 
			
		||||
    mbedtls_ssl_config_free( &conf );
 | 
			
		||||
    USE_PSA_DONE( );
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
/* END_CASE */
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user