PSA key import: support RSA public keys

Use different key types for private keys and public keys.
diff --git a/include/psa/crypto.h b/include/psa/crypto.h
index 63f119d..7e61565 100644
--- a/include/psa/crypto.h
+++ b/include/psa/crypto.h
@@ -113,11 +113,15 @@
 
 #define PSA_KEY_TYPE_NONE                       0x00000000
 #define PSA_KEY_TYPE_RAW_DATA                   0x00000001
-#define PSA_KEY_TYPE_RSA                        0x40000001
+#define PSA_KEY_TYPE_RSA_PUBLIC_KEY             0x40000001
+#define PSA_KEY_TYPE_RSA_KEYPAIR                0x60000001
 #define PSA_KEY_TYPE_ECC_BASE                   0x40010000
 
 #define PSA_KEY_TYPE_VENDOR_FLAG                0x80000000
 #define PSA_KEY_TYPE_ASYMMETRIC_FLAG            0x40000000
+#define PSA_KEY_TYPE_ASYMMETRIC_MASK            0x60000000
+#define PSA_KEY_TYPE_ASYMMETRIC_MASK_PUBLIC     0x40000000
+#define PSA_KEY_TYPE_ASYMMETRIC_MASK_KEYPAIR    0x60000000
 #define PSA_KEY_TYPE_ECC_TEST_MASK              0x7fff0000
 #define PSA_KEY_TYPE_ECC_TEST_VALUE             0x40010000
 
@@ -125,7 +129,11 @@
     (((type) & PSA_KEY_TYPE_VENDOR_FLAG) != 0)
 #define PSA_KEY_TYPE_IS_ASYMMETRIC(type) \
     (((type) & PSA_KEY_TYPE_ASYMMETRIC_FLAG) != 0)
-#define PSA_KEY_TYPE_IS_ECC(type) \
+#define PSA_KEY_TYPE_IS_PUBLIC_KEY(type) \
+    (((type) & PSA_KEY_TYPE_ASYMMETRIC_MASK) == PSA_KEY_TYPE_ASYMMETRIC_MASK_PUBLIC)
+#define PSA_KEY_TYPE_IS_KEYPAIR(type) \
+    (((type) & PSA_KEY_TYPE_ASYMMETRIC_MASK) == PSA_KEY_TYPE_ASYMMETRIC_MASK_KEYPAIR)
+#define PSA_KEY_TYPE_IS_ECC(type)                                       \
     (((type) & PSA_KEY_TYPE_ECC_TEST_MASK) == PSA_KEY_TYPE_ECC_TEST_VALUE)
 
 typedef uint32_t psa_algorithm_type_t;