nrfxlib API 3.3.99
Loading...
Searching...
No Matches
cc3xx_psa_aead.h
Go to the documentation of this file.
1/*
2 * Copyright (c) 2021, Arm Limited. All rights reserved.
3 *
4 * SPDX-License-Identifier: BSD-3-Clause
5 *
6 */
7
8#ifndef CC3XX_PSA_AEAD_H
9#define CC3XX_PSA_AEAD_H
10
19#include "psa/crypto.h"
21
22#ifdef __cplusplus
23extern "C" {
24#endif
25
46psa_status_t
47cc3xx_aead_encrypt(const psa_key_attributes_t *attributes,
48 const uint8_t *key_buffer, size_t key_buffer_size,
49 psa_algorithm_t alg, const uint8_t *nonce,
50 size_t nonce_length, const uint8_t *additional_data,
51 size_t additional_data_length, const uint8_t *plaintext,
52 size_t plaintext_length, uint8_t *ciphertext,
53 size_t ciphertext_size, size_t *ciphertext_length);
54
75psa_status_t
76cc3xx_aead_decrypt(const psa_key_attributes_t *attributes,
77 const uint8_t *key_buffer, size_t key_buffer_size,
78 psa_algorithm_t alg, const uint8_t *nonce,
79 size_t nonce_length, const uint8_t *additional_data,
80 size_t additional_data_length, const uint8_t *ciphertext,
81 size_t ciphertext_length, uint8_t *plaintext,
82 size_t plaintext_size, size_t *plaintext_length);
83
101 cc3xx_aead_operation_t *operation,
102 const psa_key_attributes_t *attributes,
103 const uint8_t *key_buffer, size_t key_buffer_size,
104 psa_algorithm_t alg);
105
123 cc3xx_aead_operation_t *operation,
124 const psa_key_attributes_t *attributes,
125 const uint8_t *key_buffer, size_t key_buffer_size,
126 psa_algorithm_t alg);
127
143 cc3xx_aead_operation_t *operation,
144 const uint8_t *nonce,
145 size_t nonce_length);
146
160 cc3xx_aead_operation_t *operation,
161 size_t ad_length,
162 size_t plaintext_length);
163
178 cc3xx_aead_operation_t *operation,
179 const uint8_t *input,
180 size_t input_size);
181
198psa_status_t cc3xx_aead_update(
199 cc3xx_aead_operation_t *operation,
200 const uint8_t *input,
201 size_t input_length,
202 uint8_t *output,
203 size_t output_size,
204 size_t *output_length);
205
222psa_status_t cc3xx_aead_finish(
223 cc3xx_aead_operation_t *operation,
224 uint8_t *ciphertext,
225 size_t ciphertext_size,
226 size_t *ciphertext_length,
227 uint8_t *tag,
228 size_t tag_size,
229 size_t *tag_length);
230
246psa_status_t cc3xx_aead_verify(
247 cc3xx_aead_operation_t *operation,
248 uint8_t *plaintext,
249 size_t plaintext_size,
250 size_t *plaintext_length,
251 const uint8_t *tag,
252 size_t tag_size);
262
263#ifdef __cplusplus
264}
265#endif
266#endif /* CC3XX_PSA_AEAD_H */
psa_status_t cc3xx_aead_update_ad(cc3xx_aead_operation_t *operation, const uint8_t *input, size_t input_size)
Pass additional data to an active AEAD operation.
psa_status_t cc3xx_aead_encrypt_setup(cc3xx_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 the key for a multipart authenticated encryption operation.
psa_status_t cc3xx_aead_set_nonce(cc3xx_aead_operation_t *operation, const uint8_t *nonce, size_t nonce_length)
Set the nonce for an authenticated encryption or decryption operation.
psa_status_t cc3xx_aead_update(cc3xx_aead_operation_t *operation, const uint8_t *input, size_t input_length, uint8_t *output, size_t output_size, size_t *output_length)
Encrypt or decrypt a message fragment in an active AEAD operation.
psa_status_t cc3xx_aead_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)
Encrypt and authenticate with an AEAD algorithm in one-shot.
psa_status_t cc3xx_aead_verify(cc3xx_aead_operation_t *operation, uint8_t *plaintext, size_t plaintext_size, size_t *plaintext_length, const uint8_t *tag, size_t tag_size)
Finish decrypting a message in an AEAD operation.
psa_status_t cc3xx_aead_set_lengths(cc3xx_aead_operation_t *operation, size_t ad_length, size_t plaintext_length)
Declare the lengths of the message and additional data for AEAD.
psa_status_t cc3xx_aead_abort(cc3xx_aead_operation_t *operation)
Abort an AEAD operation.
psa_status_t cc3xx_aead_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)
Decrypt and verify tag with an AEAD algorithm in one-shot.
psa_status_t cc3xx_aead_decrypt_setup(cc3xx_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 the key for a multipart authenticated decryption operation.
psa_status_t cc3xx_aead_finish(cc3xx_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 encrypting a message in an AEAD operation.
Definition cc3xx_crypto_primitives_private.h:26