aboutsummaryrefslogtreecommitdiffstats
path: root/hostapd
diff options
context:
space:
mode:
authorJouni Malinen <jouni@qca.qualcomm.com>2017-06-17 20:48:52 (GMT)
committerJouni Malinen <j@w1.fi>2017-06-19 18:13:17 (GMT)
commit567da5bbd027e8318ed0e8af817b73a9285892c3 (patch)
tree48064b126bc5c80db797f5592e4c811a0a4ca4fc /hostapd
parent9c2b8204e662da34c3518a9bdff9e84687d98623 (diff)
downloadhostap-567da5bbd027e8318ed0e8af817b73a9285892c3.zip
hostap-567da5bbd027e8318ed0e8af817b73a9285892c3.tar.gz
hostap-567da5bbd027e8318ed0e8af817b73a9285892c3.tar.bz2
DPP: Add new AKM
This new AKM is used with DPP when using the signed Connector to derive a PMK. Since the KCK, KEK, and MIC lengths are variable within a single AKM, this needs number of additional changes to get the PMK length delivered to places that need to figure out the lengths of the PTK components. Signed-off-by: Jouni Malinen <jouni@qca.qualcomm.com>
Diffstat (limited to 'hostapd')
-rw-r--r--hostapd/config_file.c4
-rw-r--r--hostapd/ctrl_iface.c9
2 files changed, 13 insertions, 0 deletions
diff --git a/hostapd/config_file.c b/hostapd/config_file.c
index 3946589..0924d41 100644
--- a/hostapd/config_file.c
+++ b/hostapd/config_file.c
@@ -715,6 +715,10 @@ static int hostapd_config_parse_key_mgmt(int line, const char *value)
else if (os_strcmp(start, "OWE") == 0)
val |= WPA_KEY_MGMT_OWE;
#endif /* CONFIG_OWE */
+#ifdef CONFIG_DPP
+ else if (os_strcmp(start, "DPP") == 0)
+ val |= WPA_KEY_MGMT_DPP;
+#endif /* CONFIG_DPP */
else {
wpa_printf(MSG_ERROR, "Line %d: invalid key_mgmt '%s'",
line, start);
diff --git a/hostapd/ctrl_iface.c b/hostapd/ctrl_iface.c
index 1a7764a..4f49b5c 100644
--- a/hostapd/ctrl_iface.c
+++ b/hostapd/ctrl_iface.c
@@ -1110,6 +1110,15 @@ static int hostapd_ctrl_iface_get_key_mgmt(struct hostapd_data *hapd,
}
#endif /* CONFIG_OWE */
+#ifdef CONFIG_DPP
+ if (hapd->conf->wpa_key_mgmt & WPA_KEY_MGMT_DPP) {
+ ret = os_snprintf(pos, end - pos, "DPP ");
+ if (os_snprintf_error(end - pos, ret))
+ return pos - buf;
+ pos += ret;
+ }
+#endif /* CONFIG_DPP */
+
if (pos > buf && *(pos - 1) == ' ') {
*(pos - 1) = '\0';
pos--;