aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPeter Oh <poh@qca.qualcomm.com>2016-04-29 21:27:58 (GMT)
committerJouni Malinen <j@w1.fi>2016-05-13 17:54:51 (GMT)
commitf42c3ceb949691cd906c0aa67f23a548cee70d62 (patch)
treec6c22c6174278b353f7c30b27da6cf1a40ee58a2
parentbaa12136495ac72a9e34d9053c3f21efd87876b9 (diff)
downloadhostap-f42c3ceb949691cd906c0aa67f23a548cee70d62.zip
hostap-f42c3ceb949691cd906c0aa67f23a548cee70d62.tar.gz
hostap-f42c3ceb949691cd906c0aa67f23a548cee70d62.tar.bz2
mesh: Calculate MTK before sending it to MAC in case Open is dropped
IEEE Std 802.11-2012 13.5.6.3 State transitions require an action sending SETKEYS primitive to MAC when OPN_ACPT event occurs in CNF_RCVD state in case of AMPE is used, but since MTK calculation is missed in this condition, all zero valued key are passed to MAC and cause unicast packet decryption error. This could happen if the first transmission of plink Open frame is dropped and Confirm frame is processed first followed by retransmitted Open frame. Fix this by calculating the MTK also in this sequence of unexpected messages. Signed-off-by: Peter Oh <poh@qca.qualcomm.com>
-rw-r--r--wpa_supplicant/mesh_mpm.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/wpa_supplicant/mesh_mpm.c b/wpa_supplicant/mesh_mpm.c
index 6292e62..a0b7174 100644
--- a/wpa_supplicant/mesh_mpm.c
+++ b/wpa_supplicant/mesh_mpm.c
@@ -934,6 +934,8 @@ static void mesh_mpm_fsm(struct wpa_supplicant *wpa_s, struct sta_info *sta,
PLINK_CLOSE, reason);
break;
case OPN_ACPT:
+ if (conf->security & MESH_CONF_SEC_AMPE)
+ mesh_rsn_derive_mtk(wpa_s, sta);
mesh_mpm_plink_estab(wpa_s, sta);
mesh_mpm_send_plink_action(wpa_s, sta,
PLINK_CONFIRM, 0);