Lines Matching refs:elems
135 u8 trans_seq, struct ieee802_11_elems *elems) in tdls_verify_mic() argument
144 if (elems->link_id == NULL || elems->rsn_ie == NULL || in tdls_verify_mic()
145 elems->timeout_int == NULL || elems->ftie == NULL || in tdls_verify_mic()
146 elems->ftie_len < sizeof(struct rsn_ftie)) in tdls_verify_mic()
149 len = 2 * ETH_ALEN + 1 + 2 + 18 + 2 + elems->rsn_ie_len + in tdls_verify_mic()
150 2 + 5 + 2 + elems->ftie_len; in tdls_verify_mic()
158 os_memcpy(pos, elems->link_id + ETH_ALEN, ETH_ALEN); in tdls_verify_mic()
161 os_memcpy(pos, elems->link_id + 2 * ETH_ALEN, ETH_ALEN); in tdls_verify_mic()
166 os_memcpy(pos, elems->link_id - 2, 2 + 18); in tdls_verify_mic()
169 os_memcpy(pos, elems->rsn_ie - 2, 2 + elems->rsn_ie_len); in tdls_verify_mic()
170 pos += 2 + elems->rsn_ie_len; in tdls_verify_mic()
172 os_memcpy(pos, elems->timeout_int - 2, 2 + 5); in tdls_verify_mic()
175 os_memcpy(pos, elems->ftie - 2, 2 + elems->ftie_len); in tdls_verify_mic()
179 pos += elems->ftie_len; in tdls_verify_mic()
188 rx_ftie = (const struct rsn_ftie *) elems->ftie; in tdls_verify_mic()
204 struct ieee802_11_elems elems; in rx_data_tdls_setup_request() local
216 if (ieee802_11_parse_elems(data + 3, len - 3, &elems, 1) == in rx_data_tdls_setup_request()
217 ParseFailed || elems.link_id == NULL) in rx_data_tdls_setup_request()
221 MAC2STR(elems.link_id), MAC2STR(elems.link_id + ETH_ALEN), in rx_data_tdls_setup_request()
222 MAC2STR(elems.link_id + 2 * ETH_ALEN)); in rx_data_tdls_setup_request()
223 tdls = get_tdls(wt, elems.link_id, 1, bssid); in rx_data_tdls_setup_request()
227 if (elems.ftie && elems.ftie_len >= sizeof(struct rsn_ftie)) { in rx_data_tdls_setup_request()
229 f = (const struct rsn_ftie *) elems.ftie; in rx_data_tdls_setup_request()
290 struct ieee802_11_elems elems; in rx_data_tdls_setup_response() local
309 ieee802_11_parse_elems(data + 5, len - 5, &elems, 1) == in rx_data_tdls_setup_response()
310 ParseFailed || elems.link_id == NULL) { in rx_data_tdls_setup_response()
318 MAC2STR(elems.link_id), MAC2STR(elems.link_id + ETH_ALEN), in rx_data_tdls_setup_response()
319 MAC2STR(elems.link_id + 2 * ETH_ALEN)); in rx_data_tdls_setup_response()
321 tdls = get_tdls(wt, elems.link_id, 1, bssid); in rx_data_tdls_setup_response()
334 if (elems.ftie && elems.ftie_len >= sizeof(struct rsn_ftie)) { in rx_data_tdls_setup_response()
336 f = (const struct rsn_ftie *) elems.ftie; in rx_data_tdls_setup_response()
344 if (tdls_derive_tpk(tdls, bssid, elems.ftie, elems.ftie_len) < 1) in rx_data_tdls_setup_response()
346 if (tdls_verify_mic(wt, tdls, 2, &elems) == 0) { in rx_data_tdls_setup_response()
400 struct ieee802_11_elems elems; in rx_data_tdls_setup_confirm() local
414 if (ieee802_11_parse_elems(data + 3, len - 3, &elems, 1) == in rx_data_tdls_setup_confirm()
415 ParseFailed || elems.link_id == NULL) { in rx_data_tdls_setup_confirm()
423 MAC2STR(elems.link_id), MAC2STR(elems.link_id + ETH_ALEN), in rx_data_tdls_setup_confirm()
424 MAC2STR(elems.link_id + 2 * ETH_ALEN)); in rx_data_tdls_setup_confirm()
426 tdls = get_tdls(wt, elems.link_id, 1, bssid); in rx_data_tdls_setup_confirm()
437 if (elems.ftie && elems.ftie_len >= sizeof(struct rsn_ftie)) { in rx_data_tdls_setup_confirm()
439 f = (const struct rsn_ftie *) elems.ftie; in rx_data_tdls_setup_confirm()
451 if (tdls_derive_tpk(tdls, bssid, elems.ftie, elems.ftie_len) < 1) { in rx_data_tdls_setup_confirm()
452 if (elems.ftie == NULL) in rx_data_tdls_setup_confirm()
456 if (tdls_verify_mic(wt, tdls, 3, &elems) == 0) { in rx_data_tdls_setup_confirm()
469 os_memcpy(link_id, elems.link_id, ETH_ALEN); in rx_data_tdls_setup_confirm()
470 os_memcpy(link_id + ETH_ALEN, elems.link_id + 2 * ETH_ALEN, ETH_ALEN); in rx_data_tdls_setup_confirm()
471 os_memcpy(link_id + 2 * ETH_ALEN, elems.link_id + ETH_ALEN, ETH_ALEN); in rx_data_tdls_setup_confirm()
483 struct ieee802_11_elems *elems) in tdls_verify_mic_teardown() argument
492 if (elems->link_id == NULL || elems->ftie == NULL || in tdls_verify_mic_teardown()
493 elems->ftie_len < sizeof(struct rsn_ftie)) in tdls_verify_mic_teardown()
496 len = 2 + 18 + 2 + 1 + 1 + 2 + elems->ftie_len; in tdls_verify_mic_teardown()
504 os_memcpy(pos, elems->link_id - 2, 2 + 18); in tdls_verify_mic_teardown()
514 os_memcpy(pos, elems->ftie - 2, 2 + elems->ftie_len); in tdls_verify_mic_teardown()
518 pos += elems->ftie_len; in tdls_verify_mic_teardown()
527 rx_ftie = (const struct rsn_ftie *) elems->ftie; in tdls_verify_mic_teardown()
544 struct ieee802_11_elems elems; in rx_data_tdls_teardown() local
554 if (ieee802_11_parse_elems(data + 2, len - 2, &elems, 1) == in rx_data_tdls_teardown()
555 ParseFailed || elems.link_id == NULL) in rx_data_tdls_teardown()
559 MAC2STR(elems.link_id), MAC2STR(elems.link_id + ETH_ALEN), in rx_data_tdls_teardown()
560 MAC2STR(elems.link_id + 2 * ETH_ALEN)); in rx_data_tdls_teardown()
562 tdls = get_tdls(wt, elems.link_id, 1, bssid); in rx_data_tdls_teardown()
568 tdls_verify_mic_teardown(wt, tdls, 4, data, &elems); in rx_data_tdls_teardown()