Browse Source

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 <jouni@qca.qualcomm.com>
Jouni Malinen 7 years ago
parent
commit
b979caae57
3 changed files with 56 additions and 0 deletions
  1. 10 0
      wpa_supplicant/config.c
  2. 7 0
      wpa_supplicant/config_file.c
  3. 39 0
      wpa_supplicant/config_ssid.h

+ 10 - 0
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);

+ 7 - 0
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);

+ 39 - 0
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 */