123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147 |
- #ifndef NRF_CRYPTO_AEAD_SHARED_H__
- #define NRF_CRYPTO_AEAD_SHARED_H__
- #include <stdint.h>
- #include "nrf_crypto_types.h"
- #ifdef __cplusplus
- extern "C" {
- #endif
- #define NRF_CRYPTO_AEAD_INIT_MAGIC_VALUE (0x44414541)
- #define NRF_CRYPTO_AES_CCM_STAR_MAC_BITMASK (0x1C)
- #define NRF_CRYPTO_AES_CCM_MAC_MIN (4u)
- #define NRF_CRYPTO_AES_CCM_MAC_MAX (16u)
- #define NRF_CRYPTO_AES_GCM_MAC_MIN (4u)
- #define NRF_CRYPTO_AES_GCM_MAC_MAX (16u)
- #define NRF_CRYPTO_AES_CCM_NONCE_SIZE_MIN (7u)
- #define NRF_CRYPTO_AES_CCM_NONCE_SIZE_MAX (13u)
- #define NRF_CRYPTO_AES_CCM_STAR_NONCE_SIZE (13u)
- #define NRF_CRYPTO_CHACHA_POLY_NONCE_SIZE (12u)
- #define NRF_CRYPTO_CHACHA_POLY_MAC_SIZE (16u)
- typedef enum
- {
- NRF_CRYPTO_AEAD_MODE_AES_CCM,
- NRF_CRYPTO_AEAD_MODE_AES_CCM_STAR,
- NRF_CRYPTO_AEAD_MODE_AES_EAX,
- NRF_CRYPTO_AEAD_MODE_AES_GCM,
- NRF_CRYPTO_AEAD_MODE_CHACHA_POLY
- } nrf_crypto_aead_mode_t;
- typedef ret_code_t (*aead_init_fn_t)(void * const p_context, uint8_t * p_key);
- typedef ret_code_t (*aead_uninit_fn_t)(void * const p_context);
- typedef ret_code_t (*aead_crypt_fn_t)(void * const p_context,
- nrf_crypto_operation_t operation,
- uint8_t * p_nonce,
- uint8_t nonce_size,
- uint8_t * p_adata,
- size_t adata_size,
- uint8_t * p_data_in,
- size_t data_in_size,
- uint8_t * p_data_out,
- uint8_t * p_mac,
- uint8_t mac_size);
- typedef struct
- {
- nrf_crypto_aead_mode_t const mode;
- nrf_crypto_key_size_id_t const key_size;
- aead_init_fn_t const init_fn;
- aead_uninit_fn_t const uninit_fn;
- aead_crypt_fn_t const crypt_fn;
- } nrf_crypto_aead_info_t;
- typedef struct
- {
- uint32_t init_value;
- nrf_crypto_aead_info_t const * p_info;
- } nrf_crypto_aead_internal_context_t;
- #ifdef __cplusplus
- }
- #endif
- #endif
|