The 802.11 specification specifically calls out that the GCMP AES
uses the CCMP AES specification, so we can re-use this here.
With a single caveat of course - the first block (b0) needs the
priority field populated, which was being done inline with the
Changes during refactoring:
CCMP AAD assembly. So write a new function that implements
* the first block (b0) needs the priority field populated, which was
just that. being done inline with the CCMP AAD assembly. So write a new function
that implements just that.
* Use IEEE80211_IS_QOS_ANY() in the AAD assembly; 802.11-2020
12.5.3.3.3 (Construct AAD) talks about frames with QoS control field,
not specifically QoS data frames (ie, not avoiding PS-POLL.)
* mask the HTC/ORDER bit in the FC if the data frame contains a
QoS control field. Again, see 802.11-2020 12.5.3.3.3.
* Add extra comments about missing items and functionality for later
implementation.