Lines Matching refs:group
55 struct wpa_group *group);
58 struct wpa_group *group);
60 struct wpa_group *group);
67 struct wpa_group *group);
69 struct wpa_group *group);
71 struct wpa_group *group);
75 struct wpa_group *group);
118 sm->wpa_auth->group->GKeyDoneStations--; in wpa_gkeydone_sta()
123 sm->mld_links[link_id].wpa_auth->group->GKeyDoneStations--; in wpa_gkeydone_sta()
141 sm->mld_links[link_id].wpa_auth->group); in wpa_release_link_auth_ref()
477 if (random_get_bytes(wpa_auth->group->GMK, WPA_GMK_LEN)) { in wpa_rekey_gmk()
483 wpa_auth->group->GMK, WPA_GMK_LEN); in wpa_rekey_gmk()
495 struct wpa_group *group, *next; in wpa_rekey_all_groups() local
498 group = wpa_auth->group; in wpa_rekey_all_groups()
499 while (group) { in wpa_rekey_all_groups()
502 MAC2STR(wpa_auth->addr), group->vlan_id); in wpa_rekey_all_groups()
503 wpa_group_get(wpa_auth, group); in wpa_rekey_all_groups()
505 group->GTKReKey = true; in wpa_rekey_all_groups()
507 group->changed = false; in wpa_rekey_all_groups()
508 wpa_group_sm_step(wpa_auth, group); in wpa_rekey_all_groups()
509 } while (group->changed); in wpa_rekey_all_groups()
511 next = group->next; in wpa_rekey_all_groups()
512 wpa_group_put(wpa_auth, group); in wpa_rekey_all_groups()
513 group = next; in wpa_rekey_all_groups()
522 struct wpa_group *group, *next; in wpa_update_all_gtks() local
524 group = wpa_auth->group; in wpa_update_all_gtks()
525 while (group) { in wpa_update_all_gtks()
526 wpa_group_get(wpa_auth, group); in wpa_update_all_gtks()
528 wpa_group_update_gtk(wpa_auth, group); in wpa_update_all_gtks()
529 next = group->next; in wpa_update_all_gtks()
530 wpa_group_put(wpa_auth, group); in wpa_update_all_gtks()
531 group = next; in wpa_update_all_gtks()
643 struct wpa_group *group) in wpa_group_init_gmk_and_counter() argument
649 if (random_get_bytes(group->GMK, WPA_GMK_LEN) < 0) in wpa_group_init_gmk_and_counter()
651 wpa_hexdump_key(MSG_DEBUG, "GMK", group->GMK, WPA_GMK_LEN); in wpa_group_init_gmk_and_counter()
659 ptr = (unsigned long) group; in wpa_group_init_gmk_and_counter()
669 group->Counter, WPA_NONCE_LEN) < 0) in wpa_group_init_gmk_and_counter()
672 group->Counter, WPA_NONCE_LEN); in wpa_group_init_gmk_and_counter()
681 struct wpa_group *group; in wpa_group_init() local
683 group = os_zalloc(sizeof(struct wpa_group)); in wpa_group_init()
684 if (!group) in wpa_group_init()
687 group->GTKAuthenticator = true; in wpa_group_init()
688 group->vlan_id = vlan_id; in wpa_group_init()
689 group->GTK_len = wpa_cipher_key_len(wpa_auth->conf.wpa_group); in wpa_group_init()
702 if (wpa_group_init_gmk_and_counter(wpa_auth, group) < 0) { in wpa_group_init()
705 os_free(group); in wpa_group_init()
709 group->GInit = true; in wpa_group_init()
715 wpa_group_sm_step(wpa_auth, group); in wpa_group_init()
716 group->GInit = false; in wpa_group_init()
717 wpa_group_sm_step(wpa_auth, group); in wpa_group_init()
720 return group; in wpa_group_init()
763 wpa_auth->group = wpa_group_init(wpa_auth, 0, 1);
764 if (!wpa_auth->group) {
774 os_free(wpa_auth->group);
784 os_free(wpa_auth->group);
836 struct wpa_group *group = wpa_auth->group; local
840 wpa_group_sm_step(wpa_auth, group);
841 group->GInit = false;
842 wpa_group_sm_step(wpa_auth, group);
843 if (group->wpa_group_state == WPA_GROUP_FATAL_FAILURE)
866 struct wpa_group *group, *prev; local
889 group = wpa_auth->group;
890 while (group) {
891 prev = group;
892 group = group->next;
909 struct wpa_group *group; local
925 group = wpa_auth->group;
926 group->GTK_len = wpa_cipher_key_len(wpa_auth->conf.wpa_group);
927 group->GInit = true;
928 wpa_group_sm_step(wpa_auth, group);
929 group->GInit = false;
930 wpa_group_sm_step(wpa_auth, group);
942 if (wpa_auth->group->wpa_group_state == WPA_GROUP_FATAL_FAILURE)
953 sm->group = wpa_auth->group;
954 wpa_group_get(sm->wpa_auth, sm->group);
1053 sm->mld_links[link_id].wpa_auth->group);
1057 wpa_group_put(sm->wpa_auth, sm->group);
1263 struct wpa_state_machine *sm, int group) argument
1268 group);
1270 if (group && wpa_auth->conf.wpa_group != WPA_CIPHER_TKIP) {
1273 } else if (!group && sm->pairwise != WPA_CIPHER_TKIP) {
1383 struct wpa_group *group; local
1385 for (group = wpa_auth->group; group; group = group->next) {
1386 if (group->GKeyDoneStations)
1693 if (sm->group->reject_4way_hs_for_entropy) {
2134 sm->group->Counter + WPA_NONCE_LEN - 16, 16);
2135 inc_byte_array(sm->group->Counter, WPA_NONCE_LEN);
2514 struct wpa_group *group) argument
2516 if (group->first_sta_seen)
2530 group->reject_4way_hs_for_entropy = true;
2532 group->first_sta_seen = true;
2533 group->reject_4way_hs_for_entropy = false;
2536 if (wpa_group_init_gmk_and_counter(wpa_auth, group) < 0 ||
2537 wpa_gtk_update(wpa_auth, group) < 0 ||
2538 wpa_group_config_group_keys(wpa_auth, group) < 0) {
2540 group->first_sta_seen = false;
2541 group->reject_4way_hs_for_entropy = true;
2550 wpa_group_ensure_init(sm->wpa_auth, sm->group);
3399 gsm = sm->group;
4064 struct wpa_group *gsm = sm->group;
4103 gsm = wpa_auth->group;
4212 struct wpa_group *gsm = a->group;
4245 gsm = a->group;
4282 if (!wpa_auth || !wpa_auth->group)
4288 kde_len += wpa_auth->group->GTK_len;
4662 struct wpa_group *gsm = sm->group;
5313 struct wpa_group *gsm = sm->group;
5547 struct wpa_group *group) argument
5553 os_memcpy(group->GNonce, group->Counter, WPA_NONCE_LEN);
5554 inc_byte_array(group->Counter, WPA_NONCE_LEN);
5555 if (wpa_gmk_to_gtk(group->GMK, "Group key expansion",
5556 wpa_auth->addr, group->GNonce,
5557 group->GTK[group->GN - 1], group->GTK_len) < 0)
5560 group->GTK[group->GN - 1], group->GTK_len);
5564 os_memcpy(group->GNonce, group->Counter, WPA_NONCE_LEN);
5565 inc_byte_array(group->Counter, WPA_NONCE_LEN);
5566 if (wpa_gmk_to_gtk(group->GMK, "IGTK key expansion",
5567 wpa_auth->addr, group->GNonce,
5568 group->IGTK[group->GN_igtk - 4], len) < 0)
5571 group->IGTK[group->GN_igtk - 4], len);
5581 group = wpa_auth->conf.tx_bss_auth->group;
5582 if (group->bigtk_set)
5588 os_memcpy(group->GNonce, group->Counter, WPA_NONCE_LEN);
5589 inc_byte_array(group->Counter, WPA_NONCE_LEN);
5590 if (wpa_gmk_to_gtk(group->GMK, "BIGTK key expansion",
5591 wpa_auth->addr, group->GNonce,
5592 group->BIGTK[group->GN_bigtk - 6], len) < 0)
5594 group->bigtk_set = true;
5596 group->BIGTK[group->GN_bigtk - 6], len);
5603 struct wpa_group *group) argument
5607 group->vlan_id);
5608 group->changed = false; /* GInit is not cleared here; avoid loop */
5609 group->wpa_group_state = WPA_GROUP_GTK_INIT;
5612 os_memset(group->GTK, 0, sizeof(group->GTK));
5613 group->GN = 1;
5614 group->GM = 2;
5615 group->GN_igtk = 4;
5616 group->GM_igtk = 5;
5617 group->GN_bigtk = 6;
5618 group->GM_bigtk = 7;
5620 wpa_gtk_update(wpa_auth, group);
5626 if (ctx != NULL && ctx != sm->group)
5651 sm->group->GKeyDoneStations++;
5680 struct wpa_group *gsm = sm->group;
5720 struct wpa_group *gsm = sm->group;
5759 struct wpa_group *gsm = wpa_auth->group;
5798 struct wpa_group *group) argument
5802 tmp = group->GM;
5803 group->GM = group->GN;
5804 group->GN = tmp;
5805 tmp = group->GM_igtk;
5806 group->GM_igtk = group->GN_igtk;
5807 group->GN_igtk = tmp;
5808 tmp = group->GM_bigtk;
5809 group->GM_bigtk = group->GN_bigtk;
5810 group->GN_bigtk = tmp;
5814 wpa_gtk_update(wpa_auth, group);
5819 struct wpa_group *group) argument
5823 group->vlan_id);
5824 group->changed = true;
5825 group->wpa_group_state = WPA_GROUP_SETKEYS;
5826 group->GTKReKey = false;
5833 wpa_group_update_gtk(wpa_auth, group);
5835 if (group->GKeyDoneStations) {
5838 group->GKeyDoneStations);
5839 group->GKeyDoneStations = 0;
5845 wpa_auth_for_each_sta(wpa_auth, wpa_group_update_sta, group);
5847 group->GKeyDoneStations);
5852 struct wpa_group *group) argument
5857 if (wpa_auth_set_key(wpa_auth, group->vlan_id,
5859 broadcast_ether_addr, group->GN,
5860 group->GTK[group->GN - 1], group->GTK_len,
5872 wpa_auth_set_key(wpa_auth, group->vlan_id, alg,
5873 broadcast_ether_addr, group->GN_igtk,
5874 group->IGTK[group->GN_igtk - 4], len,
5882 group = wpa_auth->group;
5883 if (!group->bigtk_set || group->bigtk_configured)
5886 if (wpa_auth_set_key(wpa_auth, group->vlan_id, alg,
5887 broadcast_ether_addr, group->GN_bigtk,
5888 group->BIGTK[group->GN_bigtk - 6], len,
5892 group->bigtk_configured = true;
5901 if (sm->group == ctx) {
5913 struct wpa_group *group) argument
5917 group->changed = true;
5918 group->wpa_group_state = WPA_GROUP_FATAL_FAILURE;
5919 wpa_auth_for_each_sta(wpa_auth, wpa_group_disconnect_cb, group);
5924 struct wpa_group *group) argument
5928 group->vlan_id);
5929 group->changed = true;
5930 group->wpa_group_state = WPA_GROUP_SETKEYSDONE;
5932 if (wpa_group_config_group_keys(wpa_auth, group) < 0) {
5933 wpa_group_fatal_failure(wpa_auth, group);
5942 struct wpa_group *group) argument
5944 if (group->GInit) {
5945 wpa_group_gtk_init(wpa_auth, group);
5946 } else if (group->wpa_group_state == WPA_GROUP_FATAL_FAILURE) {
5948 } else if (group->wpa_group_state == WPA_GROUP_GTK_INIT &&
5949 group->GTKAuthenticator) {
5950 wpa_group_setkeysdone(wpa_auth, group);
5951 } else if (group->wpa_group_state == WPA_GROUP_SETKEYSDONE &&
5952 group->GTKReKey) {
5953 wpa_group_setkeys(wpa_auth, group);
5954 } else if (group->wpa_group_state == WPA_GROUP_SETKEYS) {
5955 if (group->GKeyDoneStations == 0)
5956 wpa_group_setkeysdone(wpa_auth, group);
5957 else if (group->GTKReKey)
5958 wpa_group_setkeys(wpa_auth, group);
5970 sm->wpa_auth->group->changed = false;
5974 sm->mld_links[link_id].wpa_auth->group->changed = false;
5987 wpa_group_sm_step(sm->wpa_auth, sm->wpa_auth->group);
5992 sm->mld_links[link_id].wpa_auth->group);
6007 changed = sm->wpa_auth->group->changed;
6011 changed |= sm->mld_links[link_id].wpa_auth->group->changed;
6077 struct wpa_group *group; local
6082 group = wpa_auth->group;
6085 tmp = group->GM;
6086 group->GM = group->GN;
6087 group->GN = tmp;
6088 tmp = group->GM_igtk;
6089 group->GM_igtk = group->GN_igtk;
6090 group->GN_igtk = tmp;
6092 tmp = group->GM_bigtk;
6093 group->GM_bigtk = group->GN_bigtk;
6094 group->GN_bigtk = tmp;
6096 wpa_gtk_update(wpa_auth, group);
6097 wpa_group_config_group_keys(wpa_auth, group);
6194 wpa_auth->group->wpa_group_state);
6592 struct wpa_group *group) argument
6594 struct wpa_group *prev = wpa_auth->group;
6597 group->vlan_id);
6600 if (prev->next == group) {
6602 prev->next = group->next;
6603 os_free(group);
6614 struct wpa_group *group) argument
6617 if (wpa_auth->group == group)
6620 group->references++;
6626 struct wpa_group *group) argument
6629 if (wpa_auth->group == group)
6632 group->references--;
6633 if (group->references)
6635 wpa_group_free(wpa_auth, group);
6646 struct wpa_group *group; local
6648 if (!wpa_auth || !wpa_auth->group)
6653 group = wpa_group_init(wpa_auth, vlan_id, 0);
6654 if (!group)
6657 group->next = wpa_auth->group->next;
6658 wpa_auth->group->next = group;
6660 return group;
6672 struct wpa_group *group; local
6677 group = wpa_auth->group;
6678 while (group) {
6679 if (group->vlan_id == vlan_id)
6681 group = group->next;
6684 if (!group) {
6685 group = wpa_auth_add_group(wpa_auth, vlan_id);
6686 if (!group)
6694 wpa_group_get(wpa_auth, group);
6695 group->num_setup_iface++;
6697 if (group->wpa_group_state == WPA_GROUP_FATAL_FAILURE)
6712 struct wpa_group *group; local
6718 group = wpa_auth->group;
6719 while (group) {
6720 if (group->vlan_id == vlan_id)
6722 group = group->next;
6725 if (!group)
6732 if (group->num_setup_iface <= 0) {
6738 group->num_setup_iface--;
6740 if (group->wpa_group_state == WPA_GROUP_FATAL_FAILURE)
6743 if (group->references > 1) {
6750 wpa_group_put(wpa_auth, group);
6758 struct wpa_group *group; local
6763 group = sm->wpa_auth->group;
6764 while (group) {
6765 if (group->vlan_id == vlan_id)
6767 group = group->next;
6770 if (!group) {
6771 group = wpa_auth_add_group(sm->wpa_auth, vlan_id);
6772 if (!group)
6776 if (sm->group == group)
6779 if (group->wpa_group_state == WPA_GROUP_FATAL_FAILURE)
6786 wpa_group_get(sm->wpa_auth, group);
6787 wpa_group_put(sm->wpa_auth, sm->group);
6788 sm->group = group;
6869 struct wpa_group *group; local
6873 for (group = wpa_auth->group; group; group = group->next)
6874 wpa_group_config_group_keys(wpa_auth, group);
7046 struct wpa_group *gsm = sm->group;
7224 struct wpa_group *gsm = sm->group;
7412 sm_link->wpa_auth->group);