| nRF5 SDK v12.0.0 |

Choose documentation: | nRF5 SDK | S130 SoftDevice API | S132 SoftDevice API | S212 SoftDevice API | S332 SoftDevice API

All Data Structures Functions Variables Typedefs Enumerations Enumerator Groups Pages
Modules | Enumerations | Functions
ANT encryption negotiation
ANT utilities

Encryption negotiation for encrypted ANT slave channels. More...

## Modules
| Encryption negotiation for encrypted ANT slave channels configuration

## Enumerations
enum | ant_encrypt_tracking_state_t { ANT_ENC_CHANNEL_STAT_NOT_TRACKING, ANT_ENC_CHANNEL_STAT_TRACKING_ENCRYPTED, ANT_ENC_CHANNEL_STAT_NEGOTIATING, ANT_ENC_CHANNEL_STAT_TRACKING_DECRYPTED, ANT_ENC_CHANNEL_STAT_TRACKING_UNSUPPORTED }

## Functions
void | ant_channel_encryp_tracking_state_set (uint8_t channel_number, ant_encrypt_tracking_state_t state)
| Function for setting the encryption negotiation state of a slave ANT channel. More...
ant_encrypt_tracking_state_t | ant_channel_encryp_tracking_state_get (uint8_t channel_number)
| Function for getting the encryption negotiation state of a slave ANT channel. More...
void | ant_channel_encryp_negotiation_slave_init (void)
| Function for initializing the module. More...
void | ant_slave_channel_encrypt_config (uint8_t channel_number, ant_encrypt_channel_settings_t const *const p_crypto_config)
| Function for setting the configuration for the slave channel. More...
void | ant_slave_encrypt_negotiation (ant_evt_t *p_ant_evt)
| Function for handling ANT encryption negotiation on slave nodes. More...

## Detailed Description

Encryption negotiation for encrypted ANT slave channels.

After pairing, the slave starts negotiating the encryption with the master. After successful negotiation, the slave can decrypt messages from the master, and all future messages are sent encrypted.

## Enumeration Type Documentation

enum ant_encrypt_tracking_state_t

Encryption negotiation states for a slave channel.

Enumerator
ANT_ENC_CHANNEL_STAT_NOT_TRACKING | Not tracking the master.
ANT_ENC_CHANNEL_STAT_TRACKING_ENCRYPTED | Tracking the master, but cannot decrypt messages.
ANT_ENC_CHANNEL_STAT_NEGOTIATING | Encryption has been enabled and negotiation is in progress.
ANT_ENC_CHANNEL_STAT_TRACKING_DECRYPTED | Tracking the master and can decrypt messages.
ANT_ENC_CHANNEL_STAT_TRACKING_UNSUPPORTED | Tracking unsupported on this channel.

## Function Documentation

void ant_channel_encryp_negotiation_slave_init | ( | void |  | ) |

Function for initializing the module.

This function initializes internal states of the module. It should only be used by the ANT encryption configuration module.

ant_encrypt_tracking_state_t ant_channel_encryp_tracking_state_get | ( | uint8_t | channel_number | ) |

Function for getting the encryption negotiation state of a slave ANT channel.

Parameters

  [in] | channel_number | ANT channel number.

void ant_channel_encryp_tracking_state_set | ( | uint8_t | channel_number,
|  | ant_encrypt_tracking_state_t | state
| ) |  |

Function for setting the encryption negotiation state of a slave ANT channel.

This function should be used by the ANT encryption configuration module.

Parameters

  [in] | channel_number | ANT channel number.
  [in] | state | State to set.

void ant_slave_channel_encrypt_config | ( | uint8_t | channel_number,
|  | ant_encrypt_channel_settings_t const *const | p_crypto_config
| ) |  |

Function for setting the configuration for the slave channel.

This function saves the channel's encryption configuration to a lookup table (LUT) for future usage. The configuration can then be used to enable encryption.

This function is intended to be used by the ANT encryption configuration module.

Parameters

  [in] | channel_number | ANT channel number.
  [in] | p_crypto_config | Pointer to the encryption configuration.

void ant_slave_encrypt_negotiation | ( | ant_evt_t * | p_ant_evt | ) |

Function for handling ANT encryption negotiation on slave nodes.

This function should be used directly in the ANT event dispatching process. It tries to enable slave channel encryption for all slave channels that are declared as encrypted channels (if appropriate master channels are found).

This function should be used by the ANT encryption configuration module.

Parameters

  [in] | p_ant_evt | Pointer to the ANT stack event message structure.