int hostapd_wps_nfc_token_enable(struct hostapd_data *hapd) { struct wps_context *wps = hapd->wps; if (wps == NULL) return -1; if (!hapd->conf->wps_nfc_dh_pubkey || !hapd->conf->wps_nfc_dh_privkey || !hapd->conf->wps_nfc_dev_pw || !hapd->conf->wps_nfc_dev_pw_id) return -1; hostapd_wps_nfc_clear(wps); wps->ap_nfc_dev_pw_id = hapd->conf->wps_nfc_dev_pw_id; wps->ap_nfc_dh_pubkey = wpabuf_dup(hapd->conf->wps_nfc_dh_pubkey); wps->ap_nfc_dh_privkey = wpabuf_dup(hapd->conf->wps_nfc_dh_privkey); wps->ap_nfc_dev_pw = wpabuf_dup(hapd->conf->wps_nfc_dev_pw); if (!wps->ap_nfc_dh_pubkey || !wps->ap_nfc_dh_privkey || !wps->ap_nfc_dev_pw) { hostapd_wps_nfc_clear(wps); return -1; } return 0; }
int hostapd_wps_nfc_token_enable(struct hostapd_data *hapd) { struct wps_context *wps = hapd->wps; struct wpabuf *pw; if (wps == NULL) return -1; if (!hapd->conf->wps_nfc_dh_pubkey || !hapd->conf->wps_nfc_dh_privkey || !hapd->conf->wps_nfc_dev_pw || !hapd->conf->wps_nfc_dev_pw_id) return -1; hostapd_wps_nfc_clear(wps); wpa_printf(MSG_DEBUG, "WPS: Enable NFC Tag (Dev Pw Id %u) for AP interface %s (context %p)", hapd->conf->wps_nfc_dev_pw_id, hapd->conf->iface, wps); wps->ap_nfc_dev_pw_id = hapd->conf->wps_nfc_dev_pw_id; wps->ap_nfc_dh_pubkey = wpabuf_dup(hapd->conf->wps_nfc_dh_pubkey); wps->ap_nfc_dh_privkey = wpabuf_dup(hapd->conf->wps_nfc_dh_privkey); pw = hapd->conf->wps_nfc_dev_pw; wps->ap_nfc_dev_pw = wpabuf_alloc( wpabuf_len(pw) * 2 + 1); if (wps->ap_nfc_dev_pw) { wpa_snprintf_hex_uppercase( (char *) wpabuf_put(wps->ap_nfc_dev_pw, wpabuf_len(pw) * 2), wpabuf_len(pw) * 2 + 1, wpabuf_head(pw), wpabuf_len(pw)); } if (!wps->ap_nfc_dh_pubkey || !wps->ap_nfc_dh_privkey || !wps->ap_nfc_dev_pw) { hostapd_wps_nfc_clear(wps); return -1; } return 0; }
void hostapd_deinit_wps(struct hostapd_data *hapd) { eloop_cancel_timeout(hostapd_wps_reenable_ap_pin, hapd, NULL); eloop_cancel_timeout(hostapd_wps_ap_pin_timeout, hapd, NULL); if (hapd->wps == NULL) return; #ifdef CONFIG_WPS_UPNP hostapd_wps_upnp_deinit(hapd); #endif /* CONFIG_WPS_UPNP */ wps_registrar_deinit(hapd->wps->registrar); os_free(hapd->wps->network_key); wps_device_data_free(&hapd->wps->dev); wpabuf_free(hapd->wps->dh_pubkey); wpabuf_free(hapd->wps->dh_privkey); wps_free_pending_msgs(hapd->wps->upnp_msgs); hostapd_wps_nfc_clear(hapd->wps); os_free(hapd->wps); hapd->wps = NULL; hostapd_wps_clear_ies(hapd); }
void hostapd_wps_nfc_token_disable(struct hostapd_data *hapd) { hostapd_wps_nfc_clear(hapd->wps); }
void hostapd_wps_nfc_token_disable(struct hostapd_data *hapd) { wpa_printf(MSG_DEBUG, "WPS: Disable NFC token for AP interface %s", hapd->conf->iface); hostapd_wps_nfc_clear(hapd->wps); }