10#ifndef _DOT11DECRYPT_UTIL_H
11#define _DOT11DECRYPT_UTIL_H
47static inline void dot11decrypt_get_nonce_aad_addrs(
49 const uint8_t *ap_mld_mac,
50 const uint8_t *sta_mld_mac,
60 if (ap_mld_mac && !(wh->addr1[0] & 1) &&
62 uint8_t ds = wh->fc[1] & DOT11DECRYPT_FC1_DIR_MASK;
63 if (ds == IEEE80211_FC1_DIR_TODS) {
66 }
else if (ds == IEEE80211_FC1_DIR_FROMDS) {
72 if (DOT11DECRYPT_IS_QOS_DATA(wh)) {
76 if (qwh->qos[0] & 0x80)
83dot11decrypt_prf(
const uint8_t *key,
size_t key_len,
85 const uint8_t *context,
size_t context_len,
87 uint8_t *output,
size_t output_len);
92 const uint8_t *context,
size_t context_len,
94 uint8_t *output,
size_t output_len);
98 const uint8_t *ssid,
size_t ssid_len,
99 const uint8_t mdid[2],
100 const uint8_t *r0kh_id,
size_t r0kh_id_len,
101 const uint8_t s0kh_id[DOT11DECRYPT_MAC_LEN],
105 uint8_t pmk_r0_name[16]);
109 const uint8_t *pmk_r0_name,
110 const uint8_t *r1kh_id,
const uint8_t *s1kh_id,
112 uint8_t *pmk_r1,
size_t *pmk_r1_len,
113 uint8_t *pmk_r1_name);
116dot11decrypt_derive_ft_ptk(
const uint8_t *pmk_r1,
size_t pmk_r1_len,
117 const uint8_t *pmk_r1_name,
118 const uint8_t *snonce,
const uint8_t *anonce,
119 const uint8_t *bssid,
const uint8_t *sta_addr,
121 uint8_t *ptk,
const size_t ptk_len, uint8_t *ptk_name);
#define DOT11DECRYPT_TYPE(FrameControl_0)
Definition dot11decrypt_int.h:82
bool dot11decrypt_kdf(const uint8_t *key, size_t key_len, const char *label, const uint8_t *context, size_t context_len, int hash_algo, uint8_t *output, size_t output_len)
Definition dot11decrypt_util.c:175
bool dot11decrypt_derive_pmk_r1(const uint8_t *pmk_r0, size_t pmk_r0_len, const uint8_t *pmk_r0_name, const uint8_t *r1kh_id, const uint8_t *s1kh_id, int hash_algo, uint8_t *pmk_r1, size_t *pmk_r1_len, uint8_t *pmk_r1_name)
Definition dot11decrypt_util.c:327
void dot11decrypt_construct_aad(PDOT11DECRYPT_MAC_FRAME wh, const uint8_t *A1, const uint8_t *A2, const uint8_t *A3, uint8_t *aad, size_t *aad_len)
Constructs the AAD (Additional Authentication Data) for a 802.11 MAC frame.
Definition dot11decrypt_util.c:35
bool dot11decrypt_derive_pmk_r0(const uint8_t *xxkey, size_t xxkey_len, const uint8_t *ssid, size_t ssid_len, const uint8_t mdid[2], const uint8_t *r0kh_id, size_t r0kh_id_len, const uint8_t s0kh_id[6], int hash_algo, uint8_t *pmk_r0, size_t *pmk_r0_len, uint8_t pmk_r0_name[16])
Definition dot11decrypt_util.c:261
Definition dot11decrypt_int.h:163
Definition dot11decrypt_int.h:142