diff --git a/library/psa_crypto.c b/library/psa_crypto.c
index d1960f7..17d7d1a 100644
--- a/library/psa_crypto.c
+++ b/library/psa_crypto.c
@@ -471,13 +471,13 @@
     if( slot->type == PSA_KEY_TYPE_NONE )
         return( PSA_ERROR_EMPTY_SLOT );
 
-    if( !( slot->policy.usage & PSA_KEY_USAGE_EXPORT ) )
-        return( PSA_ERROR_NOT_PERMITTED );
-
-    if( export_public_key && !( PSA_KEY_TYPE_IS_PUBLIC_KEY( slot->type ) ||
-                                PSA_KEY_TYPE_IS_KEYPAIR( slot->type ) ) )
+    if( export_public_key && ( !( PSA_KEY_TYPE_IS_ASYMMETRIC( slot->type ) ) ) )
         return( PSA_ERROR_INVALID_ARGUMENT );
 
+    if( ( !export_public_key ) && ( !( PSA_KEY_TYPE_IS_PUBLIC_KEY( slot->type ) ) ) &&
+        ( !( slot->policy.usage & PSA_KEY_USAGE_EXPORT ) ) )
+        return( PSA_ERROR_NOT_PERMITTED );
+    
     if( PSA_KEY_TYPE_IS_RAW_BYTES( slot->type ) )
     {
         if( slot->data.raw.bytes > data_size )
