Home | History | Annotate | Download | only in wps

Lines Matching refs:wps

62 int wps_derive_keys(struct wps_data *wps)
70 if (wps->dh_privkey == NULL) {
71 wpa_printf(MSG_DEBUG, "WPS: Own DH private key not available");
75 pubkey = wps->registrar ? wps->dh_pubkey_e : wps->dh_pubkey_r;
77 wpa_printf(MSG_DEBUG, "WPS: Peer DH public key not available");
81 wpa_hexdump_buf_key(MSG_DEBUG, "WPS: DH Private Key", wps->dh_privkey);
82 wpa_hexdump_buf(MSG_DEBUG, "WPS: DH peer Public Key", pubkey);
83 dh_shared = dh5_derive_shared(wps->dh_ctx, pubkey, wps->dh_privkey);
84 dh5_free(wps->dh_ctx);
85 wps->dh_ctx = NULL;
88 wpa_printf(MSG_DEBUG, "WPS: Failed to derive DH shared key");
93 wpabuf_free(wps->dh_privkey);
94 wps->dh_privkey = NULL;
96 wpa_hexdump_buf_key(MSG_DEBUG, "WPS: DH shared key", dh_shared);
102 wpa_hexdump_key(MSG_DEBUG, "WPS: DHKey", dhkey, sizeof(dhkey));
106 addr[0] = wps->nonce_e;
108 addr[1] = wps->mac_addr_e;
110 addr[2] = wps->nonce_r;
113 wpa_hexdump_key(MSG_DEBUG, "WPS: KDK", kdk, sizeof(kdk));
117 os_memcpy(wps->authkey, keys, WPS_AUTHKEY_LEN);
118 os_memcpy(wps->keywrapkey, keys + WPS_AUTHKEY_LEN, WPS_KEYWRAPKEY_LEN);
119 os_memcpy(wps->emsk, keys + WPS_AUTHKEY_LEN + WPS_KEYWRAPKEY_LEN,
122 wpa_hexdump_key(MSG_DEBUG, "WPS: AuthKey",
123 wps->authkey, WPS_AUTHKEY_LEN);
124 wpa_hexdump_key(MSG_DEBUG, "WPS: KeyWrapKey",
125 wps->keywrapkey, WPS_KEYWRAPKEY_LEN);
126 wpa_hexdump_key(MSG_DEBUG, "WPS: EMSK", wps->emsk, WPS_EMSK_LEN);
132 void wps_derive_psk(struct wps_data *wps, const u8 *dev_passwd,
137 hmac_sha256(wps->authkey, WPS_AUTHKEY_LEN, dev_passwd,
139 os_memcpy(wps->psk1, hash, WPS_PSK_LEN);
140 hmac_sha256(wps->authkey, WPS_AUTHKEY_LEN,
143 os_memcpy(wps->psk2, hash, WPS_PSK_LEN);
145 wpa_hexdump_ascii_key(MSG_DEBUG, "WPS: Device Password",
147 wpa_hexdump_key(MSG_DEBUG, "WPS: PSK1", wps->psk1, WPS_PSK_LEN);
148 wpa_hexdump_key(MSG_DEBUG, "WPS: PSK2", wps->psk2, WPS_PSK_LEN);
152 struct wpabuf * wps_decrypt_encr_settings(struct wps_data *wps, const u8 *encr,
164 wpa_printf(MSG_DEBUG, "WPS: No Encrypted Settings received");
172 wpa_hexdump(MSG_MSGDUMP, "WPS: Encrypted Settings", encr, encr_len);
174 if (aes_128_cbc_decrypt(wps->keywrapkey, encr, wpabuf_mhead(decrypted),
180 wpa_hexdump_buf_key(MSG_MSGDUMP, "WPS: Decrypted Encrypted Settings",
186 wpa_printf(MSG_DEBUG, "WPS: Invalid PKCS#5 v2.0 pad value");
192 wpa_printf(MSG_DEBUG, "WPS: Invalid PKCS#5 v2.0 pad "
271 void wps_fail_event(struct wps_context *wps, enum wps_msg_type msg,
276 if (wps->event_cb == NULL)
284 wps->event_cb(wps->cb_ctx, WPS_EV_FAIL, &data);
288 void wps_success_event(struct wps_context *wps, const u8 *mac_addr)
292 if (wps->event_cb == NULL)
297 wps->event_cb(wps->cb_ctx, WPS_EV_SUCCESS, &data);
301 void wps_pwd_auth_fail_event(struct wps_context *wps, int enrollee, int part,
306 if (wps->event_cb == NULL)
313 wps->event_cb(wps->cb_ctx, WPS_EV_PWD_AUTH_FAIL, &data);
317 void wps_pbc_overlap_event(struct wps_context *wps)
319 if (wps->event_cb == NULL)
322 wps->event_cb(wps->cb_ctx, WPS_EV_PBC_OVERLAP, NULL);
326 void wps_pbc_timeout_event(struct wps_context *wps)
328 if (wps->event_cb == NULL)
331 wps->event_cb(wps->cb_ctx, WPS_EV_PBC_TIMEOUT, NULL);
335 void wps_pbc_active_event(struct wps_context *wps)
337 if (wps->event_cb == NULL)
340 wps->event_cb(wps->cb_ctx, WPS_EV_PBC_ACTIVE, NULL);
344 void wps_pbc_disable_event(struct wps_context *wps)
346 if (wps->event_cb == NULL)
349 wps->event_cb(wps->cb_ctx, WPS_EV_PBC_DISABLE, NULL);
355 struct wpabuf * wps_get_oob_cred(struct wps_context *wps, int rf_band,
363 wpa_printf(MSG_ERROR, "WPS: Failed to allocate memory for OOB "
369 data.wps = wps;
370 data.auth_type = wps->auth_types;
371 data.encr_type = wps->encr_types;
375 wps_build_mac_addr(plain, wps->dev.mac_addr) ||
382 if (wps->wps_state == WPS_STATE_NOT_CONFIGURED && data.new_psk &&
383 wps->ap) {
386 wpa_printf(MSG_DEBUG, "WPS: Moving to Configured state based "
390 os_memcpy(cred.ssid, wps->ssid, wps->ssid_len);
391 cred.ssid_len = wps->ssid_len;
397 wps->wps_state = WPS_STATE_CONFIGURED;
399 "WPS: Generated random passphrase",
401 if (wps->cred_cb)
402 wps->cred_cb(wps->cb_ctx, &cred);
424 wpa_printf(MSG_ERROR, "WPS: Failed to build NFC password "
434 int wps_oob_use_cred(struct wps_context *wps, struct wps_parse_attr *attr)
447 wpa_printf(MSG_ERROR, "WPS: Failed to parse OOB "
451 wps->cred_cb(wps->cb_ctx, &local_cred);
574 struct wpabuf * wps_build_wsc_ack(struct wps_data *wps)
578 wpa_printf(MSG_DEBUG, "WPS: Building Message WSC_ACK");
586 wps_build_enrollee_nonce(wps, msg) ||
587 wps_build_registrar_nonce(wps, msg) ||
597 struct wpabuf * wps_build_wsc_nack(struct wps_data *wps)
601 wpa_printf(MSG_DEBUG, "WPS: Building Message WSC_NACK");
609 wps_build_enrollee_nonce(wps, msg) ||
610 wps_build_registrar_nonce(wps, msg) ||
611 wps_build_config_error(msg, wps->config_error) ||
658 wpa_hexdump_buf(MSG_DEBUG, "WPS: Generated new DH pubkey", pub);
710 wpa_printf(MSG_DEBUG, "WPS: Building attributes for NFC connection "
714 wpa_printf(MSG_DEBUG, "WPS: No NFC OOB Device Password "
738 static int wps_build_ssid(struct wpabuf *msg, struct wps_context *wps)
740 wpa_printf(MSG_DEBUG, "WPS: * SSID");
741 wpa_hexdump_ascii(MSG_DEBUG, "WPS: SSID in Connection Handover Select",
742 wps->ssid, wps->ssid_len);
744 wpabuf_put_be16(msg, wps->ssid_len);
745 wpabuf_put_data(msg, wps->ssid, wps->ssid_len);
791 wpa_printf(MSG_DEBUG, "WPS: Building attributes for NFC connection "
795 wpa_printf(MSG_DEBUG, "WPS: No NFC OOB Device Password "
829 wpa_printf(MSG_DEBUG, "WPS: Building attributes for NFC connection "
833 wpa_printf(MSG_DEBUG, "WPS: No NFC DH Public Key configured");
870 wpa_printf(MSG_DEBUG, "WPS: Building attributes for NFC connection "
876 wpa_printf(MSG_DEBUG, "WPS: No NFC OOB Device Password "