MCPcopy Index your code
hub / github.com/secdev/scapy / build_TKIP_payload

Function build_TKIP_payload

scapy/modules/krack/crypto.py:300–321  ·  view source on GitHub ↗

Build a TKIP header for IV @iv and mac @mac, and encrypt @data based on temporal key @tk

(data, iv, mac, tk)

Source from the content-addressed store, hash-verified

298
299
300def build_TKIP_payload(data, iv, mac, tk):
301 """Build a TKIP header for IV @iv and mac @mac, and encrypt @data
302 based on temporal key @tk
303 """
304 TSC5, TSC4, TSC3, TSC2, TSC1, TSC0 = (
305 (iv >> 40) & 0xFF,
306 (iv >> 32) & 0xFF,
307 (iv >> 24) & 0xFF,
308 (iv >> 16) & 0xFF,
309 (iv >> 8) & 0xFF,
310 iv & 0xFF
311 )
312 bitfield = 1 << 5 # Extended IV
313 TKIP_hdr = chb(TSC1) + chb((TSC1 | 0x20) & 0x7f) + chb(TSC0) + chb(bitfield) # noqa: E501
314 TKIP_hdr += chb(TSC2) + chb(TSC3) + chb(TSC4) + chb(TSC5)
315
316 TA = [orb(e) for e in mac2str(mac)]
317 TSC = [TSC0, TSC1, TSC2, TSC3, TSC4, TSC5]
318 TK = [orb(x) for x in tk]
319
320 rc4_key = gen_TKIP_RC4_key(TSC, TA, TK)
321 return TKIP_hdr + ARC4_encrypt(rc4_key, data)
322
323
324def parse_data_pkt(pkt, tk):

Callers 1

send_wpa_encMethod · 0.90

Calls 5

chbFunction · 0.90
orbFunction · 0.90
mac2strFunction · 0.90
gen_TKIP_RC4_keyFunction · 0.85
ARC4_encryptFunction · 0.85

Tested by

no test coverage detected