Z-Wave Protocol Controller Reference
Security 2 Nonce Management

Allows to store and restore S2 SPAN and MPAN states. More...

Collaboration diagram for Security 2 Nonce Management:

Classes

struct  span_entry
 Structure holding a SPAN entry. Refer to LibS2 for field descriptions. More...
 
struct  mpan_entry
 Structure holding an MPAN entry. Refer to LibS2 for field descriptions. More...
 

Macros

#define CTR_DRBG_KEY_LENGTH   16
 Length of the key in the CTR_DRBG. More...
 
#define CTR_DRBG_INTERNAL_STATE_LENGTH   16
 Length of the internal state of the CTR_DRBG. More...
 
#define MPAN_INNER_STATE_LENGTH   16
 Length of the inner state of an MPAN. More...
 

Typedefs

typedef struct span_entry span_entry_t
 Structure holding a SPAN entry. Refer to LibS2 for field descriptions. More...
 
typedef struct mpan_entry mpan_entry_t
 Structure holding an MPAN entry. Refer to LibS2 for field descriptions. More...
 

Functions

sl_status_t zwave_s2_get_span_data (zwave_node_id_t node_id, span_entry_t *span_data)
 Fetches a Span entry object from the S2 SPAN table. More...
 
void zwave_s2_set_span_table (zwave_node_id_t node_id, const span_entry_t *span_data)
 Copies a Span entry object into an entry of the S2 SPAN table. More...
 
sl_status_t zwave_s2_get_mpan_data (zwave_node_id_t owner_node_id, zwave_multicast_group_id_t group_id, mpan_entry_t *mpan_data)
 Fetches an MPAN entry object from the S2 MPAN table. More...
 
void zwave_s2_set_mpan_data (zwave_node_id_t owner_node_id, zwave_multicast_group_id_t group_id, const mpan_entry_t *mpan_data)
 Copies an MPAN entry object into an entry of the S2 MPAN table. More...
 
void zwave_s2_reset_span (zwave_node_id_t node_id)
 Resets the SPAN for node_id by setting its state to SPAN_NOT_USED. More...
 
void zwave_s2_reset_mpan (zwave_node_id_t owner_node_id, zwave_multicast_group_id_t group_id)
 Resets the MPAN entry matching owner_node_id and group_id by setting its state to MPAN_NOT_USED. More...
 

Detailed Description

Allows to store and restore S2 SPAN and MPAN states.

This component provides an API to store and restore S2 SPAN and MPAN. This should only be used at initialization or exit.

Macro Definition Documentation

◆ CTR_DRBG_INTERNAL_STATE_LENGTH

#define CTR_DRBG_INTERNAL_STATE_LENGTH   16

Length of the internal state of the CTR_DRBG.

◆ CTR_DRBG_KEY_LENGTH

#define CTR_DRBG_KEY_LENGTH   16

Length of the key in the CTR_DRBG.

◆ MPAN_INNER_STATE_LENGTH

#define MPAN_INNER_STATE_LENGTH   16

Length of the inner state of an MPAN.

Typedef Documentation

◆ mpan_entry_t

typedef struct mpan_entry mpan_entry_t

Structure holding an MPAN entry. Refer to LibS2 for field descriptions.

◆ span_entry_t

typedef struct span_entry span_entry_t

Structure holding a SPAN entry. Refer to LibS2 for field descriptions.

Function Documentation

◆ zwave_s2_get_mpan_data()

sl_status_t zwave_s2_get_mpan_data ( zwave_node_id_t  owner_node_id,
zwave_multicast_group_id_t  group_id,
mpan_entry_t mpan_data 
)

Fetches an MPAN entry object from the S2 MPAN table.

If the MPAN is not fully established, the data will not be returned.

Parameters
owner_node_id[in] The Z-Wave NodeID owning the MPAN group.
group_id[in] The Z-Wave Group ID.
mpan_data[out] The MPAN data.
Returns
SL_STATUS_OK if the mpan_data was found and returned, SL_STATUS_NOT_FOUND otherwise.
Here is the caller graph for this function:

◆ zwave_s2_get_span_data()

sl_status_t zwave_s2_get_span_data ( zwave_node_id_t  node_id,
span_entry_t span_data 
)

Fetches a Span entry object from the S2 SPAN table.

If the SPAN is not fully established, the data will not be returned.

Parameters
node_id[in] Z-Wave Remote NodeID for that SPAN entry
span_data[out] S2 Span data to be copied in the span table
Returns
SL_STATUS_OK if the span_data was found and returned, SL_STATUS_NOT_FOUND otherwise.
Here is the caller graph for this function:

◆ zwave_s2_reset_mpan()

void zwave_s2_reset_mpan ( zwave_node_id_t  owner_node_id,
zwave_multicast_group_id_t  group_id 
)

Resets the MPAN entry matching owner_node_id and group_id by setting its state to MPAN_NOT_USED.

Parameters
owner_node_id[in] The Z-Wave NodeID owning the MPAN group.
group_id[in] The Z-Wave Group ID.

◆ zwave_s2_reset_span()

void zwave_s2_reset_span ( zwave_node_id_t  node_id)

Resets the SPAN for node_id by setting its state to SPAN_NOT_USED.

Parameters
node_id[in] The Z-Wave NodeID with which the SPAN needs to be reset

◆ zwave_s2_set_mpan_data()

void zwave_s2_set_mpan_data ( zwave_node_id_t  owner_node_id,
zwave_multicast_group_id_t  group_id,
const mpan_entry_t mpan_data 
)

Copies an MPAN entry object into an entry of the S2 MPAN table.

Parameters
owner_node_id[in] The Z-Wave NodeID owning the MPAN group.
group_id[in] The Z-Wave Group ID.
mpan_data[in] S2 MPAN data to be copied in the MPAN table
Here is the call graph for this function:
Here is the caller graph for this function:

◆ zwave_s2_set_span_table()

void zwave_s2_set_span_table ( zwave_node_id_t  node_id,
const span_entry_t span_data 
)

Copies a Span entry object into an entry of the S2 SPAN table.

Parameters
span_data[in] S2 Span data to be copied in the span table
node_idZ-Wave Remote NodeID for that SPAN entry
Here is the call graph for this function:
Here is the caller graph for this function: