diff --git a/wpa_supplicant/ap.c b/wpa_supplicant/ap.c index dd44523f2..ebac3b649 100644 --- a/wpa_supplicant/ap.c +++ b/wpa_supplicant/ap.c @@ -160,6 +160,22 @@ static int wpa_supplicant_conf_ap(struct wpa_supplicant *wpa_s, return -1; os_memcpy(bss->ssid.wpa_psk->psk, ssid->psk, PMK_LEN); bss->ssid.wpa_psk->group = 1; + } else if (ssid->wep_key_len[0] || ssid->wep_key_len[1] || + ssid->wep_key_len[2] || ssid->wep_key_len[3]) { + struct hostapd_wep_keys *wep = &bss->ssid.wep; + int i; + for (i = 0; i < NUM_WEP_KEYS; i++) { + if (ssid->wep_key_len[i] == 0) + continue; + wep->key[i] = os_malloc(ssid->wep_key_len[i]); + if (wep->key[i] == NULL) + return -1; + os_memcpy(wep->key[i], ssid->wep_key[i], + ssid->wep_key_len[i]); + wep->len[i] = ssid->wep_key_len[i]; + } + wep->idx = ssid->wep_tx_keyidx; + wep->keys_set = 1; } /* Select group cipher based on the enabled pairwise cipher suites */