Lines Matching defs:wpa_s

213 pmksa_cache_free_entry(struct wpa_supplicant *wpa_s,
216 wpa_s->pmksa_count--;
217 if (wpa_s->cur_pmksa == entry) {
219 wpa_s->cur_pmksa = NULL;
228 struct wpa_supplicant *wpa_s = eloop_ctx;
232 while (wpa_s->pmksa && wpa_s->pmksa->expiration <= now) {
233 struct rsn_pmksa_cache *entry = wpa_s->pmksa;
234 wpa_s->pmksa = entry->next;
237 pmksa_cache_free_entry(wpa_s, entry);
240 pmksa_cache_set_expiration(wpa_s);
244 pmksa_cache_set_expiration(struct wpa_supplicant *wpa_s)
247 eloop_cancel_timeout(pmksa_cache_expire, wpa_s, NULL);
248 if (wpa_s->pmksa == NULL)
250 sec = wpa_s->pmksa->expiration - time(NULL);
254 wpa_s, NULL);
258 pmksa_cache_free(struct wpa_supplicant *wpa_s)
262 entry = wpa_s->pmksa;
263 wpa_s->pmksa = NULL;
269 pmksa_cache_set_expiration(wpa_s);
270 wpa_s->cur_pmksa = NULL;
274 pmksa_cache_get(struct wpa_supplicant *wpa_s,
277 struct rsn_pmksa_cache *entry = wpa_s->pmksa;
290 pmksa_cache_list(struct wpa_supplicant *wpa_s, char *buf, size_t len)
301 entry = wpa_s->pmksa;
317 pmksa_candidate_free(struct wpa_supplicant *wpa_s)
321 entry = wpa_s->pmksa_candidates;
322 wpa_s->pmksa_candidates = NULL;
332 wpa_parse_wpa_ie_wpa(struct wpa_supplicant *wpa_s, uint8_t *wpa_ie,
442 wpa_parse_wpa_ie_rsn(struct wpa_supplicant *wpa_s, uint8_t *rsn_ie,
553 wpa_parse_wpa_ie(struct wpa_supplicant *wpa_s, uint8_t *wpa_ie,
557 return (wpa_parse_wpa_ie_rsn(wpa_s, wpa_ie, wpa_ie_len, data));
559 return (wpa_parse_wpa_ie_wpa(wpa_s, wpa_ie, wpa_ie_len, data));
563 wpa_gen_wpa_ie_wpa(struct wpa_supplicant *wpa_s, uint8_t *wpa_ie)
574 if (wpa_s->group_cipher == WPA_CIPHER_CCMP) {
576 } else if (wpa_s->group_cipher == WPA_CIPHER_TKIP) {
578 } else if (wpa_s->group_cipher == WPA_CIPHER_WEP104) {
580 } else if (wpa_s->group_cipher == WPA_CIPHER_WEP40) {
584 wpa_s->group_cipher);
591 if (wpa_s->pairwise_cipher == WPA_CIPHER_CCMP) {
593 } else if (wpa_s->pairwise_cipher == WPA_CIPHER_TKIP) {
595 } else if (wpa_s->pairwise_cipher == WPA_CIPHER_NONE) {
599 wpa_s->pairwise_cipher);
606 if (wpa_s->key_mgmt == WPA_KEY_MGMT_IEEE8021X) {
609 } else if (wpa_s->key_mgmt == WPA_KEY_MGMT_PSK) {
614 wpa_s->key_mgmt);
628 wpa_gen_wpa_ie_rsn(struct wpa_supplicant *wpa_s, uint8_t *rsn_ie)
638 if (wpa_s->group_cipher == WPA_CIPHER_CCMP) {
640 } else if (wpa_s->group_cipher == WPA_CIPHER_TKIP) {
642 } else if (wpa_s->group_cipher == WPA_CIPHER_WEP104) {
644 } else if (wpa_s->group_cipher == WPA_CIPHER_WEP40) {
648 wpa_s->group_cipher);
655 if (wpa_s->pairwise_cipher == WPA_CIPHER_CCMP) {
657 } else if (wpa_s->pairwise_cipher == WPA_CIPHER_TKIP) {
659 } else if (wpa_s->pairwise_cipher == WPA_CIPHER_NONE) {
663 wpa_s->pairwise_cipher);
670 if (wpa_s->key_mgmt == WPA_KEY_MGMT_IEEE8021X) {
673 } else if (wpa_s->key_mgmt == WPA_KEY_MGMT_PSK) {
678 wpa_s->key_mgmt);
687 if (wpa_s->cur_pmksa) {
692 (void) memcpy(pos, wpa_s->cur_pmksa->pmkid, PMKID_LEN);
702 wpa_gen_wpa_ie(struct wpa_supplicant *wpa_s, uint8_t *wpa_ie)
704 if (wpa_s->proto == WPA_PROTO_RSN)
705 return (wpa_gen_wpa_ie_rsn(wpa_s, wpa_ie));
707 return (wpa_gen_wpa_ie_wpa(wpa_s, wpa_ie));
752 wpa_supplicant_get_ssid(struct wpa_supplicant *wpa_s)
760 ssid_len = wpa_s->driver->get_ssid(wpa_s->handle, wpa_s->linkid,
767 if (wpa_s->driver->get_bssid(wpa_s->handle, wpa_s->linkid,
773 entry = wpa_s->conf->ssid;
800 wpa_supplicant_key_request(struct wpa_supplicant *wpa_s,
811 if (wpa_s->pairwise_cipher == WPA_CIPHER_CCMP)
816 if (wpa_s->driver->get_bssid(wpa_s->handle, wpa_s->linkid,
831 (void) memcpy(ethhdr->h_source, wpa_s->own_addr, IEEE80211_ADDR_LEN);
835 hdr->version = wpa_s->conf->eapol_version;
840 reply->type = wpa_s->proto == WPA_PROTO_RSN ?
843 if (wpa_s->ptk_set)
851 (void) memcpy(reply->replay_counter, wpa_s->request_counter,
853 inc_byte_array(wpa_s->request_counter, WPA_REPLAY_COUNTER_LEN);
858 wpa_eapol_key_mic(wpa_s->ptk.mic_key, ver, (uint8_t *)hdr,
864 error, pairwise, wpa_s->ptk_set, rlen);
866 (void) l2_packet_send(wpa_s->l2, rbuf, rlen);
871 wpa_supplicant_process_1_of_4(struct wpa_supplicant *wpa_s,
884 wpa_s->wpa_state = WPA_4WAY_HANDSHAKE;
888 ssid = wpa_supplicant_get_ssid(wpa_s);
895 if (wpa_s->proto == WPA_PROTO_RSN) {
926 wpa_ie_len = wpa_gen_wpa_ie(wpa_s, wpa_ie);
942 (void) memcpy(ethhdr->h_source, wpa_s->own_addr, IEEE80211_ADDR_LEN);
946 hdr->version = wpa_s->conf->eapol_version;
951 reply->type = wpa_s->proto == WPA_PROTO_RSN ?
961 if (wpa_s->renew_snonce) {
962 if (random_get_pseudo_bytes(wpa_s->snonce, WPA_NONCE_LEN)) {
969 wpa_s->renew_snonce = 0;
971 wpa_s->snonce, WPA_NONCE_LEN);
973 (void) memcpy(reply->key_nonce, wpa_s->snonce, WPA_NONCE_LEN);
974 ptk = &wpa_s->tptk;
975 (void) memcpy(wpa_s->anonce, key->key_nonce, WPA_NONCE_LEN);
977 wpa_pmk_to_ptk(wpa_s->pmk, wpa_s->own_addr, src_addr,
978 wpa_s->snonce, key->key_nonce, (uint8_t *)ptk, sizeof (*ptk));
986 wpa_s->tptk_set = 1;
987 wpa_eapol_key_mic(wpa_s->tptk.mic_key, ver, (uint8_t *)hdr,
993 (void) l2_packet_send(wpa_s->l2, rbuf, rlen);
999 wpa_supplicant_process_3_of_4_gtk(struct wpa_supplicant *wpa_s,
1010 if (tx && wpa_s->pairwise_cipher != WPA_CIPHER_NONE) {
1028 switch (wpa_s->group_cipher) {
1065 "%d", wpa_s->group_cipher);
1072 if (wpa_s->group_cipher == WPA_CIPHER_TKIP) {
1081 if (wpa_s->pairwise_cipher == WPA_CIPHER_NONE) {
1082 if (wpa_s->driver->set_key(wpa_s->handle, wpa_s->linkid, alg,
1088 } else if (wpa_s->driver->set_key(wpa_s->handle, wpa_s->linkid, alg,
1097 eloop_cancel_timeout(wpa_supplicant_scan, wpa_s, NULL);
1098 wpa_supplicant_cancel_auth_timeout(wpa_s);
1099 wpa_s->wpa_state = WPA_COMPLETED;
1103 wpa_supplicant_process_3_of_4(struct wpa_supplicant *wpa_s,
1116 wpa_s->wpa_state = WPA_4WAY_HANDSHAKE;
1122 if (wpa_s->proto == WPA_PROTO_RSN) {
1163 if (wpa_s->ap_wpa_ie &&
1164 (wpa_s->ap_wpa_ie_len != ie_len ||
1165 memcmp(wpa_s->ap_wpa_ie, ie, ie_len) != 0)) {
1170 wpa_s->ap_wpa_ie, wpa_s->ap_wpa_ie_len);
1172 wpa_supplicant_disassociate(wpa_s, REASON_IE_IN_4WAY_DIFFERS);
1173 wpa_supplicant_req_scan(wpa_s, 0, 0);
1177 if (memcmp(wpa_s->anonce, key->key_nonce, WPA_NONCE_LEN) != 0) {
1185 switch (wpa_s->pairwise_cipher) {
1212 (void) memcpy(ethhdr->h_source, wpa_s->own_addr, IEEE80211_ADDR_LEN);
1216 hdr->version = wpa_s->conf->eapol_version;
1221 reply->type = wpa_s->proto == WPA_PROTO_RSN ?
1231 (void) memcpy(reply->key_nonce, wpa_s->snonce, WPA_NONCE_LEN);
1232 wpa_eapol_key_mic(wpa_s->ptk.mic_key, ver, (uint8_t *)hdr,
1237 (void) l2_packet_send(wpa_s->l2, rbuf, rlen);
1246 wpa_s->renew_snonce = 1;
1251 switch (wpa_s->pairwise_cipher) {
1268 "cipher %d", wpa_s->pairwise_cipher);
1271 if (wpa_s->proto == WPA_PROTO_RSN) {
1278 if (wpa_s->driver->set_key(wpa_s->handle, wpa_s->linkid, alg,
1280 (uint8_t *)&wpa_s->ptk.tk1, keylen) < 0) {
1288 wpa_s->wpa_state = WPA_GROUP_HANDSHAKE;
1291 wpa_supplicant_process_3_of_4_gtk(wpa_s,
1296 wpa_supplicant_process_1_of_2(struct wpa_supplicant *wpa_s,
1311 wpa_s->wpa_state = WPA_GROUP_HANDSHAKE;
1318 if (wpa_s->proto == WPA_PROTO_RSN) {
1367 switch (wpa_s->group_cipher) {
1404 wpa_s->group_cipher);
1408 if (wpa_s->proto == WPA_PROTO_RSN) {
1425 (void) memcpy(ek + 16, wpa_s->ptk.encr_key, 16);
1434 if (aes_unwrap(wpa_s->ptk.encr_key, maxkeylen / 8,
1442 if (tx && wpa_s->pairwise_cipher != WPA_CIPHER_NONE) {
1460 if (wpa_s->group_cipher == WPA_CIPHER_TKIP) {
1468 if (wpa_s->pairwise_cipher == WPA_CIPHER_NONE) {
1469 if (wpa_s->driver->set_key(wpa_s->handle, wpa_s->linkid, alg,
1475 } else if (wpa_s->driver->set_key(wpa_s->handle, wpa_s->linkid, alg,
1492 (void) memcpy(ethhdr->h_source, wpa_s->own_addr, IEEE80211_ADDR_LEN);
1496 hdr->version = wpa_s->conf->eapol_version;
1501 reply->type = wpa_s->proto == WPA_PROTO_RSN ?
1512 wpa_eapol_key_mic(wpa_s->ptk.mic_key, ver, (uint8_t *)hdr,
1517 (void) l2_packet_send(wpa_s->l2, rbuf, rlen);
1522 eloop_cancel_timeout(wpa_supplicant_scan, wpa_s, NULL);
1523 wpa_supplicant_cancel_auth_timeout(wpa_s);
1524 wpa_s->wpa_state = WPA_COMPLETED;
1529 wpa_supplicant_verify_eapol_key_mic(struct wpa_supplicant *wpa_s,
1536 if (wpa_s->tptk_set) {
1538 wpa_eapol_key_mic(wpa_s->tptk.mic_key, ver, buf, len,
1545 wpa_s->tptk_set = 0;
1546 wpa_s->ptk_set = 1;
1547 (void) memcpy(&wpa_s->ptk, &wpa_s->tptk,
1548 sizeof (wpa_s->ptk));
1552 if (!ok && wpa_s->ptk_set) {
1554 wpa_eapol_key_mic(wpa_s->ptk.mic_key, ver, buf, len,
1570 (void) memcpy(wpa_s->rx_replay_counter, key->replay_counter,
1572 wpa_s->rx_replay_counter_set = 1;
1579 wpa_supplicant_decrypt_key_data(struct wpa_supplicant *wpa_s,
1586 if (!wpa_s->ptk_set) {
1599 (void) memcpy(ek + 16, wpa_s->ptk.encr_key, 16);
1615 if (aes_unwrap(wpa_s->ptk.encr_key, keydatalen / 8,
1633 wpa_sm_rx_eapol(struct wpa_supplicant *wpa_s,
1691 if (wpa_s->pairwise_cipher == WPA_CIPHER_CCMP &&
1695 if (wpa_s->group_cipher != WPA_CIPHER_CCMP &&
1709 if (wpa_s->rx_replay_counter_set &&
1710 memcmp(key->replay_counter, wpa_s->rx_replay_counter,
1729 wpa_supplicant_verify_eapol_key_mic(wpa_s, key, ver, buf,
1736 if (wpa_s->proto == WPA_PROTO_RSN &&
1738 wpa_supplicant_decrypt_key_data(wpa_s, key, ver))
1749 wpa_supplicant_process_3_of_4(wpa_s, src_addr, key,
1753 wpa_supplicant_process_1_of_4(wpa_s, src_addr, key,
1759 wpa_supplicant_process_1_of_2(wpa_s, src_addr, key,
1772 struct wpa_supplicant *wpa_s = ctx;
1777 if (wpa_s->eapol_received == 0) {
1780 wpa_s, wpa_s->key_mgmt == WPA_KEY_MGMT_IEEE8021X ?
1783 wpa_s->eapol_received++;
1792 wpa_sm_rx_eapol(wpa_s, src_addr, buf, len);