]> git.ipfire.org Git - thirdparty/hostap.git/commit
mka: Make ICV Indicator dependant on ICV length
authorJaap Keuter <jaap.keuter@xs4all.nl>
Fri, 7 Apr 2017 21:39:23 +0000 (23:39 +0200)
committerJouni Malinen <j@w1.fi>
Sat, 29 Dec 2018 23:03:30 +0000 (01:03 +0200)
commit23693c9dac1fde8b669a018708e2ac6ff8d7666b
tree7626617fed328e714f2fc2f36c0482fe3f4236bc
parentcd803b6ccd9d120347246f70293cd25c7cca406e
mka: Make ICV Indicator dependant on ICV length

IEEE Std 802.1X-2010, 11.11 describes that the ICV is separate from the
parameter sets before it. Due to its convenient layout the ICV Indicator
'body part' is used to encode the ICV as well.

IEEE Std 802.1X-2010, 11.11.3 describes the encoding of MKPDUs. In
bullet e) is desribed that the ICV Indicator itself is encoded when the
ICV is not 16 octets in length. IEEE Std 802.1Xbx-2014, Table 11-7 note
e) states that it will not be encoded unless the Algorithm Agility
parameter specifies the use of an ICV that is not 16 octets in length.

Therefore the length calculation for the ICV indicator body part must
take into account if the ICV Indicator is to be encoded or not. The
actual encoder of the ICV body already takes care of the rest.

In practice, this change will remove the ICV Indicator parameter set (4
octets before the ICV value itself) since the only defined algorithm
agility value uses an ICV of 16 octets. IEEE Std 802.1X-2010 MKPDU
validation and decoding rules in 11.11.2 and 11.11.4 require the
receipient to handle both cases of ICV Indicator being included or not.

Signed-off-by: Jaap Keuter <jaap.keuter@xs4all.nl>
src/pae/ieee802_1x_kay.c