36 #define PSA_INVALID_OPERATION     (0xFF) 
   44     PSA_CBC_NO_PAD_AES_128,
 
   45     PSA_CBC_NO_PAD_AES_192,
 
   46     PSA_CBC_NO_PAD_AES_256,
 
   47     PSA_CBC_PKCS7_AES_256,
 
   48     PSA_STREAM_CIPHER_CHACHA20
 
   91 #define PSA_ENCODE_ECC_KEY_TYPE_SECPR1(bits) \ 
   92     ((bits == 256) || (bits == 520) ? PSA_ECC_P256_R1 : \ 
   93      (bits == 192) || (bits == 392) ? PSA_ECC_P192_R1 : \ 
   94      PSA_INVALID_OPERATION) 
  104 #define PSA_ENCODE_ECC_KEY_TYPE_EDWARDS(bits) \ 
  105     ((bits == 255) || (bits == 256) ? PSA_ECC_ED25519 : \ 
  106      PSA_INVALID_OPERATION) 
  117 #define PSA_ENCODE_ECC_KEY_TYPE(bits, curve) \ 
  118     ((curve == PSA_ECC_FAMILY_SECP_R1) ? PSA_ENCODE_ECC_KEY_TYPE_SECPR1(bits) : \ 
  119      (curve == PSA_ECC_FAMILY_TWISTED_EDWARDS) ? PSA_ENCODE_ECC_KEY_TYPE_EDWARDS(bits) : \ 
  120      PSA_INVALID_OPERATION) 
  131 #define GET_CBC_NO_PADDING_OPERATION(type, bits) \ 
  132     ((type == PSA_KEY_TYPE_AES) ? \ 
  133      ((bits == 128) ? PSA_CBC_NO_PAD_AES_128 : \ 
  134      (bits == 192) ? PSA_CBC_NO_PAD_AES_192 : \ 
  135      (bits == 256) ? PSA_CBC_NO_PAD_AES_256 : \ 
  136      PSA_INVALID_OPERATION) : \ 
  137      PSA_INVALID_OPERATION) 
  148 #define GET_AES_CCM_OPERATION(type, bits) \ 
  149     ((type == PSA_KEY_TYPE_AES) ? \ 
  150      ((bits == 128) ? PSA_CCM_AES_128 : \ 
  151      (bits == 192) ? PSA_CCM_AES_192 : \ 
  152      (bits == 256) ? PSA_CCM_AES_256 : \ 
  153      PSA_INVALID_OPERATION) : \ 
  154      PSA_INVALID_OPERATION) 
  165 #define GET_CBC_PKCS7_OPERATION(type, bits) \ 
  166     (((alg == PSA_ALG_CBC_PKCS7) && (type == PSA_KEY_TYPE_AES)) ? PSA_CBC_PKCS7_AES_256 : \ 
  167      PSA_INVALID_OPERATION) 
  178 #define GET_CFB_OPERATION(type, bits) \ 
  179     (PSA_INVALID_OPERATION) 
  190 #define GET_CTR_OPERATION(type, bits) \ 
  191     (PSA_INVALID_OPERATION) 
  202 #define GET_ECB_NO_PADDING_OPERATION(type, bits) \ 
  203     (PSA_INVALID_OPERATION) 
  214 #define GET_OFB_OPERATION(type, bits) \ 
  215     (PSA_INVALID_OPERATION) 
  226 #define GET_STREAM_CIPHER_OPERATION(type, bits) \ 
  227     (((type == PSA_KEY_TYPE_CHACHA20) && (bits == 256)) ? PSA_STREAM_CIPHER_CHACHA20 : \ 
  228      PSA_INVALID_OPERATION) 
  239 #define GET_XTS_OPERATION(type, bits) \ 
  240     (PSA_INVALID_OPERATION) 
  252 #define PSA_ENCODE_CIPHER_OPERATION(alg, type, bits) \ 
  253     ((alg == PSA_ALG_CBC_NO_PADDING) ? GET_CBC_NO_PADDING_OPERATION(type, bits) : \ 
  254      (alg == PSA_ALG_CBC_PKCS7) ? GET_CBC_PKCS7_OPERATION(type, bits) : \ 
  255      (alg == PSA_ALG_CFB) ? GET_CFB_OPERATION(type, bits) : \ 
  256      (alg == PSA_ALG_CTR) ? GET_CTR_OPERATION(type, bits) : \ 
  257      (alg == PSA_ALG_ECB_NO_PADDING) ? GET_ECB_NO_PADDING_OPERATION(type, bits) : \ 
  258      (alg == PSA_ALG_OFB) ? GET_OFB_OPERATION(type, bits) : \ 
  259      (alg == PSA_ALG_STREAM_CIPHER) ? GET_STREAM_CIPHER_OPERATION(type, bits) : \ 
  260      (alg == PSA_ALG_XTS) ? GET_XTS_OPERATION(type, bits) : \ 
  261      PSA_INVALID_OPERATION) 
  273 #define PSA_ENCODE_AEAD_OPERATION(alg, type, bits) \ 
  274     ((PSA_ALG_AEAD_WITH_DEFAULT_LENGTH_TAG(alg) == PSA_ALG_CCM) ? \ 
  275         GET_AES_CCM_OPERATION(type, bits) : PSA_INVALID_OPERATION) 
Function declarations for PSA Crypto.
 
psa_cipher_op_t
Enum encoding available cipher operations.
 
psa_aead_op_t
Enum encoding available aead operations.
 
psa_asym_key_t
Enum encoding available asymmetric key types and sizes.
 
PSA key slot management function declarations.