mirror of
https://git.kernel.org/pub/scm/network/wireless/iwd.git
synced 2025-02-22 13:40:39 +01:00

The MIC length was hard coded to 16 bytes everywhere, and since several AKMs require larger MIC's (24/32) this needed to change. The main issue was that the MIC was hard coded to 16 bytes inside eapol_key. Instead of doing this, the MIC, key_data_length, and key_data elements were all bundled into key_data[0]. In order to retrieve the MIC, key_data_len, or key_data several macros were introduced which account for the MIC length provided. A consequence of this is that all the verify functions inside eapol now require the MIC length as a parameter because without it they cannot determine the byte offset of key_data or key_data_length. The MIC length for a given handshake is set inside the SM when starting EAPoL. This length is determined by the AKM for the handshake.