nRF5 SDK v17.1.0
Data Structures | Enumerations | Functions
AES CCM HAL

Hardware access layer for managing the AES CCM peripheral. More...

Data Structures

struct  nrf_ccm_config_t
 CCM configuration. More...
 

Enumerations

enum  nrf_ccm_task_t {
  NRF_CCM_TASK_KSGEN = offsetof(NRF_CCM_Type, TASKS_KSGEN),
  NRF_CCM_TASK_CRYPT = offsetof(NRF_CCM_Type, TASKS_CRYPT),
  NRF_CCM_TASK_STOP = offsetof(NRF_CCM_Type, TASKS_STOP),
  NRF_CCM_TASK_RATEOVERRIDE = offsetof(NRF_CCM_Type, TASKS_RATEOVERRIDE)
}
 CCM tasks. More...
 
enum  nrf_ccm_event_t {
  NRF_CCM_EVENT_ENDKSGEN = offsetof(NRF_CCM_Type, EVENTS_ENDKSGEN),
  NRF_CCM_EVENT_ENDCRYPT = offsetof(NRF_CCM_Type, EVENTS_ENDCRYPT),
  NRF_CCM_EVENT_ERROR = offsetof(NRF_CCM_Type, EVENTS_ERROR)
}
 CCM events. More...
 
enum  nrf_ccm_int_mask_t {
  NRF_CCM_INT_ENDKSGEN_MASK = CCM_INTENSET_ENDKSGEN_Msk,
  NRF_CCM_INT_ENDCRYPT_MASK = CCM_INTENSET_ENDCRYPT_Msk,
  NRF_CCM_INT_ERROR_MASK = CCM_INTENSET_ERROR_Msk
}
 CCM interrupts. More...
 
enum  nrf_ccm_mode_t {
  NRF_CCM_MODE_ENCRYPTION = CCM_MODE_MODE_Encryption,
  NRF_CCM_MODE_DECRYPTION = CCM_MODE_MODE_Decryption
}
 CCM modes of operation. More...
 
enum  nrf_ccm_datarate_t {
  NRF_CCM_DATARATE_1M = CCM_MODE_DATARATE_1Mbit,
  NRF_CCM_DATARATE_2M = CCM_MODE_DATARATE_2Mbit,
  NRF_CCM_DATARATE_125K = CCM_MODE_DATARATE_125Kbps,
  NRF_CCM_DATARATE_500K = CCM_MODE_DATARATE_500Kbps
}
 CCM data rates. More...
 
enum  nrf_ccm_length_t {
  NRF_CCM_LENGTH_DEFAULT = CCM_MODE_LENGTH_Default,
  NRF_CCM_LENGTH_EXTENDED = CCM_MODE_LENGTH_Extended
}
 CCM packet length options. More...
 

Functions

__STATIC_INLINE void nrf_ccm_task_trigger (NRF_CCM_Type *p_reg, nrf_ccm_task_t task)
 Function for activating a specific CCM task. More...
 
__STATIC_INLINE uint32_t nrf_ccm_task_address_get (NRF_CCM_Type const *p_reg, nrf_ccm_task_t task)
 Function for getting the address of a specific CCM task register. More...
 
__STATIC_INLINE void nrf_ccm_event_clear (NRF_CCM_Type *p_reg, nrf_ccm_event_t event)
 Function for clearing a specific CCM event. More...
 
__STATIC_INLINE bool nrf_ccm_event_check (NRF_CCM_Type const *p_reg, nrf_ccm_event_t event)
 Function for retrieving the state of a specific CCM event. More...
 
__STATIC_INLINE uint32_t nrf_ccm_event_address_get (NRF_CCM_Type const *p_reg, nrf_ccm_event_t event)
 Function for getting the address of a specific CCM event register. More...
 
__STATIC_INLINE void nrf_ccm_int_enable (NRF_CCM_Type *p_reg, uint32_t mask)
 Function for enabling specified interrupts. More...
 
__STATIC_INLINE void nrf_ccm_int_disable (NRF_CCM_Type *p_reg, uint32_t mask)
 Function for disabling specified interrupts. More...
 
__STATIC_INLINE bool nrf_ccm_int_enable_check (NRF_CCM_Type const *p_reg, nrf_ccm_int_mask_t ccm_int)
 Function for retrieving the state of a given interrupt. More...
 
__STATIC_INLINE void nrf_ccm_enable (NRF_CCM_Type *p_reg)
 Function for enabling the CCM peripheral. More...
 
__STATIC_INLINE void nrf_ccm_disable (NRF_CCM_Type *p_reg)
 Function for disabling the CCM peripheral. More...
 
__STATIC_INLINE void nrf_ccm_configure (NRF_CCM_Type *p_reg, nrf_ccm_config_t const *p_config)
 Function for setting the CCM peripheral configuration. More...
 
__STATIC_INLINE void nrf_ccm_maxpacketsize_set (NRF_CCM_Type *p_reg, uint8_t size)
 Function for setting the length of key-stream generated when the packet length is configured as extended. More...
 
