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.