u8 r_auth2[DPP_MAX_HASH_LEN];
u8 role;
+ if (!auth->initiator) {
+ dpp_auth_fail(auth, "Unexpected Authentication Response");
+ return NULL;
+ }
+
auth->waiting_auth_resp = 0;
wrapped_data = dpp_get_attr(attr_start, attr_len, DPP_ATTR_WRAPPED_DATA,
size_t unwrapped_len = 0;
u8 i_auth2[DPP_MAX_HASH_LEN];
+ if (auth->initiator) {
+ dpp_auth_fail(auth, "Unexpected Authentication Confirm");
+ return NULL;
+ }
+
auth->waiting_auth_conf = 0;
wrapped_data = dpp_get_attr(attr_start, attr_len, DPP_ATTR_WRAPPED_DATA,
u8 u[DPP_MAX_HASH_LEN];
int res;
- if (pkex->failed || pkex->t >= PKEX_COUNTER_T_LIMIT)
+ if (pkex->failed || pkex->t >= PKEX_COUNTER_T_LIMIT || !pkex->initiator)
return NULL;
attr_status = dpp_get_attr(buf, buflen, DPP_ATTR_STATUS,
u8 u[DPP_MAX_HASH_LEN], v[DPP_MAX_HASH_LEN];
if (!pkex->exchange_done || pkex->failed ||
- pkex->t >= PKEX_COUNTER_T_LIMIT)
+ pkex->t >= PKEX_COUNTER_T_LIMIT || pkex->initiator)
goto fail;
wrapped_data = dpp_get_attr(buf, buflen, DPP_ATTR_WRAPPED_DATA,
struct wpabuf *B_pub = NULL, *X_pub = NULL, *Y_pub = NULL;
if (!pkex->exchange_done || pkex->failed ||
- pkex->t >= PKEX_COUNTER_T_LIMIT)
+ pkex->t >= PKEX_COUNTER_T_LIMIT || !pkex->initiator)
goto fail;
wrapped_data = dpp_get_attr(buf, buflen, DPP_ATTR_WRAPPED_DATA,