diff options
author | Jouni Malinen <j@w1.fi> | 2012-06-28 20:54:53 +0300 |
---|---|---|
committer | Jouni Malinen <j@w1.fi> | 2012-06-28 21:01:37 +0300 |
commit | bfc62fe1331da4eca6dec70133c5d4cd1d6bc958 (patch) | |
tree | 344482b9c1d6dd0937647eff8ef09b7535bf869f /src/ap | |
parent | 40a5e3bfde0170f5fcbb38375c15c5f15f33bc7c (diff) | |
download | external_wpa_supplicant_8_ti-bfc62fe1331da4eca6dec70133c5d4cd1d6bc958.zip external_wpa_supplicant_8_ti-bfc62fe1331da4eca6dec70133c5d4cd1d6bc958.tar.gz external_wpa_supplicant_8_ti-bfc62fe1331da4eca6dec70133c5d4cd1d6bc958.tar.bz2 |
WPS: Share a single function for generating NFS password tokens
There is no need for both hostapd and wpa_supplicant to have their
own functions for this.
Signed-hostap: Jouni Malinen <j@w1.fi>
Diffstat (limited to 'src/ap')
-rw-r--r-- | src/ap/wps_hostapd.c | 48 |
1 files changed, 4 insertions, 44 deletions
diff --git a/src/ap/wps_hostapd.c b/src/ap/wps_hostapd.c index fbff90f..07ce06c 100644 --- a/src/ap/wps_hostapd.c +++ b/src/ap/wps_hostapd.c @@ -1626,50 +1626,10 @@ struct wpabuf * hostapd_wps_nfc_config_token(struct hostapd_data *hapd, struct wpabuf * hostapd_wps_nfc_token_gen(struct hostapd_data *hapd, int ndef) { - struct wpabuf *priv = NULL, *pub = NULL, *pw; - void *dh_ctx; - struct wpabuf *ret; - u16 val; - - pw = wpabuf_alloc(WPS_OOB_DEVICE_PASSWORD_LEN); - if (pw == NULL) - return NULL; - - if (random_get_bytes(wpabuf_put(pw, WPS_OOB_DEVICE_PASSWORD_LEN), - WPS_OOB_DEVICE_PASSWORD_LEN) || - random_get_bytes((u8 *) &val, sizeof(val))) { - wpabuf_free(pw); - return NULL; - } - - dh_ctx = dh5_init(&priv, &pub); - if (dh_ctx == NULL) { - wpabuf_free(pw); - return NULL; - } - dh5_free(dh_ctx); - - hapd->conf->wps_nfc_dev_pw_id = 0x10 + val % 0xfff0; - wpabuf_free(hapd->conf->wps_nfc_dh_pubkey); - hapd->conf->wps_nfc_dh_pubkey = pub; - wpabuf_free(hapd->conf->wps_nfc_dh_privkey); - hapd->conf->wps_nfc_dh_privkey = priv; - wpabuf_free(hapd->conf->wps_nfc_dev_pw); - hapd->conf->wps_nfc_dev_pw = pw; - - ret = wps_build_nfc_pw_token(hapd->conf->wps_nfc_dev_pw_id, - hapd->conf->wps_nfc_dh_pubkey, - hapd->conf->wps_nfc_dev_pw); - if (ndef && ret) { - struct wpabuf *tmp; - tmp = ndef_build_wifi(ret); - wpabuf_free(ret); - if (tmp == NULL) - return NULL; - ret = tmp; - } - - return ret; + return wps_nfc_token_gen(ndef, &hapd->conf->wps_nfc_dev_pw_id, + &hapd->conf->wps_nfc_dh_pubkey, + &hapd->conf->wps_nfc_dh_privkey, + &hapd->conf->wps_nfc_dev_pw); } |