]> git.ipfire.org Git - thirdparty/hostap.git/blobdiff - src/wps/wps.c
P2P NFC: Report connection handover as trigger for P2P
[thirdparty/hostap.git] / src / wps / wps.c
index 22d7eeaa6d6045faebce259aabe5dacceda0143e..b40a68aeb73f71e52f8b609c2f63f29ceb3e6dda 100644 (file)
@@ -58,6 +58,10 @@ struct wps_data * wps_init(const struct wps_config *cfg)
        }
 
 #ifdef CONFIG_WPS_NFC
+       if (cfg->pin == NULL &&
+           cfg->dev_pw_id == DEV_PW_NFC_CONNECTION_HANDOVER)
+               data->dev_pw_id = cfg->dev_pw_id;
+
        if (cfg->wps->ap && !cfg->registrar && cfg->wps->ap_nfc_dev_pw_id) {
                /* Keep AP PIN as alternative Device Password */
                data->alt_dev_pw_id = data->dev_pw_id;
@@ -133,6 +137,12 @@ struct wps_data * wps_init(const struct wps_config *cfg)
        data->use_psk_key = cfg->use_psk_key;
        data->pbc_in_m1 = cfg->pbc_in_m1;
 
+       if (cfg->peer_pubkey_hash) {
+               os_memcpy(data->peer_pubkey_hash, cfg->peer_pubkey_hash,
+                         WPS_OOB_PUBKEY_HASH_LEN);
+               data->peer_pubkey_hash_set = 1;
+       }
+
        return data;
 }
 
@@ -168,7 +178,6 @@ void wps_deinit(struct wps_data *data)
        wps_device_data_free(&data->peer_dev);
        os_free(data->new_ap_settings);
        dh5_free(data->dh_ctx);
-       os_free(data->nfc_pw_token);
        os_free(data);
 }