From a17b5c6ba2bc56ee65cf741dde78c09f0d246b44 Mon Sep 17 00:00:00 2001 From: Przemek Stekiel Date: Mon, 2 May 2022 13:50:24 +0200 Subject: [PATCH] ssl_client: use key opaque algs given from command line Signed-off-by: Przemek Stekiel --- programs/ssl/ssl_client2.c | 26 +++++++++++++++++++++----- 1 file changed, 21 insertions(+), 5 deletions(-) diff --git a/programs/ssl/ssl_client2.c b/programs/ssl/ssl_client2.c index 73c81fd58e..65c7c63af5 100644 --- a/programs/ssl/ssl_client2.c +++ b/programs/ssl/ssl_client2.c @@ -1718,16 +1718,32 @@ int main( int argc, char *argv[] ) if( opt.key_opaque != 0 ) { psa_algorithm_t psa_alg, psa_alg2; + psa_key_usage_t usage = PSA_KEY_USAGE_SIGN_HASH; - if( mbedtls_pk_get_type( &pkey ) == MBEDTLS_PK_ECKEY ) + if ( strcmp( opt.key_opaque_alg1, DFL_KEY_OPAQUE_ALG ) != 0 ) { - psa_alg = PSA_ALG_ECDSA( PSA_ALG_ANY_HASH ); - psa_alg2 = PSA_ALG_NONE; + ret = key_opaque_set_alg_usage( opt.key_opaque_alg1, + opt.key_opaque_alg2, + &psa_alg, &psa_alg2, &usage ); + if( ret != 0 ) + { + mbedtls_printf( " failed\n ! key_opaque_set_alg_usage returned -0x%x\n\n", + (unsigned int) -ret ); + goto exit; + } } else { - psa_alg = PSA_ALG_RSA_PKCS1V15_SIGN( PSA_ALG_ANY_HASH ); - psa_alg2 = PSA_ALG_RSA_PSS( PSA_ALG_ANY_HASH ); + if( mbedtls_pk_get_type( &pkey ) == MBEDTLS_PK_ECKEY ) + { + psa_alg = PSA_ALG_ECDSA( PSA_ALG_ANY_HASH ); + psa_alg2 = PSA_ALG_NONE; + } + else + { + psa_alg = PSA_ALG_RSA_PKCS1V15_SIGN( PSA_ALG_ANY_HASH ); + psa_alg2 = PSA_ALG_RSA_PSS( PSA_ALG_ANY_HASH ); + } } if( ( ret = mbedtls_pk_wrap_as_opaque( &pkey, &key_slot, psa_alg,