diff --git a/programs/ssl/ssl_client2.c b/programs/ssl/ssl_client2.c
index 73c81fd..65c7c63 100644
--- a/programs/ssl/ssl_client2.c
+++ b/programs/ssl/ssl_client2.c
@@ -1718,16 +1718,32 @@
     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,
