nl80211: Remove SIOCGIWRANGE and assume TKIP+CCMP+WPA+WPA2
[wpasupplicant] / src / eap_peer / eap_wsc.c
index 7b8affc..17e42f4 100644 (file)
@@ -27,7 +27,7 @@ struct eap_wsc_data {
        int registrar;
        struct wpabuf *in_buf;
        struct wpabuf *out_buf;
-       u8 in_op_code, out_op_code;
+       enum wsc_op_code in_op_code, out_op_code;
        size_t out_used;
        size_t fragment_size;
        struct wps_data *wps;
@@ -65,38 +65,6 @@ static void eap_wsc_state(struct eap_wsc_data *data, int state)
 }
 
 
-static int eap_wsc_new_psk_cb(void *ctx, const u8 *mac_addr, const u8 *psk,
-                             size_t psk_len)
-{
-       wpa_printf(MSG_DEBUG, "EAP-WSC: Received new WPA/WPA2-PSK from WPS for"
-                  " STA " MACSTR, MAC2STR(mac_addr));
-       wpa_hexdump_key(MSG_DEBUG, "Per-device PSK", psk, psk_len);
-
-       /* TODO */
-
-       return 0;
-}
-
-
-static void eap_wsc_pin_needed_cb(void *ctx, const u8 *uuid_e,
-                                 const struct wps_device_data *dev)
-{
-       char uuid[40], txt[400];
-       int len;
-       if (uuid_bin2str(uuid_e, uuid, sizeof(uuid)))
-               return;
-       wpa_printf(MSG_DEBUG, "EAP-WSC: PIN needed for E-UUID %s", uuid);
-       len = os_snprintf(txt, sizeof(txt), "WPS-EVENT-PIN-NEEDED "
-                         "%s " MACSTR " [%s|%s|%s|%s|%s|%d-%08X-%d]",
-                         uuid, MAC2STR(dev->mac_addr), dev->device_name,
-                         dev->manufacturer, dev->model_name,
-                         dev->model_number, dev->serial_number,
-                         dev->categ, dev->oui, dev->sub_categ);
-       if (len > 0 && len < (int) sizeof(txt))
-               wpa_printf(MSG_INFO, "%s", txt);
-}
-
-
 static void * eap_wsc_init(struct eap_sm *sm)
 {
        struct eap_wsc_data *data;
@@ -135,34 +103,9 @@ static void * eap_wsc_init(struct eap_sm *sm)
        data->registrar = registrar;
        data->wps_ctx = wps;
 
-       if (registrar) {
-               struct wps_registrar_config rcfg;
-
-               wps->auth_types = WPS_AUTH_WPA2PSK | WPS_AUTH_WPAPSK;
-               wps->encr_types = WPS_ENCR_AES | WPS_ENCR_TKIP;
-
-               os_memset(&rcfg, 0, sizeof(rcfg));
-               rcfg.new_psk_cb = eap_wsc_new_psk_cb;
-               rcfg.pin_needed_cb = eap_wsc_pin_needed_cb;
-               rcfg.cb_ctx = data;
-
-               wps->registrar = wps_registrar_init(wps, &rcfg);
-               if (wps->registrar == NULL) {
-                       wpa_printf(MSG_DEBUG, "EAP-WSC: Failed to initialize "
-                                  "WPS Registrar");
-                       os_free(wps->network_key);
-                       os_free(wps);
-                       os_free(data);
-                       return NULL;
-               }
-
-       }
-
        os_memset(&cfg, 0, sizeof(cfg));
-       cfg.authenticator = 0;
        cfg.wps = wps;
-       cfg.registrar = registrar ? data->wps_ctx->registrar : NULL;
-       cfg.enrollee_mac_addr = registrar ? NULL : wps->dev.mac_addr;
+       cfg.registrar = registrar;
 
        phase1 = eap_get_config_phase1(sm);
        if (phase1 == NULL) {
@@ -192,7 +135,6 @@ static void * eap_wsc_init(struct eap_sm *sm)
                return NULL;
        }
 
-       cfg.uuid = registrar ? NULL : wps->uuid;
        data->wps = wps_init(&cfg);
        if (data->wps == NULL) {
                os_free(data);
@@ -200,17 +142,9 @@ static void * eap_wsc_init(struct eap_sm *sm)
        }
        data->fragment_size = WSC_FRAGMENT_SIZE;
 
-
-       if (registrar) {
-               /* Testing */
-               wpa_printf(MSG_INFO, "EAP-WSC: Registrar functionality not "
-                          "yet fully supported - using test values");
-               u8 uuid_e[UUID_LEN];
-               os_memset(uuid_e, 0, UUID_LEN);
-               if (cfg.pin) {
-                       wps_registrar_add_pin(data->wps_ctx->registrar, uuid_e,
-                                             cfg.pin, cfg.pin_len);
-               }
+       if (registrar && cfg.pin) {
+               wps_registrar_add_pin(data->wps_ctx->registrar, NULL,
+                                     cfg.pin, cfg.pin_len);
        }
 
        return data;
@@ -223,7 +157,6 @@ static void eap_wsc_deinit(struct eap_sm *sm, void *priv)
        wpabuf_free(data->in_buf);
        wpabuf_free(data->out_buf);
        wps_deinit(data->wps);
-       wps_registrar_deinit(data->wps_ctx->registrar);
        os_free(data->wps_ctx->network_key);
        data->wps_ctx->network_key = NULL;
        os_free(data);
@@ -472,15 +405,10 @@ static struct wpabuf * eap_wsc_process(struct eap_sm *sm, void *priv,
                eap_wsc_state(data, MESG);
                break;
        case WPS_FAILURE:
+       case WPS_PENDING:
                wpa_printf(MSG_DEBUG, "EAP-WSC: WPS processing failed");
                eap_wsc_state(data, FAIL);
                break;
-       case WPS_PENDING:
-               wpa_printf(MSG_DEBUG, "EAP-WSC: WPS processing pending");
-               ret->ignore = TRUE;
-               if (data->in_buf == &tmpbuf)
-                       data->in_buf = NULL;
-               return NULL;
        }
 
        if (data->in_buf != &tmpbuf)