nrfx 3.3
Macros | Enumerations | Functions
AES ECB encryption HAL

Hardware access layer (HAL) for managing the Advanced Encryption Standard (AES) Electronic Codebook (ECB) peripheral. More...

Macros

#define NRF_ECB_HAS_TASK_STARTECB   1
 Presence of the STARTECB task.
 
#define NRF_ECB_HAS_TASK_START   1
 Presence of the START task.
 
#define NRF_ECB_HAS_TASK_STOPECB   1
 Presence of the STOPECB task.
 
#define NRF_ECB_HAS_TASK_STOP   1
 Presence of the STOP task.
 
#define NRF_ECB_HAS_EVENT_ENDECB   1
 Presence of the ENDECB event.
 
#define NRF_ECB_HAS_EVENT_END   1
 Presence of the END event.
 
#define NRF_ECB_HAS_EVENT_ERRORECB   1
 Presence of the ERRORECB event.
 
#define NRF_ECB_HAS_EVENT_ERROR   1
 Presence of the ERROR event.
 
#define NRF_ECB_HAS_KEY   1
 Presence of the KEY register.
 
#define NRF_ECB_HAS_IN_PTR   1
 Presence of the IN.PTR register.
 
#define NRF_ECB_HAS_IN_AMOUNT   1
 Presence of the IN.AMOUNT register.
 
#define NRF_ECB_HAS_OUT_PTR   1
 Presence of the OUT.PTR register.
 
#define NRF_ECB_HAS_OUT_AMOUNT   1
 Presence of the OUT.AMOUNT register.
 
#define NRF_ECB_HAS_ECBDATAPTR   1
 Presence of the ECBDATAPTR register.
 

Enumerations

enum  nrf_ecb_task_t {
  NRF_ECB_TASK_STARTECB = offsetof(NRF_ECB_Type, TASKS_STARTECB) ,
  NRF_ECB_TASK_START = offsetof(NRF_ECB_Type, TASKS_START) ,
  NRF_ECB_TASK_STOPECB = offsetof(NRF_ECB_Type, TASKS_STOPECB) ,
  NRF_ECB_TASK_STOP = offsetof(NRF_ECB_Type, TASKS_STOP)
}
 ECB tasks. More...
 
enum  nrf_ecb_event_t {
  NRF_ECB_EVENT_ENDECB = offsetof(NRF_ECB_Type, EVENTS_ENDECB) ,
  NRF_ECB_EVENT_ERRORECB = offsetof(NRF_ECB_Type, EVENTS_ERRORECB) ,
  NRF_ECB_EVENT_END = offsetof(NRF_ECB_Type, EVENTS_END) ,
  NRF_ECB_EVENT_ERROR = offsetof(NRF_ECB_Type, EVENTS_ERROR)
}
 ECB events. More...
 
enum  nrf_ecb_int_mask_t {
  NRF_ECB_INT_ENDECB_MASK = ECB_INTENSET_ENDECB_Msk ,
  NRF_ECB_INT_ERRORECB_MASK = ECB_INTENSET_ERRORECB_Msk ,
  NRF_ECB_INT_END_MASK = ECB_INTENSET_END_Msk ,
  NRF_ECB_INT_ERROR_MASK = ECB_INTENSET_ERROR_Msk
}
 ECB interrupts. More...
 

Functions

NRF_STATIC_INLINE void nrf_ecb_task_trigger (NRF_ECB_Type *p_reg, nrf_ecb_task_t task)
 Function for activating the specified ECB task.
 
NRF_STATIC_INLINE uint32_t nrf_ecb_task_address_get (NRF_ECB_Type const *p_reg, nrf_ecb_task_t task)
 Function for getting the address of the specified ECB task register.
 
NRF_STATIC_INLINE void nrf_ecb_event_clear (NRF_ECB_Type *p_reg, nrf_ecb_event_t event)
 Function for clearing the specified ECB event.
 
NRF_STATIC_INLINE bool nrf_ecb_event_check (NRF_ECB_Type const *p_reg, nrf_ecb_event_t event)
 Function for retrieving the state of the ECB event.
 
NRF_STATIC_INLINE uint32_t nrf_ecb_event_address_get (NRF_ECB_Type const *p_reg, nrf_ecb_event_t event)
 Function for getting the address of the specified ECB event register.
 
NRF_STATIC_INLINE void nrf_ecb_int_enable (NRF_ECB_Type *p_reg, uint32_t mask)
 Function for enabling the specified interrupts.
 
