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