DPP2: Allow station to require or not allow PFS

The new wpa_supplicant network profile parameter dpp_pfs can be used to
specify how PFS is applied to associations. The default behavior
(dpp_pfs=0) remains same as it was previously, i.e., try to use PFS if
the AP supports it. PFS use can now be required (dpp_pfs=1) or disabled
(dpp_pfs=2).

This is also working around an interoperability issue of DPP R2 STA with
certain hostapd builds that included both OWE and DPP functionality.
That issue was introduced by commit 09368515d1 ("OWE: Process
Diffie-Hellman Parameter element in AP mode") and removed by commit
16a4e931f0 ("OWE: Allow Diffie-Hellman Parameter element to be
included with DPP"). hostapd builds between those two commits would
reject DPP association attempt with PFS. The new wpa_supplicant default
(dpp_pfs=0) behavior is to automatically try to connect again with PFS
disabled if that happens.

Signed-off-by: Jouni Malinen <jouni@codeaurora.org>
This commit is contained in:
Jouni Malinen 2020-03-28 15:06:15 +02:00 committed by Jouni Malinen
parent 7c021dec3a
commit 5058f771d9
9 changed files with 68 additions and 2 deletions

View file

@ -1002,6 +1002,22 @@ struct wpa_ssid {
*/
size_t dpp_csign_len;
/**
* dpp_pfs - DPP PFS
* 0: allow PFS to be used or not used
* 1: require PFS to be used (note: not compatible with DPP R1)
* 2: do not allow PFS to be used
*/
int dpp_pfs;
/**
* dpp_pfs_fallback - DPP PFS fallback selection
*
* This is an internally used variable (i.e., not used in external
* configuration) to track state of the DPP PFS fallback mechanism.
*/
int dpp_pfs_fallback;
/**
* owe_group - OWE DH Group
*