nRF Connect SDK API 3.3.99
Loading...
Searching...
No Matches
cracen_sw_aes_ccm.h
Go to the documentation of this file.
1/*
2 * Copyright (c) 2025 Nordic Semiconductor ASA
3 *
4 * SPDX-License-Identifier: LicenseRef-Nordic-5-Clause
5 */
6
22#ifndef CRACEN_SW_AES_CCM_H
23#define CRACEN_SW_AES_CCM_H
24
25#include <psa/crypto.h>
26#include <psa/crypto_values.h>
27#include <stdbool.h>
28#include <stdint.h>
30
45 const psa_key_attributes_t *attributes,
46 const uint8_t *key_buffer, size_t key_buffer_size,
47 psa_algorithm_t alg);
48
63 const psa_key_attributes_t *attributes,
64 const uint8_t *key_buffer, size_t key_buffer_size,
65 psa_algorithm_t alg);
66
78 size_t nonce_length);
79
92 size_t plaintext_length);
93
105 size_t input_length);
106
121 size_t input_length, uint8_t *output, size_t output_size,
122 size_t *output_length);
123
140 size_t ciphertext_size, size_t *ciphertext_length,
141 uint8_t *tag, size_t tag_size, size_t *tag_length);
142
158 size_t plaintext_size, size_t *plaintext_length,
159 const uint8_t *tag, size_t tag_length);
160
171
194psa_status_t cracen_sw_aes_ccm_encrypt(const psa_key_attributes_t *attributes,
195 const uint8_t *key_buffer, size_t key_buffer_size,
196 psa_algorithm_t alg, const uint8_t *nonce,
197 size_t nonce_length, const uint8_t *additional_data,
198 size_t additional_data_length, const uint8_t *plaintext,
199 size_t plaintext_length, uint8_t *ciphertext,
200 size_t ciphertext_size, size_t *ciphertext_length);
201
226psa_status_t cracen_sw_aes_ccm_decrypt(const psa_key_attributes_t *attributes,
227 const uint8_t *key_buffer, size_t key_buffer_size,
228 psa_algorithm_t alg, const uint8_t *nonce,
229 size_t nonce_length, const uint8_t *additional_data,
230 size_t additional_data_length, const uint8_t *ciphertext,
231 size_t ciphertext_length, uint8_t *plaintext,
232 size_t plaintext_size, size_t *plaintext_length);
233
238#endif /* CRACEN_SW_AES_CCM_H */
int32_t psa_status_t
Definition error.h:26
psa_status_t cracen_sw_aes_ccm_encrypt_setup(cracen_aead_operation_t *operation, const psa_key_attributes_t *attributes, const uint8_t *key_buffer, size_t key_buffer_size, psa_algorithm_t alg)
Set up the software AES-CCM encryption operation.
psa_status_t cracen_sw_aes_ccm_finish(cracen_aead_operation_t *operation, uint8_t *ciphertext, size_t ciphertext_size, size_t *ciphertext_length, uint8_t *tag, size_t tag_size, size_t *tag_length)
Finish the software AES-CCM encryption operation.
psa_status_t cracen_sw_aes_ccm_decrypt_setup(cracen_aead_operation_t *operation, const psa_key_attributes_t *attributes, const uint8_t *key_buffer, size_t key_buffer_size, psa_algorithm_t alg)
Set up the software AES-CCM decryption operation.
psa_status_t cracen_sw_aes_ccm_update(cracen_aead_operation_t *operation, const uint8_t *input, size_t input_length, uint8_t *output, size_t output_size, size_t *output_length)
Update the software AES-CCM operation with new data.
psa_status_t cracen_sw_aes_ccm_abort(cracen_aead_operation_t *operation)
Abort the software AES-CCM operation.
psa_status_t cracen_sw_aes_ccm_encrypt(const psa_key_attributes_t *attributes, const uint8_t *key_buffer, size_t key_buffer_size, 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)
Perform a single-part software AES-CCM encryption.
psa_status_t cracen_sw_aes_ccm_set_nonce(cracen_aead_operation_t *operation, const uint8_t *nonce, size_t nonce_length)
Set nonce for the software AES-CCM operation.
psa_status_t cracen_sw_aes_ccm_update_ad(cracen_aead_operation_t *operation, const uint8_t *input, size_t input_length)
Update the software AES-CCM operation with additional data.
psa_status_t cracen_sw_aes_ccm_decrypt(const psa_key_attributes_t *attributes, const uint8_t *key_buffer, size_t key_buffer_size, 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)
Perform a single-part software AES-CCM decryption.
psa_status_t cracen_sw_aes_ccm_set_lengths(cracen_aead_operation_t *operation, size_t ad_length, size_t plaintext_length)
Set lengths for the software AES-CCM operation.
psa_status_t cracen_sw_aes_ccm_verify(cracen_aead_operation_t *operation, uint8_t *plaintext, size_t plaintext_size, size_t *plaintext_length, const uint8_t *tag, size_t tag_length)
Verify the tag and finish the software AES-CCM decryption operation.
Definition cracen_psa_primitives.h:344