WPS: Share common function for building WSC ACK/NACK
These are identical functions in Enrollee and Registrar and there is no need to maintain two copies of the same functionality.
This commit is contained in:
parent
7b23f0f3c8
commit
4a64a51b63
4 changed files with 50 additions and 94 deletions
|
@ -653,3 +653,50 @@ u16 wps_config_methods_str2bin(const char *str)
|
||||||
|
|
||||||
return methods;
|
return methods;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
struct wpabuf * wps_build_wsc_ack(struct wps_data *wps)
|
||||||
|
{
|
||||||
|
struct wpabuf *msg;
|
||||||
|
|
||||||
|
wpa_printf(MSG_DEBUG, "WPS: Building Message WSC_ACK");
|
||||||
|
|
||||||
|
msg = wpabuf_alloc(1000);
|
||||||
|
if (msg == NULL)
|
||||||
|
return NULL;
|
||||||
|
|
||||||
|
if (wps_build_version(msg) ||
|
||||||
|
wps_build_msg_type(msg, WPS_WSC_ACK) ||
|
||||||
|
wps_build_enrollee_nonce(wps, msg) ||
|
||||||
|
wps_build_registrar_nonce(wps, msg) ||
|
||||||
|
wps_build_wfa_ext(msg, 0, NULL, 0)) {
|
||||||
|
wpabuf_free(msg);
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
return msg;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
struct wpabuf * wps_build_wsc_nack(struct wps_data *wps)
|
||||||
|
{
|
||||||
|
struct wpabuf *msg;
|
||||||
|
|
||||||
|
wpa_printf(MSG_DEBUG, "WPS: Building Message WSC_NACK");
|
||||||
|
|
||||||
|
msg = wpabuf_alloc(1000);
|
||||||
|
if (msg == NULL)
|
||||||
|
return NULL;
|
||||||
|
|
||||||
|
if (wps_build_version(msg) ||
|
||||||
|
wps_build_msg_type(msg, WPS_WSC_NACK) ||
|
||||||
|
wps_build_enrollee_nonce(wps, msg) ||
|
||||||
|
wps_build_registrar_nonce(wps, msg) ||
|
||||||
|
wps_build_config_error(msg, wps->config_error) ||
|
||||||
|
wps_build_wfa_ext(msg, 0, NULL, 0)) {
|
||||||
|
wpabuf_free(msg);
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
return msg;
|
||||||
|
}
|
||||||
|
|
|
@ -379,53 +379,6 @@ static struct wpabuf * wps_build_wsc_done(struct wps_data *wps)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
static struct wpabuf * wps_build_wsc_ack(struct wps_data *wps)
|
|
||||||
{
|
|
||||||
struct wpabuf *msg;
|
|
||||||
|
|
||||||
wpa_printf(MSG_DEBUG, "WPS: Building Message WSC_ACK");
|
|
||||||
|
|
||||||
msg = wpabuf_alloc(1000);
|
|
||||||
if (msg == NULL)
|
|
||||||
return NULL;
|
|
||||||
|
|
||||||
if (wps_build_version(msg) ||
|
|
||||||
wps_build_msg_type(msg, WPS_WSC_ACK) ||
|
|
||||||
wps_build_enrollee_nonce(wps, msg) ||
|
|
||||||
wps_build_registrar_nonce(wps, msg) ||
|
|
||||||
wps_build_wfa_ext(msg, 0, NULL, 0)) {
|
|
||||||
wpabuf_free(msg);
|
|
||||||
return NULL;
|
|
||||||
}
|
|
||||||
|
|
||||||
return msg;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
static struct wpabuf * wps_build_wsc_nack(struct wps_data *wps)
|
|
||||||
{
|
|
||||||
struct wpabuf *msg;
|
|
||||||
|
|
||||||
wpa_printf(MSG_DEBUG, "WPS: Building Message WSC_NACK");
|
|
||||||
|
|
||||||
msg = wpabuf_alloc(1000);
|
|
||||||
if (msg == NULL)
|
|
||||||
return NULL;
|
|
||||||
|
|
||||||
if (wps_build_version(msg) ||
|
|
||||||
wps_build_msg_type(msg, WPS_WSC_NACK) ||
|
|
||||||
wps_build_enrollee_nonce(wps, msg) ||
|
|
||||||
wps_build_registrar_nonce(wps, msg) ||
|
|
||||||
wps_build_config_error(msg, wps->config_error) ||
|
|
||||||
wps_build_wfa_ext(msg, 0, NULL, 0)) {
|
|
||||||
wpabuf_free(msg);
|
|
||||||
return NULL;
|
|
||||||
}
|
|
||||||
|
|
||||||
return msg;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
struct wpabuf * wps_enrollee_get_msg(struct wps_data *wps,
|
struct wpabuf * wps_enrollee_get_msg(struct wps_data *wps,
|
||||||
enum wsc_op_code *op_code)
|
enum wsc_op_code *op_code)
|
||||||
{
|
{
|
||||||
|
|
|
@ -223,6 +223,9 @@ extern struct oob_device_data oob_ufd_device_data;
|
||||||
extern struct oob_device_data oob_nfc_device_data;
|
extern struct oob_device_data oob_nfc_device_data;
|
||||||
extern struct oob_nfc_device_data oob_nfc_pn531_device_data;
|
extern struct oob_nfc_device_data oob_nfc_pn531_device_data;
|
||||||
|
|
||||||
|
struct wpabuf * wps_build_wsc_ack(struct wps_data *wps);
|
||||||
|
struct wpabuf * wps_build_wsc_nack(struct wps_data *wps);
|
||||||
|
|
||||||
/* wps_attr_parse.c */
|
/* wps_attr_parse.c */
|
||||||
int wps_parse_msg(const struct wpabuf *msg, struct wps_parse_attr *attr);
|
int wps_parse_msg(const struct wpabuf *msg, struct wps_parse_attr *attr);
|
||||||
|
|
||||||
|
|
|
@ -1724,53 +1724,6 @@ static struct wpabuf * wps_build_m8(struct wps_data *wps)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
static struct wpabuf * wps_build_wsc_ack(struct wps_data *wps)
|
|
||||||
{
|
|
||||||
struct wpabuf *msg;
|
|
||||||
|
|
||||||
wpa_printf(MSG_DEBUG, "WPS: Building Message WSC_ACK");
|
|
||||||
|
|
||||||
msg = wpabuf_alloc(1000);
|
|
||||||
if (msg == NULL)
|
|
||||||
return NULL;
|
|
||||||
|
|
||||||
if (wps_build_version(msg) ||
|
|
||||||
wps_build_msg_type(msg, WPS_WSC_ACK) ||
|
|
||||||
wps_build_enrollee_nonce(wps, msg) ||
|
|
||||||
wps_build_registrar_nonce(wps, msg) ||
|
|
||||||
wps_build_wfa_ext(msg, 0, NULL, 0)) {
|
|
||||||
wpabuf_free(msg);
|
|
||||||
return NULL;
|
|
||||||
}
|
|
||||||
|
|
||||||
return msg;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
static struct wpabuf * wps_build_wsc_nack(struct wps_data *wps)
|
|
||||||
{
|
|
||||||
struct wpabuf *msg;
|
|
||||||
|
|
||||||
wpa_printf(MSG_DEBUG, "WPS: Building Message WSC_NACK");
|
|
||||||
|
|
||||||
msg = wpabuf_alloc(1000);
|
|
||||||
if (msg == NULL)
|
|
||||||
return NULL;
|
|
||||||
|
|
||||||
if (wps_build_version(msg) ||
|
|
||||||
wps_build_msg_type(msg, WPS_WSC_NACK) ||
|
|
||||||
wps_build_enrollee_nonce(wps, msg) ||
|
|
||||||
wps_build_registrar_nonce(wps, msg) ||
|
|
||||||
wps_build_config_error(msg, wps->config_error) ||
|
|
||||||
wps_build_wfa_ext(msg, 0, NULL, 0)) {
|
|
||||||
wpabuf_free(msg);
|
|
||||||
return NULL;
|
|
||||||
}
|
|
||||||
|
|
||||||
return msg;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
struct wpabuf * wps_registrar_get_msg(struct wps_data *wps,
|
struct wpabuf * wps_registrar_get_msg(struct wps_data *wps,
|
||||||
enum wsc_op_code *op_code)
|
enum wsc_op_code *op_code)
|
||||||
{
|
{
|
||||||
|
|
Loading…
Reference in a new issue