Home | History | Annotate | Download | only in wpa_supplicant

Lines Matching full:data

42 	struct eap_psk_data *data;
49 data = os_zalloc(sizeof(*data));
50 if (data == NULL)
52 eap_psk_key_setup(config->eappsk, data->ak, data->kdk);
53 wpa_hexdump_key(MSG_DEBUG, "EAP-PSK: AK", data->ak, EAP_PSK_AK_LEN);
54 wpa_hexdump_key(MSG_DEBUG, "EAP-PSK: KDK", data->kdk, EAP_PSK_KDK_LEN);
55 data->state = PSK_INIT;
58 data->id_p = os_malloc(config->nai_len);
59 if (data->id_p)
60 os_memcpy(data->id_p, config->nai, config->nai_len);
61 data->id_p_len = config->nai_len;
63 if (data->id_p == NULL) {
65 os_free(data);
69 return data;
75 struct eap_psk_data *data = priv;
76 os_free(data->id_s);
77 os_free(data->id_p);
78 os_free(data);
82 static u8 * eap_psk_process_1(struct eap_psk_data *data,
116 os_free(data->id_s);
117 data->id_s_len = be_to_host16(hdr1->length) - sizeof(*hdr1);
118 data->id_s = os_malloc(data->id_s_len);
119 if (data->id_s == NULL) {
121 "ID_S (len=%lu)", (unsigned long) data->id_s_len);
125 os_memcpy(data->id_s, (u8 *) (hdr1 + 1), data->id_s_len);
127 data->id_s, data->id_s_len);
129 if (hostapd_get_rand(data->rand_p, EAP_PSK_RAND_LEN)) {
130 wpa_printf(MSG_ERROR, "EAP-PSK: Failed to get random data");
135 *respDataLen = sizeof(*hdr2) + data->id_p_len;
146 os_memcpy(hdr2->rand_p, data->rand_p, EAP_PSK_RAND_LEN);
147 os_memcpy((u8 *) (hdr2 + 1), data->id_p, data->id_p_len);
149 buflen = data->id_p_len + data->id_s_len + 2 * EAP_PSK_RAND_LEN;
155 os_memcpy(buf, data->id_p, data->id_p_len);
156 pos = buf + data->id_p_len;
157 os_memcpy(pos, data->id_s, data->id_s_len);
158 pos += data->id_s_len;
161 os_memcpy(pos, data->rand_p, EAP_PSK_RAND_LEN);
162 omac1_aes_128(data->ak, buf, buflen, hdr2->mac_p);
168 (u8 *) (hdr2 + 1), data->id_p_len);
170 data->state = PSK_MAC_SENT;
176 static u8 * eap_psk_process_3(struct eap_psk_data *data,
218 wpa_printf(MSG_INFO, "EAP-PSK: Too short PCHANNEL data in "
226 buflen = data->id_s_len + EAP_PSK_RAND_LEN;
230 os_memcpy(buf, data->id_s, data->id_s_len);
231 os_memcpy(buf + data->id_s_len, data->rand_p, EAP_PSK_RAND_LEN);
232 omac1_aes_128(data->ak, buf, buflen, mac);
243 eap_psk_derive_keys(data->kdk, data->rand_p, data->tek,
244 data->msk, data->emsk);
245 wpa_hexdump_key(MSG_DEBUG, "EAP-PSK: TEK", data->tek, EAP_PSK_TEK_LEN);
246 wpa_hexdump_key(MSG_DEBUG, "EAP-PSK: MSK", data->msk, EAP_MSK_LEN);
247 wpa_hexdump_key(MSG_DEBUG, "EAP-PSK: EMSK", data->emsk, EAP_EMSK_LEN);
273 if (aes_128_eax_decrypt(data->tek, nonce, sizeof(nonce),
338 aes_128_eax_encrypt(data->tek, nonce, sizeof(nonce), resp, 22,
345 data->state = PSK_DONE;
360 struct eap_psk_data *data = priv;
378 switch (data->state) {
380 resp = eap_psk_process_1(data, ret, reqData, len,
384 resp = eap_psk_process_3(data, ret, reqData, len,
404 struct eap_psk_data *data = priv;
405 return data->state == PSK_DONE;
411 struct eap_psk_data *data = priv;
414 if (data->state != PSK_DONE)
422 os_memcpy(key, data->msk, EAP_MSK_LEN);
430 struct eap_psk_data *data = priv;
433 if (data->state != PSK_DONE)
441 os_memcpy(key, data->emsk, EAP_EMSK_LEN);