CCM HAL
- group nrf_ccm_hal
Hardware access layer for managing the AES CCM peripheral.
Enums
-
enum nrf_ccm_task_t
CCM tasks.
Values:
-
enumerator NRF_CCM_TASK_KSGEN
Start generation of key-stream.
-
enumerator NRF_CCM_TASK_CRYPT
Start encryption/decryption.
-
enumerator NRF_CCM_TASK_STOP
Stop encryption/decryption.
-
enumerator NRF_CCM_TASK_RATEOVERRIDE
Override DATARATE setting in MODE register.
-
enumerator NRF_CCM_TASK_KSGEN
-
enum nrf_ccm_event_t
CCM events.
Values:
-
enumerator NRF_CCM_EVENT_ENDKSGEN
Keystream generation complete.
-
enumerator NRF_CCM_EVENT_ENDCRYPT
Encrypt/decrypt complete.
-
enumerator NRF_CCM_EVENT_ERROR
CCM error event.
-
enumerator NRF_CCM_EVENT_ENDKSGEN
-
enum nrf_ccm_short_mask_t
Types of CCM shorts.
Values:
-
enumerator NRF_CCM_SHORT_ENDKSGEN_CRYPT_MASK
Shortcut for starting encryption/decryption when the key-stream generation is complete.
-
enumerator NRF_CCM_SHORT_ENDKSGEN_CRYPT_MASK
-
enum nrf_ccm_int_mask_t
CCM interrupts.
Values:
-
enumerator NRF_CCM_INT_ENDKSGEN_MASK
Interrupt on ENDKSGEN event.
-
enumerator NRF_CCM_INT_ENDCRYPT_MASK
Interrupt on ENDCRYPT event.
-
enumerator NRF_CCM_INT_ERROR_MASK
Interrupt on ERROR event.
-
enumerator NRF_CCM_INT_ENDKSGEN_MASK
-
enum nrf_ccm_mode_t
CCM modes of operation.
Values:
-
enumerator NRF_CCM_MODE_ENCRYPTION
Encryption mode.
-
enumerator NRF_CCM_MODE_DECRYPTION
Decryption mode.
-
enumerator NRF_CCM_MODE_ENCRYPTION
Functions
-
NRF_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
p_reg – [in] Pointer to the structure of registers of the peripheral.
task – [in] Task to be activated.
-
NRF_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
p_reg – [in] Pointer to the structure of registers of the peripheral.
task – [in] Requested task.
- Returns
Address of the specified task register.
-
NRF_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
p_reg – [in] Pointer to the structure of registers of the peripheral.
event – [in] Event to clear.
-
NRF_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
p_reg – [in] Pointer to the structure of registers of the peripheral.
event – [in] Event to be checked.
- Return values
true – The event has been generated.
false – The event has not been generated.
-
NRF_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
p_reg – [in] Pointer to the structure of registers of the peripheral.
event – [in] Requested event.
- Returns
Address of the specified event register.
-
NRF_STATIC_INLINE void nrf_ccm_shorts_enable(NRF_CCM_Type *p_reg, uint32_t mask)
Function for enabling the specified shortcuts.
- Parameters
p_reg – [in] Pointer to the structure of registers of the peripheral.
mask – [in] Shortcuts to be enabled.
-
NRF_STATIC_INLINE void nrf_ccm_shorts_disable(NRF_CCM_Type *p_reg, uint32_t mask)
Function for disabling the specified shortcuts.
- Parameters
p_reg – [in] Pointer to the structure of registers of the peripheral.
mask – [in] Shortcuts to be disabled.
-
NRF_STATIC_INLINE void nrf_ccm_shorts_set(NRF_CCM_Type *p_reg, uint32_t mask)
Function for setting the specified shortcuts.
- Parameters
p_reg – [in] Pointer to the structure of registers of the peripheral.
mask – [in] Shortcuts to be set.
-
NRF_STATIC_INLINE void nrf_ccm_int_enable(NRF_CCM_Type *p_reg, uint32_t mask)
Function for enabling specified interrupts.
- Parameters
p_reg – [in] Pointer to the structure of registers of the peripheral.
mask – [in] Interrupts to be enabled.
-
NRF_STATIC_INLINE void nrf_ccm_int_disable(NRF_CCM_Type *p_reg, uint32_t mask)
Function for disabling specified interrupts.
- Parameters
p_reg – [in] Pointer to the structure of registers of the peripheral.
mask – [in] Interrupts to be disabled.
-
NRF_STATIC_INLINE uint32_t nrf_ccm_int_enable_check(NRF_CCM_Type const *p_reg, uint32_t mask)
Function for checking if the specified interrupts are enabled.
- Parameters
p_reg – [in] Pointer to the structure of registers of the peripheral.
mask – [in] Mask of interrupts to be checked.
- Returns
Mask of enabled interrupts.
-
NRF_STATIC_INLINE void nrf_ccm_enable(NRF_CCM_Type *p_reg)
Function for enabling the CCM peripheral.
- Parameters
p_reg – [in] Pointer to the structure of registers of the peripheral.
-
NRF_STATIC_INLINE void nrf_ccm_disable(NRF_CCM_Type *p_reg)
Function for disabling the CCM peripheral.
- Parameters
p_reg – [in] Pointer to the structure of registers of the peripheral.
-
NRF_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
p_reg – [in] Pointer to the structure of registers of the peripheral.
p_config – [in] Pointer to the structure with configuration to be set.
-
NRF_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
p_reg – [in] Pointer to the structure of registers of the peripheral.
size – [in] Maximum length of the key-stream.
-
NRF_STATIC_INLINE bool nrf_ccm_micstatus_get(NRF_CCM_Type const *p_reg)
Function for getting the MIC check result.
- Parameters
p_reg – [in] Pointer to the structure of registers of the peripheral.
- Return values
true – The MIC check passed.
false – The MIC check failed.
-
NRF_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
p_reg – [in] Pointer to the structure of registers of the peripheral.
p_data – [in] Pointer to the data structure.
-
NRF_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
p_reg – [in] Pointer to the structure of registers of the peripheral.
- Returns
Pointer to the data structure.
-
NRF_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
p_reg – [in] Pointer to the structure of registers of the peripheral.
p_data – [in] Input data pointer.
-
NRF_STATIC_INLINE uint32_t *nrf_ccm_inptr_get(NRF_CCM_Type const *p_reg)
Function for getting the input data pointer.
- Parameters
p_reg – [in] Pointer to the structure of registers of the peripheral.
- Returns
Input data pointer.
-
NRF_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
p_reg – [in] Pointer to the structure of registers of the peripheral.
p_data – [in] Output data pointer.
-
NRF_STATIC_INLINE uint32_t *nrf_ccm_outptr_get(NRF_CCM_Type const *p_reg)
Function for getting the output data pointer.
- Parameters
p_reg – [in] Pointer to the structure of registers of the peripheral.
- Returns
Output data pointer.
-
NRF_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
p_reg – [in] Pointer to the structure of registers of the peripheral.
p_area – [in] Pointer to the scratch area.
-
NRF_STATIC_INLINE uint32_t *nrf_ccm_stratchptr_get(NRF_CCM_Type const *p_reg)
Function for getting the pointer to the scratch area.
- Parameters
p_reg – [in] Pointer to the structure of registers of the peripheral.
- Returns
Pointer to the scratch area.
-
NRF_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
p_reg – [in] Pointer to the structure of registers of the peripheral.
datarate – [in] Override value to be applied when the RATEOVERRIDE task is triggered.
-
NRF_STATIC_INLINE void nrf_ccm_subscribe_set(NRF_CCM_Type *p_reg, nrf_ccm_task_t task, uint8_t channel)
Function for setting the subscribe configuration for a given CCM task.
- Parameters
p_reg – [in] Pointer to the structure of registers of the peripheral.
task – [in] Task for which to set the configuration.
channel – [in] Channel through which to subscribe events.
-
NRF_STATIC_INLINE void nrf_ccm_subscribe_clear(NRF_CCM_Type *p_reg, nrf_ccm_task_t task)
Function for clearing the subscribe configuration for a given CCM task.
- Parameters
p_reg – [in] Pointer to the structure of registers of the peripheral.
task – [in] Task for which to clear the configuration.
-
NRF_STATIC_INLINE void nrf_ccm_publish_set(NRF_CCM_Type *p_reg, nrf_ccm_event_t event, uint8_t channel)
Function for setting the publish configuration for a given CCM event.
- Parameters
p_reg – [in] Pointer to the structure of registers of the peripheral.
event – [in] Event for which to set the configuration.
channel – [in] Channel through which to publish the event.
-
NRF_STATIC_INLINE void nrf_ccm_publish_clear(NRF_CCM_Type *p_reg, nrf_ccm_event_t event)
Function for clearing the publish configuration for a given CCM event.
- Parameters
p_reg – [in] Pointer to the structure of registers of the peripheral.
event – [in] Event for which to clear the configuration.
-
struct nrf_ccm_config_t
- #include <>
CCM configuration.
Public Members
-
nrf_ccm_mode_t mode
Operation mode.
-
nrf_ccm_datarate_t datarate
Data rate.
-
nrf_ccm_length_t length
Lenght of the CCM packet.
-
nrf_ccm_mode_t mode
-
enum nrf_ccm_task_t