__STATIC_INLINE bool nrf_ccm_micstatus_get (NRF_CCM_Type const *p_reg)
 Function for getting the MIC check result. More...
 
__STATIC_INLINE void nrf_ccm_cnfptr_set (NRF_CCM_Type *p_reg, uint32_t const *p_data)
 Function for setting the pointer to the data structure holding the AES key and the CCM NONCE vector. More...
 
__STATIC_INLINE uint32_t * nrf_ccm_cnfptr_get (NRF_CCM_Type const *p_reg)
 Function for getting the pointer to the data structure holding the AES key and the CCM NONCE vector. More...
 
__STATIC_INLINE void nrf_ccm_inptr_set (NRF_CCM_Type *p_reg, uint32_t const *p_data)
 Function for setting the input data pointer. More...
 
__STATIC_INLINE uint32_t * nrf_ccm_inptr_get (NRF_CCM_Type const *p_reg)
 Function for getting the input data pointer. More...
 
__STATIC_INLINE void nrf_ccm_outptr_set (NRF_CCM_Type *p_reg, uint32_t const *p_data)
 Function for setting the output data pointer. More...
 
__STATIC_INLINE uint32_t * nrf_ccm_outptr_get (NRF_CCM_Type const *p_reg)
 Function for getting the output data pointer. More...
 
__STATIC_INLINE void nrf_ccm_scratchptr_set (NRF_CCM_Type *p_reg, uint32_t const *p_area)
 Function for setting the pointer to the scratch area used for temporary storage. More...
 
__STATIC_INLINE uint32_t * nrf_ccm_stratchptr_get (NRF_CCM_Type const *p_reg)
 Function for getting the pointer to the scratch area. More...
 
__STATIC_INLINE void nrf_ccm_datarate_override_set (NRF_CCM_Type *p_reg, nrf_ccm_datarate_t datarate)
 Function for setting the data rate override value. More...
 

Detailed Description

Hardware access layer for managing the AES CCM peripheral.

Enumeration Type Documentation

CCM data rates.

Enumerator
NRF_CCM_DATARATE_1M 

1 Mbps.

NRF_CCM_DATARATE_2M 

2 Mbps.

NRF_CCM_DATARATE_125K 

125 Kbps.

NRF_CCM_DATARATE_500K 

500 Kbps.

CCM events.

Enumerator
NRF_CCM_EVENT_ENDKSGEN 

Keystream generation complete.

NRF_CCM_EVENT_ENDCRYPT 

Encrypt/decrypt complete.

NRF_CCM_EVENT_ERROR 

CCM error event.

CCM interrupts.

Enumerator
NRF_CCM_INT_ENDKSGEN_MASK 

Interrupt on ENDKSGEN event.

NRF_CCM_INT_ENDCRYPT_MASK 

Interrupt on ENDCRYPT event.

NRF_CCM_INT_ERROR_MASK 

Interrupt on ERROR event.

CCM packet length options.

Enumerator
NRF_CCM_LENGTH_DEFAULT 

Default length.

NRF_CCM_LENGTH_EXTENDED 

Extended length.

CCM modes of operation.

Enumerator
NRF_CCM_MODE_ENCRYPTION 

Encryption mode.

NRF_CCM_MODE_DECRYPTION 

Decryption mode.

CCM tasks.

Enumerator
NRF_CCM_TASK_KSGEN 

Start generation of key-stream.

NRF_CCM_TASK_CRYPT 

Start encryption/decryption.

NRF_CCM_TASK_STOP 

Stop encryption/decryption.

NRF_CCM_TASK_RATEOVERRIDE 

Override DATARATE setting in MODE register.

Function Documentation

__STATIC_INLINE uint32_t* nrf_ccm_cnfptr_get ( NRF_CCM_Type const *  p_reg)

Function for getting the pointer to the data structure holding the AES key and the CCM NONCE vector.

Parameters
[in]p_regPointer to the structure of registers of the peripheral.
Returns
Pointer to the data structure.
__STATIC_INLINE void nrf_ccm_cnfptr_set ( NRF_CCM_Type *  p_reg,
uint32_t const *  p_data 
)

Function for setting the pointer to the data structure holding the AES key and the CCM NONCE vector.

Parameters
[in]p_regPointer to the structure of registers of the peripheral.
[in]p_dataPointer to the data structure.
__STATIC_INLINE void nrf_ccm_configure ( NRF_CCM_Type *  p_reg,
nrf_ccm_config_t const *  p_config 
)

Function for setting the CCM peripheral configuration.

Parameters
[in]p_regPointer to the structure of registers of the peripheral.
[in]p_configPointer to the structure with configuration to be set.
__STATIC_INLINE void nrf_ccm_datarate_override_set ( NRF_CCM_Type *  p_reg,
nrf_ccm_datarate_t  datarate 
)

Function for setting the data rate override value.

Parameters
[in]p_regPointer to the structure of registers of the peripheral.
[in]datarateOverride value to be applied when the RATEOVERRIDE task is triggered.
__STATIC_INLINE void nrf_ccm_disable ( NRF_CCM_Type *  p_reg)

Function for disabling the CCM peripheral.

