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
-
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
-
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
-
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
-
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
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.
- Returns true
The event has been generated.
- Returns 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.
- Returns true
The MIC check passed.
- Returns 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 <nrf_ccm.h>
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
-
enum