24#ifndef PSA_CRYPTO_OPERATION_ENCODER_H
25#define PSA_CRYPTO_OPERATION_ENCODER_H
37#define PSA_INVALID_OPERATION (0xFF)
45 PSA_CBC_NO_PAD_AES_128,
46 PSA_CBC_NO_PAD_AES_192,
47 PSA_CBC_NO_PAD_AES_256,
80#define PSA_ENCODE_ECC_KEY_TYPE_SECPR1(bits) \
81 ((bits == 256) || (bits == 520) ? PSA_ECC_P256_R1 : \
82 (bits == 192) || (bits == 392) ? PSA_ECC_P192_R1 : \
83 PSA_INVALID_OPERATION)
93#define PSA_ENCODE_ECC_KEY_TYPE_EDWARDS(bits) \
94 ((bits == 255) || (bits == 256) ? PSA_ECC_ED25519 : \
95 PSA_INVALID_OPERATION)
106#define PSA_ENCODE_ECC_KEY_TYPE(bits, curve) \
107 ((curve == PSA_ECC_FAMILY_SECP_R1) ? PSA_ENCODE_ECC_KEY_TYPE_SECPR1(bits) : \
108 (curve == PSA_ECC_FAMILY_TWISTED_EDWARDS) ? PSA_ENCODE_ECC_KEY_TYPE_EDWARDS(bits) : \
109 PSA_INVALID_OPERATION)
120#define GET_CIPHER_OPERATION_128(alg, type) \
121 (((alg == PSA_ALG_CBC_NO_PADDING) && (type == PSA_KEY_TYPE_AES)) ? PSA_CBC_NO_PAD_AES_128 : \
122 PSA_INVALID_OPERATION)
133#define GET_CIPHER_OPERATION_192(alg, type) \
134 (((alg == PSA_ALG_CBC_NO_PADDING) && (type == PSA_KEY_TYPE_AES)) ? PSA_CBC_NO_PAD_AES_192 : \
135 PSA_INVALID_OPERATION)
146#define GET_CIPHER_OPERATION_256(alg, type) \
147 (((alg == PSA_ALG_CBC_NO_PADDING) && (type == PSA_KEY_TYPE_AES)) ? PSA_CBC_NO_PAD_AES_256 : \
148 ((alg == PSA_ALG_CBC_PKCS7) && (type == PSA_KEY_TYPE_AES)) ? PSA_CBC_PKCS7_AES_256 : \
149 PSA_INVALID_OPERATION)
161#define PSA_ENCODE_CIPHER_OPERATION(alg, bits, type) \
162 ((bits == 128) ? GET_CIPHER_OPERATION_128(alg, type) : \
163 (bits == 192) ? GET_CIPHER_OPERATION_192(alg, type) : \
164 (bits == 256) ? GET_CIPHER_OPERATION_256(alg, type) : \
165 PSA_INVALID_OPERATION)
Function declarations for PSA Crypto.
psa_cipher_op_t
Enum encoding available cipher operations.
psa_asym_key_t
Enum encoding available asymmetric key types and sizes.
PSA key slot management function declarations.