Home | History | Annotate | Download | only in wpa_supplicant

Lines Matching defs:peer

30 	struct ibss_rsn_peer *peer;
32 for (peer = ibss_rsn->peers; peer; peer = peer->next)
33 if (os_memcmp(addr, peer->addr, ETH_ALEN) == 0)
35 return peer;
39 static void ibss_rsn_free(struct ibss_rsn_peer *peer)
41 eloop_cancel_timeout(ibss_rsn_auth_timeout, peer, NULL);
42 wpa_auth_sta_deinit(peer->auth);
43 wpa_sm_deinit(peer->supp);
44 os_free(peer);
50 struct ibss_rsn_peer *peer = ctx;
51 peer->supp_state = state;
57 struct ibss_rsn_peer *peer = ctx;
58 return peer->supp_state;
65 struct ibss_rsn_peer *peer = ctx;
66 struct wpa_supplicant *wpa_s = peer->ibss_rsn->wpa_s;
110 struct ibss_rsn_peer *peer = ctx;
114 return wpa_sm_set_ap_rsn_ie(peer->supp,
123 static void ibss_check_rsn_completed(struct ibss_rsn_peer *peer)
125 struct wpa_supplicant *wpa_s = peer->ibss_rsn->wpa_s;
127 if ((peer->authentication_status &
131 if (peer->authentication_status & IBSS_RSN_REPORTED_PTK)
133 peer->authentication_status |= IBSS_RSN_REPORTED_PTK;
135 MAC2STR(peer->addr));
144 struct ibss_rsn_peer *peer = ctx;
153 peer->authentication_status |= IBSS_RSN_SET_PTK_SUPP;
154 ibss_check_rsn_completed(peer);
157 * initiated by the peer with highest MAC address is used.
159 if (os_memcmp(peer->ibss_rsn->wpa_s->own_addr, peer->addr,
167 addr = peer->addr;
168 return wpa_drv_set_key(peer->ibss_rsn->wpa_s, alg, addr, key_idx,
175 struct ibss_rsn_peer *peer = ctx;
176 return wpa_supplicant_get_ssid(peer->ibss_rsn->wpa_s);
202 static int ibss_rsn_supp_init(struct ibss_rsn_peer *peer, const u8 *own_addr,
209 ctx->ctx = peer;
210 ctx->msg_ctx = peer->ibss_rsn->wpa_s;
221 peer->supp = wpa_sm_init(ctx);
222 if (peer->supp == NULL) {
228 wpa_sm_set_own_addr(peer->supp, own_addr);
229 wpa_sm_set_param(peer->supp, WPA_PARAM_RSN_ENABLED, 1);
230 wpa_sm_set_param(peer->supp, WPA_PARAM_PROTO, WPA_PROTO_RSN);
231 wpa_sm_set_param(peer->supp, WPA_PARAM_PAIRWISE, WPA_CIPHER_CCMP);
232 wpa_sm_set_param(peer->supp, WPA_PARAM_GROUP, WPA_CIPHER_CCMP);
233 wpa_sm_set_param(peer->supp, WPA_PARAM_KEY_MGMT, WPA_KEY_MGMT_PSK);
234 wpa_sm_set_pmk(peer->supp, psk, PMK_LEN, NULL, NULL);
236 peer->supp_ie_len = sizeof(peer->supp_ie);
237 if (wpa_sm_set_assoc_wpa_ie_default(peer->supp, peer->supp_ie,
238 &peer->supp_ie_len) < 0) {
244 wpa_sm_notify_assoc(peer->supp, peer->addr);
311 struct ibss_rsn_peer *peer;
312 peer = ibss_rsn_get_peer(ibss_rsn, addr);
313 if (peer) {
314 peer->authentication_status |=
316 ibss_check_rsn_completed(peer);
321 * initiated by the peer with highest MAC address is used.
347 struct ibss_rsn_peer *peer;
351 for (peer = ibss_rsn->peers; peer; peer = peer->next) {
352 if (peer->auth && cb(peer->auth, cb_ctx))
361 struct ibss_rsn_peer *peer, int authorized)
366 res = wpa_drv_sta_set_flags(ibss_rsn->wpa_s, peer->addr,
370 MAC2STR(peer->addr));
372 res = wpa_drv_sta_set_flags(ibss_rsn->wpa_s, peer->addr,
375 MAC2STR(peer->addr));
381 MAC2STR(peer->addr), errno);
390 struct ibss_rsn_peer *peer = ibss_rsn_get_peer(ibss_rsn, addr);
392 if (peer == NULL)
397 ibss_set_sta_authorized(ibss_rsn, peer, value);
447 struct ibss_rsn_peer *peer)
449 peer->auth = wpa_auth_sta_init(ibss_rsn->auth_group, peer->addr, NULL);
450 if (peer->auth == NULL) {
455 /* TODO: get peer RSN IE with Probe Request */
456 if (wpa_validate_wpa_ie(ibss_rsn->auth_group, peer->auth,
467 if (wpa_auth_sm_event(peer->auth, WPA_ASSOC))
470 if (wpa_auth_sta_associated(ibss_rsn->auth_group, peer->auth))
506 static int ibss_rsn_is_auth_started(struct ibss_rsn_peer * peer)
508 return peer->authentication_status &
516 struct ibss_rsn_peer *peer;
520 peer = ibss_rsn_get_peer(ibss_rsn, addr);
521 if (peer) {
522 wpa_printf(MSG_DEBUG, "RSN: IBSS Supplicant for peer "MACSTR
524 return peer;
527 wpa_printf(MSG_DEBUG, "RSN: Starting IBSS Supplicant for peer "MACSTR,
530 peer = os_zalloc(sizeof(*peer));
531 if (peer == NULL) {
536 peer->ibss_rsn = ibss_rsn;
537 os_memcpy(peer->addr, addr, ETH_ALEN);
538 peer->authentication_status = IBSS_RSN_AUTH_NOT_AUTHENTICATED;
540 if (ibss_rsn_supp_init(peer, ibss_rsn->wpa_s->own_addr,
542 ibss_rsn_free(peer);
546 peer->next = ibss_rsn->peers;
547 ibss_rsn->peers = peer;
549 return peer;
555 struct ibss_rsn_peer *peer = eloop_ctx;
558 * Assume peer does not support Authentication exchange or the frame was
563 MACSTR " - start authenticator", MAC2STR(peer->addr));
565 peer->authentication_status |= IBSS_RSN_AUTH_BY_US;
566 ibss_rsn_auth_init(peer->ibss_rsn, peer);
572 struct ibss_rsn_peer *peer;
578 /* if the peer already exists, exit immediately */
579 peer = ibss_rsn_get_peer(ibss_rsn, addr);
580 if (peer)
583 peer = ibss_rsn_peer_init(ibss_rsn, addr);
584 if (peer == NULL)
594 peer->authentication_status |= IBSS_RSN_AUTH_BY_US;
595 return ibss_rsn_auth_init(ibss_rsn, peer);
597 os_get_reltime(&peer->own_auth_tx);
598 eloop_register_timeout(1, 0, ibss_rsn_auth_timeout, peer, NULL);
606 struct ibss_rsn_peer *peer, int reason)
610 if (ibss_rsn == NULL || peer == NULL)
613 already_started = ibss_rsn_is_auth_started(peer);
614 peer->authentication_status |= reason;
618 "started for peer " MACSTR, MAC2STR(peer->addr));
623 "for now-authenticated peer " MACSTR, MAC2STR(peer->addr));
625 return ibss_rsn_auth_init(ibss_rsn, peer);
631 struct ibss_rsn_peer *peer, *prev;
639 peer = ibss_rsn->peers;
640 while (peer) {
641 prev = peer;
642 peer = peer->next;
644 ibss_rsn->peers = peer;
647 /* remove specific peer */
648 peer " MACSTR,
651 for (prev = NULL, peer = ibss_rsn->peers; peer != NULL;
652 prev = peer, peer = peer->next) {
653 if (os_memcmp(peermac, peer->addr, ETH_ALEN) == 0) {
655 ibss_rsn->peers = peer->next;
657 prev->next = peer->next;
658 ibss_rsn_free(peer);
660 "removed a specific peer",
690 struct ibss_rsn_peer *peer, *prev;
695 peer = ibss_rsn->peers;
696 while (peer) {
697 prev = peer;
698 peer = peer->next;
753 struct ibss_rsn_peer *peer,
768 peer->authentication_status |= IBSS_RSN_AUTH_EAPOL_BY_PEER;
770 MACSTR, MAC2STR(peer->addr));
771 wpa_sm_rx_eapol(peer->supp, peer->addr, tmp, len);
773 if (ibss_rsn_is_auth_started(peer) == 0) {
776 "authenticated", MAC2STR(peer->addr));
782 "from "MACSTR, MAC2STR(peer->addr));
783 wpa_receive(ibss_rsn->auth_group, peer->auth, tmp, len);
794 struct ibss_rsn_peer *peer;
799 peer = ibss_rsn_get_peer(ibss_rsn, src_addr);
800 if (peer)
801 return ibss_rsn_process_rx_eapol(ibss_rsn, peer, buf, len);
805 * Create new IBSS peer based on an EAPOL message from the peer
808 peer = ibss_rsn_peer_init(ibss_rsn, src_addr);
809 if (peer == NULL)
812 /* assume the peer is authenticated already */
813 wpa_printf(MSG_DEBUG, "RSN: IBSS Not using IBSS Auth for peer "
815 ibss_rsn_peer_authenticated(ibss_rsn, peer,
834 struct ibss_rsn_peer *peer,
840 if (peer &&
841 peer->authentication_status & (IBSS_RSN_SET_PTK_SUPP |
844 * where the peer STA has restarted and lost its key while we
846 wpa_printf(MSG_DEBUG, "RSN: Clear pairwise key for peer "
852 if (peer &&
853 peer->authentication_status & IBSS_RSN_AUTH_EAPOL_BY_PEER) {
854 if (peer->own_auth_tx.sec) {
857 os_reltime_sub(&now, &peer->own_auth_tx, &diff);
865 * A peer sent us an Authentication frame even though it already
874 peer = NULL;
877 if (!peer) {
878 peer = ibss_rsn_peer_init(ibss_rsn, addr);
879 if (!peer)
882 wpa_printf(MSG_DEBUG, "RSN: IBSS Auth started by peer " MACSTR,
890 ibss_rsn_peer_authenticated(ibss_rsn, peer, IBSS_RSN_AUTH_EAPOL_BY_US);
898 struct ibss_rsn_peer *peer;
911 peer = ibss_rsn_get_peer(ibss_rsn, header->sa);
915 ibss_rsn_handle_auth_1_of_2(ibss_rsn, peer, header->sa);
920 if (!peer) {
927 eloop_cancel_timeout(ibss_rsn_auth_timeout, peer, NULL);
930 ibss_rsn_peer_authenticated(ibss_rsn, peer,