diff --git a/library/pk.c b/library/pk.c
index 5307ff3..4273d93 100644
--- a/library/pk.c
+++ b/library/pk.c
@@ -271,33 +271,35 @@
         mbedtls_pk_type_t type;
 
         if( PSA_ALG_IS_ECDSA( alg ) || PSA_ALG_IS_ECDH( alg ) )
-        {
             type = MBEDTLS_PK_ECKEY;
-            key_usage = PSA_KEY_USAGE_SIGN_HASH |
-                        PSA_KEY_USAGE_DERIVE;
-        }
-        else if( PSA_ALG_IS_RSA_PKCS1V15_SIGN( alg ) )
-        {
+        else if( PSA_ALG_IS_RSA_PKCS1V15_SIGN( alg ) ||
+                 alg == PSA_ALG_RSA_PKCS1V15_CRYPT )
             type = MBEDTLS_PK_RSA;
-            key_usage = PSA_KEY_USAGE_SIGN_HASH;
-        }
-        else if( alg == PSA_ALG_RSA_PKCS1V15_CRYPT )
-        {
-            type = MBEDTLS_PK_RSA;
-            key_usage = PSA_KEY_USAGE_DECRYPT;
-        }
         else if( PSA_ALG_IS_RSA_PSS( alg ) )
-        {
             type = MBEDTLS_PK_RSASSA_PSS;
-            key_usage = PSA_KEY_USAGE_SIGN_HASH;
-        }
         else
             return( 0 );
 
-        if( ( key_usage & usage ) != usage )
+        if( ctx->pk_info->can_do( type ) == 0 )
             return( 0 );
 
-        return( ctx->pk_info->can_do( type ) );
+        switch( type )
+        {
+            case MBEDTLS_PK_ECKEY:
+                key_usage = PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_DERIVE;
+                break;
+            case MBEDTLS_PK_RSA:
+            case MBEDTLS_PK_RSASSA_PSS:
+                key_usage = PSA_KEY_USAGE_SIGN_HASH |
+                            PSA_KEY_USAGE_SIGN_MESSAGE |
+                            PSA_KEY_USAGE_DECRYPT;
+                break;
+            default:
+                /* Should never happend */
+                return( 0 );
+        }
+
+        return( ( key_usage & usage ) == usage );
     }
 
     const mbedtls_svc_key_id_t *key = (const mbedtls_svc_key_id_t *) ctx->pk_ctx;
