22 #ifndef TI_PSA_CRYPTO_AEAD_H 23 #define TI_PSA_CRYPTO_AEAD_H 28 #if ((TFM_ENABLED == 1) && !defined(TFM_BUILD)) 29 #include <third_party/tfm/interface/include/psa/crypto.h> 31 #include <third_party/mbedtls/include/psa/crypto.h> 34 #include <ti/devices/DeviceFamily.h> 35 #if ((DeviceFamily_PARENT == DeviceFamily_PARENT_CC27XX) || (DeviceFamily_PARENT == DeviceFamily_PARENT_CC35XX)) 38 #elif ((DeviceFamily_PARENT == DeviceFamily_PARENT_CC13X2_CC26X2) || \ 39 (DeviceFamily_PARENT == DeviceFamily_PARENT_CC13X4_CC26X3_CC26X4)) 40 #include <ti/drivers/aesccm/AESCCMCC26XX.h> 41 #include <ti/drivers/aesgcm/AESGCMCC26XX.h> 51 #if ((DeviceFamily_PARENT == DeviceFamily_PARENT_CC27XX) || (DeviceFamily_PARENT == DeviceFamily_PARENT_CC35XX)) 53 #elif ((DeviceFamily_PARENT == DeviceFamily_PARENT_CC13X2_CC26X2) || \ 54 (DeviceFamily_PARENT == DeviceFamily_PARENT_CC13X4_CC26X3_CC26X4)) 61 #if ((DeviceFamily_PARENT == DeviceFamily_PARENT_CC27XX) || (DeviceFamily_PARENT == DeviceFamily_PARENT_CC35XX)) 63 #elif ((DeviceFamily_PARENT == DeviceFamily_PARENT_CC13X2_CC26X2) || \ 64 (DeviceFamily_PARENT == DeviceFamily_PARENT_CC13X4_CC26X3_CC26X4)) 86 uint8_t
unprocessedData[PSA_BLOCK_CIPHER_BLOCK_MAX_SIZE * 2] __attribute__((aligned(4)));
88 uint8_t
unprocessedData[PSA_BLOCK_CIPHER_BLOCK_MAX_SIZE] __attribute__((aligned(4)));
103 #define TI_PSA_AEAD_OPERATION_INIT \ 104 (ti_psa_aead_operation_t) \ 120 mbedtls_svc_key_id_t key,
121 psa_algorithm_t alg);
124 mbedtls_svc_key_id_t key,
125 psa_algorithm_t alg);
129 size_t ciphertext_size,
130 size_t *ciphertext_length,
136 const uint8_t *input,
140 size_t *output_length);
142 psa_status_t
ti_psa_aead_update_ad(psa_aead_operation_t *psa_operation,
const uint8_t *input,
size_t input_length);
149 const uint8_t *nonce,
151 const uint8_t *additional_data,
152 size_t additional_data_length,
153 const uint8_t *plaintext,
154 size_t plaintext_length,
156 size_t ciphertext_size,
157 size_t *ciphertext_length);
161 const uint8_t *nonce,
163 const uint8_t *additional_data,
164 size_t additional_data_length,
165 const uint8_t *ciphertext,
166 size_t ciphertext_length,
168 size_t plaintext_size,
169 size_t *plaintext_length);
174 size_t *nonce_length);
176 psa_status_t
ti_psa_aead_set_lengths(psa_aead_operation_t *psa_operation,
size_t ad_length,
size_t plaintext_length);
178 psa_status_t
ti_psa_aead_set_nonce(psa_aead_operation_t *psa_operation,
const uint8_t *nonce,
size_t nonce_length);
182 size_t plaintext_size,
183 size_t *plaintext_length,
AESCCM driver implementation for the Low Power F3 family.
size_t adLength
Definition: ti_psa_crypto_aead.h:74
bool length_set
Definition: ti_psa_crypto_aead.h:98
The CryptoKey type is an opaque representation of a cryptographic key.
unsigned int id
Definition: ti_psa_crypto_aead.h:70
psa_status_t ti_psa_aead_generate_nonce(psa_aead_operation_t *psa_operation, uint8_t *nonce, size_t nonce_size, size_t *nonce_length)
psa_algorithm_t alg
Definition: ti_psa_crypto_aead.h:71
size_t unprocessed_len
Definition: ti_psa_crypto_aead.h:94
AESCCMXXF3 Object.
Definition: AESCCMXXF3.h:105
uint8_t * curr_unprocessed_data
Definition: ti_psa_crypto_aead.h:92
psa_status_t ti_psa_aead_set_nonce(psa_aead_operation_t *psa_operation, const uint8_t *nonce, size_t nonce_length)
size_t tagSize
Definition: ti_psa_crypto_aead.h:78
AES Global configuration.
Definition: AESCommon.h:154
CryptoKey datastructure.
Definition: CryptoKey.h:211
uint8_t unprocessedData[PSA_BLOCK_CIPHER_BLOCK_MAX_SIZE]
Definition: ti_psa_crypto_aead.h:88
psa_status_t ti_psa_aead_encrypt(mbedtls_svc_key_id_t key, psa_algorithm_t alg, const uint8_t *nonce, size_t nonce_length, const uint8_t *additional_data, size_t additional_data_length, const uint8_t *plaintext, size_t plaintext_length, uint8_t *ciphertext, size_t ciphertext_size, size_t *ciphertext_length)
psa_status_t ti_psa_aead_update_ad(psa_aead_operation_t *psa_operation, const uint8_t *input, size_t input_length)
psa_status_t ti_psa_aead_decrypt_setup(psa_aead_operation_t *psa_operation, mbedtls_svc_key_id_t key, psa_algorithm_t alg)
AESCCMXXF3_Object aesccmObject
Definition: ti_psa_crypto_aead.h:52
union ti_psa_aead_operation_s::@1 driver
size_t runningADLength
Definition: ti_psa_crypto_aead.h:76
psa_status_t ti_psa_aead_abort(psa_aead_operation_t *psa_operation)
AESGCMXXF3HSM Object.
Definition: AESGCMXXF3HSM.h:97
psa_status_t ti_psa_aead_update(psa_aead_operation_t *psa_operation, const uint8_t *input, size_t input_length, uint8_t *output, size_t output_size, size_t *output_length)
struct ti_psa_aead_operation_s::@1::@2 aesccm
psa_status_t ti_psa_aead_set_lengths(psa_aead_operation_t *psa_operation, size_t ad_length, size_t plaintext_length)
struct ti_psa_aead_operation_s::@1::@3 aesgcm
psa_status_t ti_psa_aead_finish(psa_aead_operation_t *psa_operation, uint8_t *ciphertext, size_t ciphertext_size, size_t *ciphertext_length, uint8_t *tag, size_t tag_size, size_t *tag_length)
Definition: ti_psa_crypto_aead.h:44
static struct ti_psa_aead_operation_s ti_psa_aead_operation_init(void)
Definition: ti_psa_crypto_aead.h:108
AESCCM_Config aesccmConfig
Definition: ti_psa_crypto_aead.h:50
CryptoKey cryptoKey
Definition: ti_psa_crypto_aead.h:96
size_t plaintextLength
Definition: ti_psa_crypto_aead.h:75
psa_status_t ti_psa_aead_verify(psa_aead_operation_t *psa_operation, uint8_t *plaintext, size_t plaintext_size, size_t *plaintext_length, const uint8_t *tag, size_t tag_length)
AESGCM_Config aesgcmConfig
Definition: ti_psa_crypto_aead.h:60
psa_status_t ti_psa_aead_encrypt_setup(psa_aead_operation_t *psa_operation, mbedtls_svc_key_id_t key, psa_algorithm_t alg)
#define TI_PSA_AEAD_OPERATION_INIT
Definition: ti_psa_crypto_aead.h:103
unsigned int in_error_state
Definition: ti_psa_crypto_aead.h:73
AESGCMXXF3HSM_Object aesgcmObject
Definition: ti_psa_crypto_aead.h:62
unsigned int iv_set
Definition: ti_psa_crypto_aead.h:72
psa_status_t ti_psa_aead_decrypt(mbedtls_svc_key_id_t key, psa_algorithm_t alg, const uint8_t *nonce, size_t nonce_length, const uint8_t *additional_data, size_t additional_data_length, const uint8_t *ciphertext, size_t ciphertext_length, uint8_t *plaintext, size_t plaintext_size, size_t *plaintext_length)
bool done_updating_ad
Definition: ti_psa_crypto_aead.h:97
AESGCM driver implementation for the Low Power F3 family.
size_t runningPlaintextLength
Definition: ti_psa_crypto_aead.h:77