Parameters
[in]p_regPointer to the structure of registers of the peripheral.
__STATIC_INLINE void nrf_ccm_enable ( NRF_CCM_Type *  p_reg)

Function for enabling the CCM peripheral.

Parameters
[in]p_regPointer to the structure of registers of the peripheral.
__STATIC_INLINE uint32_t nrf_ccm_event_address_get ( NRF_CCM_Type const *  p_reg,
nrf_ccm_event_t  event 
)

Function for getting the address of a specific CCM event register.

Parameters
[in]p_regPointer to the structure of registers of the peripheral.
[in]eventRequested event.
Returns
Address of the specified event register.
__STATIC_INLINE bool nrf_ccm_event_check ( NRF_CCM_Type const *  p_reg,
nrf_ccm_event_t  event 
)

Function for retrieving the state of a specific CCM 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.
__STATIC_INLINE void nrf_ccm_event_clear ( NRF_CCM_Type *  p_reg,
nrf_ccm_event_t  event 
)

Function for clearing a specific CCM event.

Parameters
[in]p_regPointer to the structure of registers of the peripheral.
[in]eventEvent to clear.
__STATIC_INLINE uint32_t* nrf_ccm_inptr_get ( NRF_CCM_Type const *  p_reg)

Function for getting the input data pointer.

Parameters
[in]p_regPointer to the structure of registers of the peripheral.
Returns
Input data pointer.
__STATIC_INLINE void nrf_ccm_inptr_set ( NRF_CCM_Type *  p_reg,
uint32_t const *  p_data 
)

Function for setting the input data pointer.

Parameters
[in]p_regPointer to the structure of registers of the peripheral.
[in]p_dataInput data pointer.
__STATIC_INLINE void nrf_ccm_int_disable ( NRF_CCM_Type *  p_reg,
uint32_t  mask 
)

Function for disabling specified interrupts.

Parameters
[in]p_regPointer to the structure of registers of the peripheral.
[in]maskInterrupts to be disabled.
__STATIC_INLINE void nrf_ccm_int_enable ( NRF_CCM_Type *  p_reg,
uint32_t  mask 
)

Function for enabling specified interrupts.

Parameters
[in]p_regPointer to the structure of registers of the peripheral.
[in]maskInterrupts to be enabled.
__STATIC_INLINE bool nrf_ccm_int_enable_check ( NRF_CCM_Type const *  p_reg,
nrf_ccm_int_mask_t  ccm_int 
)

Function for retrieving the state of a given interrupt.

Parameters
[in]p_regPointer to the structure of registers of the peripheral.
[in]ccm_intInterrupt to be checked.
Return values
trueThe interrupt is enabled.
falseThe interrupt is not enabled.
__STATIC_INLINE void nrf_ccm_maxpacketsize_set ( NRF_CCM_Type *  p_reg,
uint8_t  size 
)

Function for setting the length of key-stream generated when the packet length is configured as extended.

Parameters
[in]p_regPointer to the structure of registers of the peripheral.
[in]sizeMaximum length of the key-stream.
__STATIC_INLINE bool nrf_ccm_micstatus_get ( NRF_CCM_Type const *  p_reg)

Function for getting the MIC check result.

Parameters
[in]p_regPointer to the structure of registers of the peripheral.
Return values
trueThe MIC check passed.
falseThe MIC check failed.
__STATIC_INLINE uint32_t* nrf_ccm_outptr_get ( NRF_CCM_Type const *  p_reg)

Function for getting the output data pointer.

Parameters
[in]p_regPointer to the structure of registers of the peripheral.
Returns
Output data pointer.
__STATIC_INLINE void nrf_ccm_outptr_set ( NRF_CCM_Type *  p_reg,
uint32_t const *  p_data 
)

Function for setting the output data pointer.

Parameters
[in]p_regPointer to the structure of registers of the peripheral.
[in]p_dataOutput data pointer.
__STATIC_INLINE void nrf_ccm_scratchptr_set ( NRF_CCM_Type *  p_reg,
uint32_t const *  p_area 
)

Function for setting the pointer to the scratch area used for temporary storage.

Parameters
[in]p_regPointer to the structure of registers of the peripheral.
[in]p_areaPointer to the scratch area.
__STATIC_INLINE uint32_t* nrf_ccm_stratchptr_get ( NRF_CCM_Type const *  p_reg)

Function for getting the pointer to the scratch area.

Parameters
[in]p_regPointer to the structure of registers of the peripheral.
Returns
Pointer to the scratch area.
__STATIC_INLINE uint32_t nrf_ccm_task_address_get ( NRF_CCM_Type const *  p_reg,
nrf_ccm_task_t  task 
)

Function for getting the address of a specific CCM task register.

Parameters
[in]p_regPointer to the structure of registers of the peripheral.
[in]taskRequested task.
Returns
Address of the specified task register.
__STATIC_INLINE void nrf_ccm_task_trigger ( NRF_CCM_Type *  p_reg,
nrf_ccm_task_t  task 
)

Function for activating a specific CCM task.

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

Documentation feedback | Developer Zone | Subscribe | Updated