From b979caae57ad2189af6f4ec6dd00767163f9a4c5 Mon Sep 17 00:00:00 2001 From: Jouni Malinen Date: Sun, 18 Jun 2017 13:48:57 +0300 Subject: [PATCH] DPP: Network profile parameters for DPP AKM Extend wpa_supplicant network profile to include parameters needed for the DPP AKM: dpp_connector, dpp_netaccesskey, dpp_netaccesskey_expiry, dpp_csign, dpp_csign_expiry. Signed-off-by: Jouni Malinen --- wpa_supplicant/config.c | 10 +++++++++ wpa_supplicant/config_file.c | 7 +++++++ wpa_supplicant/config_ssid.h | 39 ++++++++++++++++++++++++++++++++++++ 3 files changed, 56 insertions(+) diff --git a/wpa_supplicant/config.c b/wpa_supplicant/config.c index 0be77ff22..8bf4b38d9 100644 --- a/wpa_supplicant/config.c +++ b/wpa_supplicant/config.c @@ -2239,6 +2239,13 @@ static const struct parse_data ssid_fields[] = { { INT_RANGE(pbss, 0, 2) }, { INT_RANGE(wps_disabled, 0, 1) }, { INT_RANGE(fils_dh_group, 0, 65535) }, +#ifdef CONFIG_DPP + { STR(dpp_connector) }, + { STR_LEN(dpp_netaccesskey) }, + { INT(dpp_netaccesskey_expiry) }, + { STR_LEN(dpp_csign) }, + { INT(dpp_csign_expiry) }, +#endif /* CONFIG_DPP */ }; #undef OFFSET @@ -2424,6 +2431,9 @@ void wpa_config_free_ssid(struct wpa_ssid *ssid) #ifdef CONFIG_MESH os_free(ssid->mesh_basic_rates); #endif /* CONFIG_MESH */ + os_free(ssid->dpp_connector); + bin_clear_free(ssid->dpp_netaccesskey, ssid->dpp_netaccesskey_len); + os_free(ssid->dpp_csign); while ((psk = dl_list_first(&ssid->psk_list, struct psk_list_entry, list))) { dl_list_del(&psk->list); diff --git a/wpa_supplicant/config_file.c b/wpa_supplicant/config_file.c index ceaf434bd..46a9e0b1e 100644 --- a/wpa_supplicant/config_file.c +++ b/wpa_supplicant/config_file.c @@ -849,6 +849,13 @@ static void wpa_config_write_network(FILE *f, struct wpa_ssid *ssid) INT(wpa_ptk_rekey); INT(group_rekey); INT(ignore_broadcast_ssid); +#ifdef CONFIG_DPP + STR(dpp_connector), + STR(dpp_netaccesskey), + INT(dpp_netaccesskey_expiry), + STR(dpp_csign), + INT(dpp_csign_expiry), +#endif /* CONFIG_DPP */ #ifdef CONFIG_HT_OVERRIDES INT_DEF(disable_ht, DEFAULT_DISABLE_HT); INT_DEF(disable_ht40, DEFAULT_DISABLE_HT40); diff --git a/wpa_supplicant/config_ssid.h b/wpa_supplicant/config_ssid.h index 6c6c32ad1..81f64a5f4 100644 --- a/wpa_supplicant/config_ssid.h +++ b/wpa_supplicant/config_ssid.h @@ -845,6 +845,45 @@ struct wpa_ssid { * 1-65535 DH Group to use for FILS PFS */ int fils_dh_group; + + /** + * dpp_connector - DPP Connector (signedConnector as string) + */ + char *dpp_connector; + + /** + * dpp_netaccesskey - DPP netAccessKey (own private key) + */ + u8 *dpp_netaccesskey; + + /** + * dpp_netaccesskey_len - DPP netAccessKey length in octets + */ + size_t dpp_netaccesskey_len; + + /** + * net_access_key_expiry - DPP netAccessKey expiry in UNIX time stamp + * + * 0 indicates no expiration. + */ + unsigned int dpp_netaccesskey_expiry; + + /** + * dpp_csign - C-sign-key (Configurator public key) + */ + u8 *dpp_csign; + + /** + * dpp_csign_len - C-sign-key length in octets + */ + size_t dpp_csign_len; + + /** + * dpp_csign_expiry - C-sign-key expiry in UNIX time stamp + * + * 0 indicates no expiration. + */ + unsigned int dpp_csign_expiry; }; #endif /* CONFIG_SSID_H */