Lines Matching refs:wps

24 #include "wps/wps_attr_parse.h"
141 struct wpabuf *wps;
144 wps = wpa_bss_get_vendor_ie_multi(bss,
146 if (wps && wps_parse_msg(wps, &attr) == 0 &&
150 wpabuf_free(wps);
1285 /* Cancel the wps pbc/pin requests */
1454 struct wps_context *wps)
1465 if (wps != wpa_s->global->ifaces->wps)
1466 os_memcpy(wps->uuid,
1467 wpa_s->global->ifaces->wps->uuid,
1471 uuid_gen_mac_addr(wpa_s->own_addr, wps->uuid);
1475 os_memcpy(wps->uuid, wpa_s->conf->uuid, WPS_UUID_LEN);
1479 uuid_bin2str(wps->uuid, buf, sizeof(buf));
1485 struct wps_context *wps)
1487 wpabuf_free(wps->dev.vendor_ext_m1);
1488 wps->dev.vendor_ext_m1 = NULL;
1491 wps->dev.vendor_ext_m1 =
1493 if (!wps->dev.vendor_ext_m1) {
1503 struct wps_context *wps;
1508 wps = os_zalloc(sizeof(*wps));
1509 if (wps == NULL)
1512 wps->cred_cb = wpa_supplicant_wps_cred;
1513 wps->event_cb = wpa_supplicant_wps_event;
1514 wps->rf_band_cb = wpa_supplicant_wps_rf_band;
1515 wps->cb_ctx = wpa_s;
1517 wps->dev.device_name = wpa_s->conf->device_name;
1518 wps->dev.manufacturer = wpa_s->conf->manufacturer;
1519 wps->dev.model_name = wpa_s->conf->model_name;
1520 wps->dev.model_number = wpa_s->conf->model_number;
1521 wps->dev.serial_number = wpa_s->conf->serial_number;
1522 wps->config_methods =
1524 if ((wps->config_methods & (WPS_CONFIG_DISPLAY | WPS_CONFIG_LABEL)) ==
1528 os_free(wps);
1531 wps->config_methods = wps_fix_config_methods(wps->config_methods);
1532 wps->dev.config_methods = wps->config_methods;
1533 os_memcpy(wps->dev.pri_dev_type, wpa_s->conf->device_type,
1536 wps->dev.num_sec_dev_types = wpa_s->conf->num_sec_device_types;
1537 os_memcpy(wps->dev.sec_dev_type, wpa_s->conf->sec_device_type,
1538 WPS_DEV_TYPE_LEN * wps->dev.num_sec_dev_types);
1540 wpas_wps_set_vendor_ext_m1(wpa_s, wps);
1542 wps->dev.os_version = WPA_GET_BE32(wpa_s->conf->os_version);
1548 wps->dev.rf_bands |= WPS_RF_24GHZ;
1550 wps->dev.rf_bands |= WPS_RF_50GHZ;
1552 wps->dev.rf_bands |= WPS_RF_60GHZ;
1555 if (wps->dev.rf_bands == 0) {
1560 wps->dev.rf_bands = WPS_RF_24GHZ | WPS_RF_50GHZ;
1562 os_memcpy(wps->dev.mac_addr, wpa_s->own_addr, ETH_ALEN);
1563 wpas_wps_set_uuid(wpa_s, wps);
1565 wps->auth_types = WPS_AUTH_WPA2PSK | WPS_AUTH_WPAPSK;
1566 wps->encr_types = WPS_ENCR_AES | WPS_ENCR_TKIP;
1574 wps->registrar = wps_registrar_init(wps, &rcfg);
1575 if (wps->registrar == NULL) {
1577 os_free(wps);
1581 wpa_s->wps = wps;
1588 static void wpas_wps_nfc_clear(struct wps_context *wps)
1590 wps->ap_nfc_dev_pw_id = 0;
1591 wpabuf_free(wps->ap_nfc_dh_pubkey);
1592 wps->ap_nfc_dh_pubkey = NULL;
1593 wpabuf_free(wps->ap_nfc_dh_privkey);
1594 wps->ap_nfc_dh_privkey = NULL;
1595 wpabuf_free(wps->ap_nfc_dev_pw);
1596 wps->ap_nfc_dev_pw = NULL;
1613 if (wpa_s->wps == NULL)
1619 wpas_wps_nfc_clear(wpa_s->wps);
1622 wps_registrar_deinit(wpa_s->wps->registrar);
1623 wpabuf_free(wpa_s->wps->dh_pubkey);
1624 wpabuf_free(wpa_s->wps->dh_privkey);
1625 wpabuf_free(wpa_s->wps->dev.vendor_ext_m1);
1626 os_free(wpa_s->wps->network_key);
1627 os_free(wpa_s->wps);
1628 wpa_s->wps = NULL;
1823 unsigned int pbc = 0, auth = 0, pin = 0, wps = 0;
1840 wps++;
1850 else if (wps)
1891 wpa_s->wps_er = wps_er_init(wpa_s->wps, wpa_s->ifname, filter);
1927 return wps_registrar_add_pin(wpa_s->wps->registrar, addr,
2145 struct wps_context *wps = wpa_s->wps;
2147 if (wps == NULL)
2151 wps->config_methods = wps_config_methods_str2bin(
2153 if ((wps->config_methods &
2159 wps->config_methods &= ~WPS_CONFIG_LABEL;
2162 wps->config_methods = wps_fix_config_methods(wps->config_methods);
2163 wps->dev.config_methods = wps->config_methods;
2166 os_memcpy(wps->dev.pri_dev_type, wpa_s->conf->device_type,
2170 wps->dev.num_sec_dev_types = wpa_s->conf->num_sec_device_types;
2171 os_memcpy(wps->dev.sec_dev_type, wpa_s->conf->sec_device_type,
2172 wps->dev.num_sec_dev_types * WPS_DEV_TYPE_LEN);
2176 wpas_wps_set_vendor_ext_m1(wpa_s, wps);
2179 wps->dev.os_version = WPA_GET_BE32(wpa_s->conf->os_version);
2182 wpas_wps_set_uuid(wpa_s, wps);
2187 wps->dev.device_name = wpa_s->conf->device_name;
2188 wps->dev.manufacturer = wpa_s->conf->manufacturer;
2189 wps->dev.model_name = wpa_s->conf->model_name;
2190 wps->dev.model_number = wpa_s->conf->model_number;
2191 wps->dev.serial_number = wpa_s->conf->serial_number;
2209 ret = wps_er_config_token_from_cred(wpa_s->wps, &cred);
2274 struct wps_context *wps = wpa_s->wps;
2295 dh5_free(wps->dh_ctx);
2296 wpabuf_free(wps->dh_pubkey);
2297 wpabuf_free(wps->dh_privkey);
2298 wps->dh_privkey = wpabuf_dup(wpa_s->conf->wps_nfc_dh_privkey);
2299 wps->dh_pubkey = wpabuf_dup(wpa_s->conf->wps_nfc_dh_pubkey);
2300 if (wps->dh_privkey == NULL || wps->dh_pubkey == NULL) {
2301 wps->dh_ctx = NULL;
2302 wpabuf_free(wps->dh_pubkey);
2303 wps->dh_pubkey = NULL;
2304 wpabuf_free(wps->dh_privkey);
2305 wps->dh_privkey = NULL;
2309 wps->dh_ctx = dh5_init_fixed(wps->dh_privkey, wps->dh_pubkey);
2310 if (wps->dh_ctx == NULL) {
2311 wpabuf_free(wps->dh_pubkey);
2312 wps->dh_pubkey = NULL;
2313 wpabuf_free(wps->dh_privkey);
2314 wps->dh_privkey = NULL;
2343 if (wps_oob_use_cred(wpa_s->wps, attr) < 0)
2387 wpa_s->wps->registrar, attr->oob_dev_password,
2394 const struct wpabuf *wps)
2398 wpa_hexdump_buf(MSG_DEBUG, "WPS: Received NFC tag payload", wps);
2400 if (wps_parse_msg(wps, &attr)) {
2421 const struct wpabuf *wps = data;
2444 wps = tmp;
2447 ret = wpas_wps_nfc_tag_process(wpa_s, wps);
2463 ret = wps_build_nfc_handover_req(wpa_s->wps,
2489 struct wps_context *wps = wpa_s->wps;
2491 if (wps == NULL)
2509 wpas_wps_nfc_clear(wps);
2510 wps->ap_nfc_dev_pw_id = DEV_PW_NFC_CONNECTION_HANDOVER;
2511 wps->ap_nfc_dh_pubkey = wpabuf_dup(wpa_s->conf->wps_nfc_dh_pubkey);
2512 wps->ap_nfc_dh_privkey = wpabuf_dup(wpa_s->conf->wps_nfc_dh_privkey);
2513 if (!wps->ap_nfc_dh_pubkey || !wps->ap_nfc_dh_privkey) {
2514 wpas_wps_nfc_clear(wps);
2518 ret = wps_er_nfc_handover_sel(wpa_s->wps_er, wpa_s->wps, use_uuid,
2553 struct wpabuf *wps;
2563 wps = ndef_parse_wifi(data);
2564 if (wps == NULL)
2568 wpa_hexdump_buf(MSG_DEBUG, "WPS: NFC payload", wps);
2569 if (wpabuf_len(wps) < 2) {
2574 pos = wpabuf_head(wps);
2576 if (wsc_len > wpabuf_len(wps) - 2) {
2586 if (wsc_len < wpabuf_len(wps) - 2) {
2589 pos + wsc_len, wpabuf_len(wps) - 2 - wsc_len);
2672 wpabuf_free(wps);
2692 struct wpabuf *wps;
2704 wps = ndef_parse_wifi(req);
2705 if (wps == NULL)
2709 wpa_hexdump_buf(MSG_DEBUG, "WPS: NFC payload", wps);
2710 if (wpabuf_len(wps) < 2) {
2715 pos = wpabuf_head(wps);
2717 if (wsc_len > wpabuf_len(wps) - 2) {
2727 if (wsc_len < wpabuf_len(wps) - 2) {
2730 pos + wsc_len, wpabuf_len(wps) - 2 - wsc_len);
2771 ret = wps_registrar_add_nfc_pw_token(wpa_s->wps->registrar,
2777 wpabuf_free(wps);
2832 struct wpabuf *wps;
2841 wps = wpa_scan_get_vendor_ie_multi(res, WPS_IE_VENDOR_TYPE);
2842 if (wps == NULL)
2845 r = wps_is_addr_authorized(wps, wpa_s->own_addr, 1);
2853 uuid = wps_get_uuid_e(wps);
2854 pbc_active = wps_is_selected_pbc_registrar(wps);
2891 wpabuf_free(wps);