WPS: Allow Device Password Id changes between PIN methods
Commit b4a17a6ea7
added support for the
WPS Registrar to change the Device Password based on WSC specification
design. However, this added validation for Registrar behavior which
resulted in preventing a common P2P use case from working. Relax the
validation rules for builds with P2P enabled to allow the Enrollee (P2P
client) accepting M1/M2 changes in Device Password Id between Default
and Registrar-specified PIN.
Signed-hostap: Jouni Malinen <j@w1.fi>
This commit is contained in:
parent
1ba51ec02b
commit
9b1693a162
1 changed files with 18 additions and 0 deletions
|
@ -842,6 +842,24 @@ static int wps_process_dev_pw_id(struct wps_data *wps, const u8 *dev_pw_id)
|
|||
return 0;
|
||||
}
|
||||
|
||||
#ifdef CONFIG_P2P
|
||||
if ((id == DEV_PW_DEFAULT &&
|
||||
wps->dev_pw_id == DEV_PW_REGISTRAR_SPECIFIED) ||
|
||||
(id == DEV_PW_REGISTRAR_SPECIFIED &&
|
||||
wps->dev_pw_id == DEV_PW_DEFAULT)) {
|
||||
/*
|
||||
* Common P2P use cases indicate whether the PIN is from the
|
||||
* client or GO using Device Password Id in M1/M2 in a way that
|
||||
* does not look fully compliant with WSC specification. Anyway,
|
||||
* this is deployed and needs to be allowed, so ignore changes
|
||||
* between Registrar-Specified and Default PIN.
|
||||
*/
|
||||
wpa_printf(MSG_DEBUG, "WPS: Allow PIN Device Password ID "
|
||||
"change");
|
||||
return 0;
|
||||
}
|
||||
#endif /* CONFIG_P2P */
|
||||
|
||||
wpa_printf(MSG_DEBUG, "WPS: Registrar trying to change Device Password "
|
||||
"ID from %u to %u", wps->dev_pw_id, id);
|
||||
|
||||
|
|
Loading…
Reference in a new issue