Multicast decryption fixes for iwx(4).
authorstsp <stsp@openbsd.org>
Mon, 19 Apr 2021 14:27:25 +0000 (14:27 +0000)
committerstsp <stsp@openbsd.org>
Mon, 19 Apr 2021 14:27:25 +0000 (14:27 +0000)
commitac84d6f044bdad5b5c559957b2cae7964d452e55
treecb58880cbd01caa302145527cbac8725afbe30c5
parent0a102a4532d3c0c03c930590b30513cd98a0ae6b
Multicast decryption fixes for iwx(4).

Pick the correct key for multicast frames in iwx_ccmp_decap().
Comparing the PN of a multicast frame against the last-seen PN of
the pairwise key is obviously wrong. We need to check the multicast
frame's PN against the last-seen PN of the group key.

Update crypto-offloading checks in iwx_rx_frame() to match recent
WPA1/TKIP groupcipher fixes made in athn(4).
The code inherited from iwm(4) only looked at the pairwise key, and
unlike iwx(4) and athn(4), iwm(4) only offloads pairwise crypto.

Found while investigating a question from zxystd at OpenIntelWireless.
sys/dev/pci/if_iwx.c