# /space/home/slher/rel/Beken/v6_4_5/macsw/ip/umac/src/mfp/mfp_bip.c File Reference

Manangement Frames protection module. More...

`#include "rwnx_config.h"`
`#include "dbg_assert.h"`
`#include "mac_frame.h"`
`#include "co_utils.h"`
`#include "mfp_bip.h"`
`#include "hsu.h"`

Go to the source code of this file.

## Defines
#define | S(a, s) sbox_t[(a >> s) & 0xff]
| Apply Substitution.
#define | SX2(a, s) x_time2_sbox_t[(a >> s) & 0xff]
| apply substitution square
#define | SX3(a, s) x_time3_sbox_t[(a >> s) & 0xff]
| apply substitution cube
## Functions
__INLINE uint32_t | sched_core (uint32_t val, int r)
| Key schedule core function.
static void | aes_expand_key (uint32_t *key, uint32_t *rk)
| expand AES key.
__INLINE void | add_round_key (uint32_t *rk, uint32_t *data, int r)
| AddRoundKey step of AES encryption.
__INLINE void | shift_sub (uint32_t *data)
| SubBytes and ShiftRows steps of AES encryption.
__INLINE void | mix_shift_sub (uint32_t *data)
| SubBytes, ShiftRows and MixColumns steps of AES encryption.
static void | aes_encrypt_block (uint32_t *rk, uint32_t *data)
| Encrypt a block of data inplace with AES.
static void | aes_cmac_shift_sub_key (uint32_t *k)
| Left shift by 1 bit and XOR CMAC subkey.
__INLINE void | xor_block (uint32_t *a, uint32_t *b)
| XOR two vectors of 16 bytes.
static uint64_t | aes_cmac (uint32_t *key, int nb_elem, uint32_t addr[], int len[])
| Compute AES-CMAC on provided vectors.
uint64_t | mfp_compute_bip (struct key_info_tag *key, uint32_t frame_addr, int frame_len, int machdr_len, uint32_t mmic_addr)
| Compute MIC for BIP (Broadcast Integrity Protocol).
## Variables
static const uint8_t | sbox_t [256]
| Substitution box.
static const uint8_t | x_time2_sbox_t [256]
| Substitution box (square).
static const uint8_t | x_time3_sbox_t [256]
| Substitution box (cube).
const uint32_t | rcon_t []
| rcon: exponentiation of 2 to a user-specified value
uint16_t | mfp_aad [10]
| Additional Authentication Data vector for MIC computation Must be in SHARED RAM when HSU is used.

## Detailed Description

Manangement Frames protection module.

Copyright (C) RivieraWaves 2015-2019

Definition in file mfp_bip.c.