MAC MLME Security API

nRF5 SDK v13.0.0

Module to declare MAC MLME Security API. More...

Data Structures

struct mac_table_t
Abstract type to work with growing tables such as some of MAC security attributes. More...
struct mac_table_item_t
Due to processing algorithm this field MUST be the first inside a table or list. More...
struct mac_key_id_lookup_descr_t
KeyIdLookupDescriptor as described in Table 94 . More...
struct mac_device_descr_t
DeviceDescriptor as described in Table 93 . More...
struct mac_key_device_descr_t
KeyDeviceDescriptor as described in Table 91 . More...
struct mac_key_usage_descr_t
KeyUsageDescriptor as described in Table 90 . More...
struct mac_key_descr_t
KeyDescriptor as described in Table 89 . More...
struct mac_security_level_descr_t
SecurityLevelDescriptor as described in Table 93 . More...

Macros

#define MAC_LOOKUP_DATA_SIZE_SHORT 5
Size (in bytes) of short security look up item. This size is set when lookup size equals to 0.
#define MAC_KEY_LOOKUP_DATA_SIZE_LONG 9
Size (in bytes) of long security Key look up item. This size is set when lookup size equals to 1.
#define MAC_DATA_LOOKUP_DATA_SIZE_LONG 8
Size (in bytes) of long security Data look up item. This size is set when lookup size equals to 1.
#define MAC_KEY_SOURCE_SIZE 8
Length of mac_key_source_t . Equals to extended address length.
#define MAC_KEY_DEVICE_FLAG_UNIQUE 0x01
This bit-mask is used to get UniqueDevice field value of mac_key_device_descr_t .
#define MAC_KEY_DEVICE_FLAG_BLACKLISTED 0x02
This bit-mask is used to get BlackListed field value of mac_key_device_descr_t .
#define MAC_SECURITY_KEY_SIZE 16
Length of key.
#define MAC_SECURITY_NONCE_SIZE 13
Length of nonce for aes-ccm algorithm .
#define MAX_MIC_SIZE 16
Maximum MIC size .

Typedefs

typedef uint8_t mac_key_t [16]
This type is used to store security key .
typedef uint8_t mac_key_lookup_data_t [9]
This type is used to store security key lookup data .
typedef uint8_t mac_data_lookup_data_t [8]
This type is used to store security data lookup data .
typedef uint64_t mac_key_source_t
This type is used to store security key source address .
typedef mac_table_t mac_key_id_lookup_list_t
KeyIdLookupLis as described in Table 89 .
typedef mac_table_t mac_device_table_t
DeviceTable as described in Table 93 .
typedef mac_table_t mac_key_device_list_t
KeyDeviceList as described in Table 89 .
typedef mac_table_t mac_key_usage_list_t
KeyUsageList as described in Table 89 .
typedef mac_table_t mac_key_table_t
KeyTable as described in Table 88 .
typedef mac_table_t mac_security_level_table_t

Detailed Description

Module to declare MAC MLME Security API.

The MAC Security module declares types/macros needed to implement and use the MAC security engine according to the MAC specification. No routines or callbacks are declared here.

Enumeration Type Documentation

This type represents data LookupDataSize .

Enumerator
DATA_LOOKUP_SIZE_FOUR_VAL

Size is 4.

DATA_LOOKUP_SIZE_EIGHT_VAL

Size is 8.

MAC key identifier mode.

In accordance with IEEE Std 802.15.4-2006, section 7.6.2.2.2

Enumerator
MAC_KEY_ID_IMPL

Impl.

MAC_KEY_ID_ONE_OCTET

One octet.

MAC_KEY_ID_FOUR_OCTET

4 octets.

MAC_KEY_ID_EIGHT_OCTET

8 octets.

This type represents key LookupDataSize according to Table 94 .

Enumerator
KEY_LOOKUP_SIZE_FIVE

Size is 5.

KEY_LOOKUP_SIZE_NINE

Size is 9.

This type represents real size of key LookupData .

Enumerator
KEY_LOOKUP_SIZE_FIVE_VAL

Size is 5.

KEY_LOOKUP_SIZE_NINE_VAL

Size is 9.

MAC sublayer security levels.

In accordance with IEEE Std 802.15.4-2006, section 7.6.2.2.1

Enumerator
MAC_SEC_OFF

Security is OFF.

MAC_SEC_MIC32

MIC32 security.

MAC_SEC_MIC64

MIC64 security.

MAC_SEC_MIC128

MIC128 security.

MAC_SEC_ENC

ENC security.

MAC_SEC_ENC_MIC32

ENC/MIC32 security.

MAC_SEC_ENC_MIC64

ENC/MIC64 security.

MAC_SEC_ENC_MIC128

ENC/MIC128 security.