NRF_STATIC_INLINE void nrf_ecb_int_disable (NRF_ECB_Type *p_reg, uint32_t mask)
 Function for disabling the specified interrupts.
 
NRF_STATIC_INLINE uint32_t nrf_ecb_int_enable_check (NRF_ECB_Type const *p_reg, uint32_t mask)
 Function for checking if the specified interrupts are enabled.
 
NRF_STATIC_INLINE void nrf_ecb_data_pointer_set (NRF_ECB_Type *p_reg, void const *p_buffer)
 Function for setting the pointer to the ECB data buffer.
 
NRF_STATIC_INLINE void * nrf_ecb_data_pointer_get (NRF_ECB_Type const *p_reg)
 Function for getting the pointer to the ECB data buffer.
 
NRF_STATIC_INLINE void nrf_ecb_key_set (NRF_ECB_Type *p_reg, uint32_t const *p_key)
 Function for setting the AES key.
 
NRF_STATIC_INLINE void nrf_ecb_in_ptr_set (NRF_ECB_Type *p_reg, nrf_vdma_job_t const *p_job)
 Function for setting the pointer to a job list containing unencrypted ECB data structure in Encryption mode or encrypted ECB data structure in Decryption mode.
 
NRF_STATIC_INLINE nrf_vdma_job_tnrf_ecb_in_ptr_get (NRF_ECB_Type const *p_reg)
 Function for getting the pointer to job list containing unencrypted ECB data structure in Encryption mode or encrypted ECB data structure in Decryption mode.
 
NRF_STATIC_INLINE uint32_t nrf_ecb_in_amount_get (NRF_ECB_Type const *p_reg)
 Function for getting number of bytes read from the input data, not including the job list structure.
 
NRF_STATIC_INLINE void nrf_ecb_out_ptr_set (NRF_ECB_Type *p_reg, nrf_vdma_job_t const *p_job)
 Function for setting the pointer to a job list containing encrypted ECB data structure in Encryption mode or decrypted ECB data structure in Decryption mode.
 
NRF_STATIC_INLINE nrf_vdma_job_tnrf_ecb_out_ptr_get (NRF_ECB_Type const *p_reg)
 Function for getting the pointer to a job list containing encrypted ECB data structure in Encryption mode or decrypted ECB data structure in Decryption mode.
 
NRF_STATIC_INLINE uint32_t nrf_ecb_out_amount_get (NRF_ECB_Type const *p_reg)
 Function for getting number of bytes available in the output data, not including the job list structure.
 
NRF_STATIC_INLINE void nrf_ecb_subscribe_set (NRF_ECB_Type *p_reg, nrf_ecb_task_t task, uint8_t channel)
 Function for setting the subscribe configuration for a given ECB task.
 
NRF_STATIC_INLINE void nrf_ecb_subscribe_clear (NRF_ECB_Type *p_reg, nrf_ecb_task_t task)
 Function for clearing the subscribe configuration for a given ECB task.
 
NRF_STATIC_INLINE void nrf_ecb_publish_set (NRF_ECB_Type *p_reg, nrf_ecb_event_t event, uint8_t channel)
 Function for setting the publish configuration for a given ECB event.
 
NRF_STATIC_INLINE void nrf_ecb_publish_clear (NRF_ECB_Type *p_reg, nrf_ecb_event_t event)
 Function for clearing the publish configuration for a given ECB event.
 

Detailed Description

Hardware access layer (HAL) for managing the Advanced Encryption Standard (AES) Electronic Codebook (ECB) peripheral.

Enumeration Type Documentation

◆ nrf_ecb_event_t

ECB events.

Enumerator
NRF_ECB_EVENT_ENDECB 

ECB block encrypt complete.

NRF_ECB_EVENT_ERRORECB 

ECB block encrypt aborted because of a STOPECB task or due to an error.

NRF_ECB_EVENT_END 

ECB block encrypt complete.

NRF_ECB_EVENT_ERROR 

ECB block encrypt aborted because of a STOPECB task or due to an error.

◆ nrf_ecb_int_mask_t

ECB interrupts.

Enumerator
NRF_ECB_INT_ENDECB_MASK 

Interrupt on ENDECB event.

NRF_ECB_INT_ERRORECB_MASK 

Interrupt on ERRORECB event.

NRF_ECB_INT_END_MASK 

Interrupt on END event.

NRF_ECB_INT_ERROR_MASK 

Interrupt on ERROR event.

◆ nrf_ecb_task_t

ECB tasks.

Enumerator
NRF_ECB_TASK_STARTECB 

Task for starting the ECB block encryption.

NRF_ECB_TASK_START 

Task for starting the ECB block encryption.

NRF_ECB_TASK_STOPECB 

Task for stopping the ECB block encryption.

NRF_ECB_TASK_STOP 

Task for stopping the ECB block encryption.

Function Documentation

◆ nrf_ecb_data_pointer_get()

NRF_STATIC_INLINE void * nrf_ecb_data_pointer_get ( NRF_ECB_Type const *  p_reg)

Function for getting the pointer to the ECB data buffer.

Parameters
[in]p_regPointer to the structure of registers of the peripheral.
Returns
Pointer to the ECB data buffer.

◆ nrf_ecb_data_pointer_set()

NRF_STATIC_INLINE void nrf_ecb_data_pointer_set ( NRF_ECB_Type *  p_reg,
void const *  p_buffer 
)

Function for setting the pointer to the ECB data buffer.

Note
The buffer has to be placed in the Data RAM region. For description of the data structure in this buffer, see the Product Specification.
Parameters
[in]p_regPointer to the structure of registers of the peripheral.
[in]p_bufferPointer to the ECB data buffer.

◆ nrf_ecb_event_address_get()

NRF_STATIC_INLINE uint32_t nrf_ecb_event_address_get ( NRF_ECB_Type const *  p_reg,
nrf_ecb_event_t  event 
)

Function for getting the address of the specified ECB event register.

Parameters
[in]p_regPointer to the structure of registers of the peripheral.
[in]eventRequested event.
Returns
Address of the specified event register.

◆ nrf_ecb_event_check()

NRF_STATIC_INLINE bool nrf_ecb_event_check ( NRF_ECB_Type const *  p_reg,
nrf_ecb_event_t  event 
)

Function for retrieving the state of the ECB event.

Parameters
[in]p_regPointer to the structure of registers of the peripheral.
[in]eventEvent to be checked.
Return values
trueThe event has been generated.
falseThe event has not been generated.

◆ nrf_ecb_event_clear()

NRF_STATIC_INLINE void nrf_ecb_event_clear ( NRF_ECB_Type *  p_reg,
nrf_ecb_event_t  event 
)

Function for clearing the specified ECB event.

Parameters
[in]p_regPointer to the structure of registers of the peripheral.
[in]eventEvent to clear.

◆ nrf_ecb_in_amount_get()

NRF_STATIC_INLINE uint32_t nrf_ecb_in_amount_get ( NRF_ECB_Type const *  p_reg)

Function for getting number of bytes read from the input data, not including the job list structure.

Parameters
[in]p_regPointer to the structure of registers of the peripheral.
Returns
Number of bytes read from the input data.

◆ nrf_ecb_in_ptr_get()

NRF_STATIC_INLINE nrf_vdma_job_t * nrf_ecb_in_ptr_get ( NRF_ECB_Type const *  p_reg)

Function for getting the pointer to job list containing unencrypted ECB data structure in Encryption mode or encrypted ECB data structure in Decryption mode.

Parameters
[in]p_regPointer to the structure of registers of the peripheral.
Returns
Pointer to a job list.

◆ nrf_ecb_in_ptr_set()

NRF_STATIC_INLINE void nrf_ecb_in_ptr_set ( NRF_ECB_Type *  p_reg,
nrf_vdma_job_t const *  p_job 
)

Function for setting the pointer to a job list containing unencrypted ECB data structure in Encryption mode or encrypted ECB data structure in Decryption mode.

Parameters
[in]p_regPointer to the structure of registers of the peripheral.
[in]p_jobPointer to a job list.

◆ nrf_ecb_int_disable()

NRF_STATIC_INLINE void nrf_ecb_int_disable ( NRF_ECB_Type *  p_reg,
uint32_t  mask 
)

Function for disabling the specified interrupts.

Parameters
[in]p_regPointer to the structure of registers of the peripheral.
[in]maskMask of interrupts to be disabled. Use nrf_ecb_int_mask_t values for bit masking.

◆ nrf_ecb_int_enable()

NRF_STATIC_INLINE void nrf_ecb_int_enable ( NRF_ECB_Type *  p_reg,
uint32_t  mask 
)

Function for enabling the specified interrupts.

Parameters
[in]p_regPointer to the structure of registers of the peripheral.
[in]maskMask of interrupts to be enabled. Use nrf_ecb_int_mask_t values for bit masking.

◆ nrf_ecb_int_enable_check()

