IEEE 802.15.4 security interface. More...
IEEE 802.15.4 security interface.
Specification: IEEE 802.15.4 - 2015 https://www.silabs.com/content/usergenerated/asi/cloud/attachments/siliconlabs/en/community/wireless/proprietary/forum/jcr:content/content/primary/qna/802_15_4_promiscuous-tbzR/hivukadin_vukadi-iTXQ/802.15.4-2015.pdf
Definition in file ieee802154_security.h.
 Include dependency graph for ieee802154_security.h:Go to the source code of this file.
Data Structures | |
| struct | ieee802154_radio_cipher_ops | 
| Struct of security operations.  More... | |
| struct | ieee802154_sec_dev | 
| IEEE 802.15.4 security device descriptor.  More... | |
| struct | ieee802154_sec_context | 
| Struct to hold IEEE 802.15.4 security information.  More... | |
| struct | ieee802154_sec_aux_t | 
| IEEE 802.15.4 auxiliary security header.  More... | |
| struct | ieee802154_sec_aux_key_identifier_1_t | 
| Content of key_source if key mode is IEEE802154_SEC_SCF_KEYMODE_INDEX.  More... | |
| struct | ieee802154_sec_aux_key_identifier_5_t | 
| Content of key_source if key mode is IEEE802154_SEC_SCF_KEYMODE_SHORT_INDEX.  More... | |
| struct | ieee802154_sec_aux_key_identifier_9_t | 
| Content of key_source if key mode is IEEE802154_SEC_SCF_KEYMODE_HW_INDEX.  More... | |
| struct | ieee802154_sec_ccm_nonce_t | 
| Format of 13 byte nonce.  More... | |
| struct | ieee802154_sec_ccm_block_t | 
| Format of 16 byte input block of CCM.  More... | |
Macros | |
| #define | CONFIG_IEEE802154_SEC_DEFAULT_KEY "pizza_margherita" | 
| AES default key.  More... | |
| #define | IEEE802154_SEC_KEY_LENGTH (16U) | 
| Length of an AES key in bytes.  | |
| #define | IEEE802154_SEC_BLOCK_SIZE (16U) | 
| Block size of an encryption block.  | |
| #define | IEEE802154_SEC_MAX_AUX_HDR_LEN (14U) | 
| Maximum length of the security auxiliary header in bytes.  | |
| #define | IEEE802154_SEC_MAX_MAC_SIZE (16U) | 
| Maximum Size of IEEE 802.15.4 MAC.  | |
| #define | IEEE802154_SEC_SCF_SECLEVEL_MASK (0x07) | 
| Mask to get security level bits.  | |
| #define | IEEE802154_SEC_SCF_SECLEVEL_SHIFT (0) | 
| Number of shifts to set/get security level bits.  | |
| #define | IEEE802154_SEC_SCF_KEYMODE_MASK (0x18) | 
| Mask to get key mode bits.  | |
| #define | IEEE802154_SEC_SCF_KEYMODE_SHIFT (3) | 
| Number of shifts to set/get key mode bits.  | |
Typedefs | |
| typedef struct ieee802154_sec_dev | ieee802154_sec_dev_t | 
| Forward declaration of an IEEE 802.15.4 abstract security device.  | |
| typedef struct ieee802154_radio_cipher_ops | ieee802154_radio_cipher_ops_t | 
| Struct of security operations.  More... | |
| typedef struct ieee802154_sec_context | ieee802154_sec_context_t | 
| Struct to hold IEEE 802.15.4 security information.  | |
Enumerations | |
| enum | ieee802154_sec_scf_seclevel_t {  IEEE802154_SEC_SCF_SECLEVEL_NONE = 0x00 , IEEE802154_SEC_SCF_SECLEVEL_MIC32 = 0x01 , IEEE802154_SEC_SCF_SECLEVEL_MIC64 = 0x02 , IEEE802154_SEC_SCF_SECLEVEL_MIC128 = 0x03 , IEEE802154_SEC_SCF_SECLEVEL_ENC = 0x04 , IEEE802154_SEC_SCF_SECLEVEL_ENC_MIC32 = 0x05 , IEEE802154_SEC_SCF_SECLEVEL_ENC_MIC64 = 0x06 , IEEE802154_SEC_SCF_SECLEVEL_ENC_MIC128 = 0x07 }  | 
| Security levels.  More... | |
| enum | ieee802154_sec_scf_keymode_t { IEEE802154_SEC_SCF_KEYMODE_IMPLICIT = 0x00 , IEEE802154_SEC_SCF_KEYMODE_INDEX = 0x01 , IEEE802154_SEC_SCF_KEYMODE_SHORT_INDEX = 0x02 , IEEE802154_SEC_SCF_KEYMODE_HW_INDEX = 0x03 } | 
| Key identifier modes.  More... | |
| enum | ieee802154_sec_error_t {  IEEE802154_SEC_OK , IEEE802154_SEC_FRAME_COUNTER_OVERFLOW , IEEE802154_SEC_NO_KEY , IEEE802154_SEC_MAC_CHECK_FAILURE , IEEE802154_SEC_UNSUPORTED }  | 
| IEEE 802.15.4 security error codes.  More... | |
Functions | |
| void | ieee802154_sec_init (ieee802154_sec_context_t *ctx) | 
| Initialize IEEE 802.15.4 security context with default values.  More... | |
| int | ieee802154_sec_encrypt_frame (ieee802154_sec_context_t *ctx, const uint8_t *header, uint8_t *header_size, uint8_t *payload, uint16_t payload_size, uint8_t *mic, uint8_t *mic_size, const uint8_t *src_address) | 
Encrypt IEEE 802.15.4 frame according to ctx.  More... | |
| int | ieee802154_sec_decrypt_frame (ieee802154_sec_context_t *ctx, uint16_t frame_size, uint8_t *header, uint8_t *header_size, uint8_t **payload, uint16_t *payload_size, uint8_t **mic, uint8_t *mic_size, const uint8_t *src_address) | 
Decrypt IEEE 802.15.4 frame according to ctx.  More... | |
Variables | |
| const ieee802154_radio_cipher_ops_t | ieee802154_radio_cipher_ops | 
| Default descriptor that will fallback to default implementations.  | |