Home | History | Annotate | Download | only in wpa_supplicant

Lines Matching refs:wps

2  * wpa_supplicant / WPS integration
24 #include "wps/wps_attr_parse.h"
64 wpa_printf(MSG_DEBUG, "WPS: PIN registration with " MACSTR
87 wpa_printf(MSG_DEBUG, "WPS: Network configuration replaced - "
93 wpa_printf(MSG_DEBUG, "WPS: Current network is "
106 wpa_printf(MSG_DEBUG, "WPS: Registration completed - waiting "
129 * Many existing WPS APs do not know how to negotiate WPA2 or CCMP in
143 wpa_printf(MSG_DEBUG, "WPS: The AP was not found from BSS "
148 wpa_printf(MSG_DEBUG, "WPS: AP found from BSS table");
170 wpa_printf(MSG_DEBUG, "WPS: The AP did not yet advertise WPA "
178 wpa_printf(MSG_DEBUG, "WPS: Add CCMP into the credential "
189 wpa_printf(MSG_DEBUG, "WPS: Add WPA2 into the credential "
226 wpa_hexdump_key(MSG_DEBUG, "WPS: Received Credential attribute",
232 wpa_hexdump_ascii(MSG_DEBUG, "WPS: SSID", cred->ssid, cred->ssid_len);
233 wpa_printf(MSG_DEBUG, "WPS: Authentication Type 0x%x",
235 wpa_printf(MSG_DEBUG, "WPS: Encryption Type 0x%x", cred->encr_type);
236 wpa_printf(MSG_DEBUG, "WPS: Network Key Index %d", cred->key_idx);
237 wpa_hexdump_key(MSG_DEBUG, "WPS: Network Key",
239 wpa_printf(MSG_DEBUG, "WPS: MAC Address " MACSTR,
244 wpa_printf(MSG_DEBUG, "WPS: Workaround - convert mixed-mode "
253 wpa_printf(MSG_DEBUG, "WPS: Ignored credentials for "
260 wpa_printf(MSG_DEBUG, "WPS: Replace WPS network block based "
284 wpa_printf(MSG_DEBUG, "WPS: Create a new network based on the "
309 wpa_printf(MSG_ERROR, "WPS: Invalid WEP Key length "
314 wpa_printf(MSG_ERROR, "WPS: Invalid WEP Key index %d",
324 wpa_printf(MSG_ERROR, "WPS: Invalid WEP Key "
381 wpa_printf(MSG_ERROR, "WPS: Invalid Network "
397 wpa_printf(MSG_ERROR, "WPS: Invalid Network Key "
409 wpa_printf(MSG_DEBUG, "WPS: Failed to update configuration");
695 /* Remove any existing WPS network from configuration */
744 if (wpa_config_set(ssid, "key_mgmt", "WPS", 0) < 0 ||
764 * Note: With P2P, the SSID may change at the time the WPS
779 wpa_hexdump_ascii(MSG_DEBUG, "WPS: Picked SSID from "
786 wpa_printf(MSG_DEBUG, "WPS: More than one SSID found "
863 wpa_hexdump_ascii(MSG_DEBUG, "WPS: Use specific AP "
898 wpa_hexdump_ascii(MSG_DEBUG, "WPS: Use specific AP "
922 /* Cancel the wps pbc/pin requests */
927 wpa_printf(MSG_DEBUG, "WPS: Cancelling in AP mode");
934 wpa_printf(MSG_DEBUG, "WPS: Cancel operation - cancel scan");
938 wpa_printf(MSG_DEBUG, "WPS: Cancel operation - "
954 struct wps_context *wps = wpa_s->wps;
962 wps->oob_conf.oob_method = wps_get_oob_method(method);
964 if (wps->oob_conf.oob_method == OOB_METHOD_DEV_PWD_E) {
969 wpabuf_free(wps->dh_pubkey);
970 wpabuf_free(wps->dh_privkey);
971 wps->dh_privkey = NULL;
972 wps->dh_pubkey = NULL;
973 dh5_free(wps->dh_ctx);
974 wps->dh_ctx = dh5_init(&wps->dh_privkey, &wps->dh_pubkey);
975 wps->dh_pubkey = wpabuf_zeropad(wps->dh_pubkey, 192);
976 if (wps->dh_ctx == NULL || wps->dh_pubkey == NULL) {
977 wpa_printf(MSG_ERROR, "WPS: Failed to initialize "
983 if (wps->oob_conf.oob_method == OOB_METHOD_CRED)
986 if (wps_process_oob(wps, oob_dev, 0) < 0)
989 if ((wps->oob_conf.oob_method == OOB_METHOD_DEV_PWD_E ||
990 wps->oob_conf.oob_method == OOB_METHOD_DEV_PWD_R) &&
992 wpabuf_head(wps->oob_conf.dev_password), 0,
1047 wpa_printf(MSG_DEBUG, "WPS: Received new WPA/WPA2-PSK from WPS for "
1065 wpa_printf(MSG_DEBUG, "WPS: PIN needed for UUID-E %s", uuid);
1066 len = os_snprintf(txt, sizeof(txt), "WPS-EVENT-PIN-NEEDED %s " MACSTR
1086 wpa_printf(MSG_DEBUG, "WPS ER: SetSelectedRegistrar - sel_reg=%d "
1101 wpa_printf(MSG_INFO, "WPS: Converting display to "
1102 "virtual_display for WPS 2.0 compliance");
1108 wpa_printf(MSG_INFO, "WPS: Converting push_button to "
1109 "virtual_push_button for WPS 2.0 compliance");
1119 struct wps_context *wps)
1121 wpa_printf(MSG_DEBUG, "WPS: Set UUID for interface %s", wpa_s->ifname);
1128 if (wps != wpa_s->global->ifaces->wps)
1129 os_memcpy(wps->uuid,
1130 wpa_s->global->ifaces->wps->uuid,
1132 wpa_hexdump(MSG_DEBUG, "WPS: UUID from the first "
1133 "interface", wps->uuid, WPS_UUID_LEN);
1135 uuid_gen_mac_addr(wpa_s->own_addr, wps->uuid);
1136 wpa_hexdump(MSG_DEBUG, "WPS: UUID based on MAC "
1137 "address", wps->uuid, WPS_UUID_LEN);
1140 os_memcpy(wps->uuid, wpa_s->conf->uuid, WPS_UUID_LEN);
1141 WPS: UUID based on configuration",
1142 wps->uuid, WPS_UUID_LEN);
1148 struct wps_context *wps)
1150 wpabuf_free(wps->dev.vendor_ext_m1);
1151 wps->dev.vendor_ext_m1 = NULL;
1154 wps->dev.vendor_ext_m1 =
1156 if (!wps->dev.vendor_ext_m1) {
1157 wpa_printf(MSG_ERROR, "WPS: Cannot "
1166 struct wps_context *wps;
1171 wps = os_zalloc(sizeof(*wps));
1172 if (wps == NULL)
1175 wps->cred_cb = wpa_supplicant_wps_cred;
1176 wps->event_cb = wpa_supplicant_wps_event;
1177 wps->cb_ctx = wpa_s;
1179 wps->dev.device_name = wpa_s->conf->device_name;
1180 wps->dev.manufacturer = wpa_s->conf->manufacturer;
1181 wps->dev.model_name = wpa_s->conf->model_name;
1182 wps->dev.model_number = wpa_s->conf->model_number;
1183 wps->dev.serial_number = wpa_s->conf->serial_number;
1184 wps->config_methods =
1186 if ((wps->config_methods & (WPS_CONFIG_DISPLAY | WPS_CONFIG_LABEL)) ==
1188 wpa_printf(MSG_ERROR, "WPS: Both Label and Display config "
1190 os_free(wps);
1193 wps->config_methods = wps_fix_config_methods(wps->config_methods);
1194 wps->dev.config_methods = wps->config_methods;
1195 os_memcpy(wps->dev.pri_dev_type, wpa_s->conf->device_type,
1198 wps->dev.num_sec_dev_types = wpa_s->conf->num_sec_device_types;
1199 os_memcpy(wps->dev.sec_dev_type, wpa_s->conf->sec_device_type,
1200 WPS_DEV_TYPE_LEN * wps->dev.num_sec_dev_types);
1202 wpas_wps_set_vendor_ext_m1(wpa_s, wps);
1204 wps->dev.os_version = WPA_GET_BE32(wpa_s->conf->os_version);
1210 wps->dev.rf_bands |= WPS_RF_24GHZ;
1212 wps->dev.rf_bands |= WPS_RF_50GHZ;
1215 if (wps->dev.rf_bands == 0) {
1220 wps->dev.rf_bands = WPS_RF_24GHZ | WPS_RF_50GHZ;
1222 os_memcpy(wps->dev.mac_addr, wpa_s->own_addr, ETH_ALEN);
1223 wpas_wps_set_uuid(wpa_s, wps);
1225 wps->auth_types = WPS_AUTH_WPA2PSK | WPS_AUTH_WPAPSK;
1226 wps->encr_types = WPS_ENCR_AES | WPS_ENCR_TKIP;
1234 wps->registrar = wps_registrar_init(wps, &rcfg);
1235 if (wps->registrar == NULL) {
1236 wpa_printf(MSG_DEBUG, "Failed to initialize WPS Registrar");
1237 os_free(wps);
1241 wpa_s->wps = wps;
1252 if (wpa_s->wps == NULL)
1260 wps_registrar_deinit(wpa_s->wps->registrar);
1261 wpabuf_free(wpa_s->wps->dh_pubkey);
1262 wpabuf_free(wpa_s->wps->dh_privkey);
1263 wpabuf_free(wpa_s->wps->oob_conf.pubkey_hash);
1264 wpabuf_free(wpa_s->wps->oob_conf.dev_password);
1265 wpabuf_free(wpa_s->wps->dev.vendor_ext_m1);
1266 os_free(wpa_s->wps->network_key);
1267 os_free(wpa_s->wps);
1268 wpa_s->wps = NULL;
1283 wpa_printf(MSG_DEBUG, " skip - non-WPS AP");
1288 wpa_printf(MSG_DEBUG, " skip - WPS AP "
1295 wpa_printf(MSG_DEBUG, " selected based on WPS IE "
1303 wpa_printf(MSG_DEBUG, " skip - non-WPS AP");
1308 * Start with WPS APs that advertise our address as an
1310 * allow any WPS AP after couple of scans since some APs do not
1316 wpa_printf(MSG_DEBUG, " skip - WPS AP "
1321 wpa_printf(MSG_DEBUG, " selected based on WPS IE");
1323 wpa_printf(MSG_DEBUG, " selected based on WPS IE "
1331 wpa_printf(MSG_DEBUG, " selected based on WPS IE");
1350 /* allow wildcard SSID for WPS PBC */
1358 /* allow wildcard SSID for WPS PIN */
1379 wpa_printf(MSG_DEBUG, "WPS: Mandatory WPS IE "
1408 wpa_printf(MSG_DEBUG, "WPS: Check whether PBC session overlap is "
1416 wpa_hexdump(MSG_DEBUG, "WPS: UUID of the selected BSS",
1419 wpa_printf(MSG_DEBUG, "WPS: Selected BSS does not include "
1420 "WPS IE?!");
1435 wpa_printf(MSG_DEBUG, "WPS: Another BSS in active PBC mode: "
1438 wpa_hexdump(MSG_DEBUG, "WPS: UUID of the other BSS",
1443 wpa_msg(wpa_s, MSG_INFO, "WPS: PBC overlap detected: "
1465 unsigned int pbc = 0, auth = 0, pin = 0, wps = 0;
1482 wps++;
1492 else if (wps)
1533 wpa_s->wps_er = wps_er_init(wpa_s->wps, wpa_s->ifname, filter);
1564 return wps_registrar_add_pin(wpa_s->wps->registrar, addr,
1718 wpa_printf(MSG_DEBUG, "WPS ER: Terminated");
1754 struct wps_context *wps = wpa_s->wps;
1756 if (wps == NULL)
1760 wps->config_methods = wps_config_methods_str2bin(
1762 if ((wps->config_methods &
1765 wpa_printf(MSG_ERROR, "WPS: Both Label and Display "
1768 wps->config_methods &= ~WPS_CONFIG_LABEL;
1771 wps->config_methods = wps_fix_config_methods(wps->config_methods);
1772 wps->dev.config_methods = wps->config_methods;
1775 os_memcpy(wps->dev.pri_dev_type, wpa_s->conf->device_type,
1779 wps->dev.num_sec_dev_types = wpa_s->conf->num_sec_device_types;
1780 os_memcpy(wps->dev.sec_dev_type, wpa_s->conf->sec_device_type,
1781 wps->dev.num_sec_dev_types * WPS_DEV_TYPE_LEN);
1785 wpas_wps_set_vendor_ext_m1(wpa_s, wps);
1788 wps->dev.os_version = WPA_GET_BE32(wpa_s->conf->os_version);
1791 wpas_wps_set_uuid(wpa_s, wps);
1796 wps->dev.device_name = wpa_s->conf->device_name;
1797 wps->dev.manufacturer = wpa_s->conf->manufacturer;
1798 wps->dev.model_name = wpa_s->conf->model_name;
1799 wps->dev.model_number = wpa_s->conf->model_number;
1800 wps->dev.serial_number = wpa_s->conf->serial_number;
1818 struct wps_context *wps = wpa_s->wps;
1826 dh5_free(wps->dh_ctx);
1827 wpabuf_free(wps->dh_pubkey);
1828 wpabuf_free(wps->dh_privkey);
1829 wps->dh_privkey = wpabuf_dup(wpa_s->conf->wps_nfc_dh_privkey);
1830 wps->dh_pubkey = wpabuf_dup(wpa_s->conf->wps_nfc_dh_pubkey);
1831 if (wps->dh_privkey == NULL || wps->dh_pubkey == NULL) {
1832 wps->dh_ctx = NULL;
1833 wpabuf_free(wps->dh_pubkey);
1834 wps->dh_pubkey = NULL;
1835 wpabuf_free(wps->dh_privkey);
1836 wps->dh_privkey = NULL;
1839 wps->dh_ctx = dh5_init_fixed(wps->dh_privkey, wps->dh_pubkey);
1840 if (wps->dh_ctx == NULL)
1854 if (wps_oob_use_cred(wpa_s->wps, attr) < 0)
1860 wpa_printf(MSG_DEBUG, "WPS: Request reconnection with new network "
1877 wpa_s->wps->registrar, attr->oob_dev_password,
1884 const struct wpabuf *wps)
1888 wpa_hexdump_buf(MSG_DEBUG, "WPS: Received NFC tag payload", wps);
1890 if (wps_parse_msg(wps, &attr)) {
1891 wpa_printf(MSG_DEBUG, "WPS: Ignore invalid data from NFC tag");
1903 wpa_printf(MSG_DEBUG, "WPS: Ignore unrecognized NFC tag");
1911 const struct wpabuf *wps = data;
1922 wpa_printf(MSG_DEBUG, "WPS: Could not parse NDEF");
1925 wps = tmp;
1928 ret = wpas_wps_nfc_tag_process(wpa_s, wps);
1955 wpa_printf(MSG_DEBUG, "WPS: AP[%d] " MACSTR " type=%d "
1986 struct wpabuf *wps;
1994 wps = wpa_scan_get_vendor_ie_multi(res, WPS_IE_VENDOR_TYPE);
1995 if (wps == NULL)
1998 r = wps_is_addr_authorized(wps, wpa_s->own_addr, 1);
2006 wpabuf_free(wps);
2011 wpa_printf(MSG_DEBUG, "WPS: AP " MACSTR
2033 wpa_printf(MSG_DEBUG, "WPS: AP " MACSTR " type %d added",