NRF_STATIC_INLINE uint32_t nrf_ecb_int_enable_check ( NRF_ECB_Type const *  p_reg,
uint32_t  mask 
)

Function for checking if the specified interrupts are enabled.

Parameters
[in]p_regPointer to the structure of registers of the peripheral.
[in]maskMask of interrupts to be checked. Use nrf_ecb_int_mask_t values for bit masking.
Returns
Mask of enabled interrupts.

◆ nrf_ecb_key_set()

NRF_STATIC_INLINE void nrf_ecb_key_set ( NRF_ECB_Type *  p_reg,
uint32_t const *  p_key 
)

Function for setting the AES key.

Parameters
[in]p_regPointer to the structure of registers of the peripheral.
[in]p_keyPointer to the AES 128-bit key value. The key shall be stored in big endian byte order.

◆ nrf_ecb_out_amount_get()

NRF_STATIC_INLINE uint32_t nrf_ecb_out_amount_get ( NRF_ECB_Type const *  p_reg)

Function for getting number of bytes available in the output data, not including the job list structure.

Parameters
[in]p_regPointer to the structure of registers of the peripheral.
Returns
Number of bytes available in the output data.

◆ nrf_ecb_out_ptr_get()

NRF_STATIC_INLINE nrf_vdma_job_t * nrf_ecb_out_ptr_get ( NRF_ECB_Type const *  p_reg)

Function for getting the pointer to a job list containing encrypted ECB data structure in Encryption mode or decrypted ECB data structure in Decryption mode.

Parameters
[in]p_regPointer to the structure of registers of the peripheral.
Returns
Pointer to the job list.

◆ nrf_ecb_out_ptr_set()

NRF_STATIC_INLINE void nrf_ecb_out_ptr_set ( NRF_ECB_Type *  p_reg,
nrf_vdma_job_t const *  p_job 
)

Function for setting the pointer to a job list containing encrypted ECB data structure in Encryption mode or decrypted ECB data structure in Decryption mode.

Parameters
[in]p_regPointer to the structure of registers of the peripheral.
[in]p_jobPointer to a job list.

◆ nrf_ecb_publish_clear()

NRF_STATIC_INLINE void nrf_ecb_publish_clear ( NRF_ECB_Type *  p_reg,
nrf_ecb_event_t  event 
)

Function for clearing the publish configuration for a given ECB event.

Parameters
[in]p_regPointer to the structure of registers of the peripheral.
[in]eventEvent for which to clear the configuration.

◆ nrf_ecb_publish_set()

NRF_STATIC_INLINE void nrf_ecb_publish_set ( NRF_ECB_Type *  p_reg,
nrf_ecb_event_t  event,
uint8_t  channel 
)

Function for setting the publish configuration for a given ECB event.

Parameters
[in]p_regPointer to the structure of registers of the peripheral.
[in]eventEvent for which to set the configuration.
[in]channelChannel through which to publish the event.

◆ nrf_ecb_subscribe_clear()

NRF_STATIC_INLINE void nrf_ecb_subscribe_clear ( NRF_ECB_Type *  p_reg,
nrf_ecb_task_t  task 
)

Function for clearing the subscribe configuration for a given ECB task.

Parameters
[in]p_regPointer to the structure of registers of the peripheral.
[in]taskTask for which to clear the configuration.

◆ nrf_ecb_subscribe_set()

NRF_STATIC_INLINE void nrf_ecb_subscribe_set ( NRF_ECB_Type *  p_reg,
nrf_ecb_task_t  task,
uint8_t  channel 
)

Function for setting the subscribe configuration for a given ECB task.

Parameters
[in]p_regPointer to the structure of registers of the peripheral.
[in]taskTask for which to set the configuration.
[in]channelChannel through which to subscribe events.

◆ nrf_ecb_task_address_get()

NRF_STATIC_INLINE uint32_t nrf_ecb_task_address_get ( NRF_ECB_Type const *  p_reg,
nrf_ecb_task_t  task 
)

Function for getting the address of the specified ECB task register.

Parameters
[in]p_regPointer to the structure of registers of the peripheral.
[in]taskRequested task.
Returns
Address of the specified task register.

◆ nrf_ecb_task_trigger()

NRF_STATIC_INLINE void nrf_ecb_task_trigger ( NRF_ECB_Type *  p_reg,
nrf_ecb_task_t  task 
)

Function for activating the specified ECB task.

Parameters
[in]p_regPointer to the structure of registers of the peripheral.
[in]taskTask to be activated.

Documentation feedback | Developer Zone | Subscribe | Updated