DPP: Omission of Auth Req attributes for protocol testing
This extends the dpp_test mechanism to allow each of the required attributes in Authentication Request to be omitted. Signed-off-by: Jouni Malinen <jouni@qca.qualcomm.com>
This commit is contained in:
parent
606a8e8d57
commit
0e7cb8c6c1
2 changed files with 44 additions and 0 deletions
|
@ -1387,9 +1387,23 @@ static struct wpabuf * dpp_auth_build_req(struct dpp_authentication *auth,
|
||||||
wpabuf_put_buf(msg, pi);
|
wpabuf_put_buf(msg, pi);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#ifdef CONFIG_TESTING_OPTIONS
|
||||||
|
if (dpp_test == DPP_TEST_NO_WRAPPED_DATA_AUTH_REQ) {
|
||||||
|
wpa_printf(MSG_INFO, "DPP: TESTING - no Wrapped Data");
|
||||||
|
goto skip_wrapped_data;
|
||||||
|
}
|
||||||
|
#endif /* CONFIG_TESTING_OPTIONS */
|
||||||
|
|
||||||
/* Wrapped data ({I-nonce, I-capabilities}k1) */
|
/* Wrapped data ({I-nonce, I-capabilities}k1) */
|
||||||
pos = clear;
|
pos = clear;
|
||||||
|
|
||||||
|
#ifdef CONFIG_TESTING_OPTIONS
|
||||||
|
if (dpp_test == DPP_TEST_NO_I_NONCE_AUTH_REQ) {
|
||||||
|
wpa_printf(MSG_INFO, "DPP: TESTING - no I-nonce");
|
||||||
|
goto skip_i_nonce;
|
||||||
|
}
|
||||||
|
#endif /* CONFIG_TESTING_OPTIONS */
|
||||||
|
|
||||||
/* I-nonce */
|
/* I-nonce */
|
||||||
WPA_PUT_LE16(pos, DPP_ATTR_I_NONCE);
|
WPA_PUT_LE16(pos, DPP_ATTR_I_NONCE);
|
||||||
pos += 2;
|
pos += 2;
|
||||||
|
@ -1398,6 +1412,14 @@ static struct wpabuf * dpp_auth_build_req(struct dpp_authentication *auth,
|
||||||
os_memcpy(pos, auth->i_nonce, nonce_len);
|
os_memcpy(pos, auth->i_nonce, nonce_len);
|
||||||
pos += nonce_len;
|
pos += nonce_len;
|
||||||
|
|
||||||
|
#ifdef CONFIG_TESTING_OPTIONS
|
||||||
|
skip_i_nonce:
|
||||||
|
if (dpp_test == DPP_TEST_NO_I_CAPAB_AUTH_REQ) {
|
||||||
|
wpa_printf(MSG_INFO, "DPP: TESTING - no I-capab");
|
||||||
|
goto skip_i_capab;
|
||||||
|
}
|
||||||
|
#endif /* CONFIG_TESTING_OPTIONS */
|
||||||
|
|
||||||
/* I-capabilities */
|
/* I-capabilities */
|
||||||
WPA_PUT_LE16(pos, DPP_ATTR_I_CAPABILITIES);
|
WPA_PUT_LE16(pos, DPP_ATTR_I_CAPABILITIES);
|
||||||
pos += 2;
|
pos += 2;
|
||||||
|
@ -1411,6 +1433,7 @@ static struct wpabuf * dpp_auth_build_req(struct dpp_authentication *auth,
|
||||||
wpa_printf(MSG_INFO, "DPP: TESTING - zero I-capabilities");
|
wpa_printf(MSG_INFO, "DPP: TESTING - zero I-capabilities");
|
||||||
pos[-1] = 0;
|
pos[-1] = 0;
|
||||||
}
|
}
|
||||||
|
skip_i_capab:
|
||||||
#endif /* CONFIG_TESTING_OPTIONS */
|
#endif /* CONFIG_TESTING_OPTIONS */
|
||||||
|
|
||||||
attr_end = wpabuf_put(msg, 0);
|
attr_end = wpabuf_put(msg, 0);
|
||||||
|
@ -1446,6 +1469,7 @@ static struct wpabuf * dpp_auth_build_req(struct dpp_authentication *auth,
|
||||||
wpabuf_put_le16(msg, DPP_ATTR_TESTING);
|
wpabuf_put_le16(msg, DPP_ATTR_TESTING);
|
||||||
wpabuf_put_le16(msg, 0);
|
wpabuf_put_le16(msg, 0);
|
||||||
}
|
}
|
||||||
|
skip_wrapped_data:
|
||||||
#endif /* CONFIG_TESTING_OPTIONS */
|
#endif /* CONFIG_TESTING_OPTIONS */
|
||||||
|
|
||||||
wpa_hexdump_buf(MSG_DEBUG,
|
wpa_hexdump_buf(MSG_DEBUG,
|
||||||
|
@ -1526,6 +1550,20 @@ struct dpp_authentication * dpp_auth_init(void *msg_ctx,
|
||||||
i_pubkey_hash = zero;
|
i_pubkey_hash = zero;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#ifdef CONFIG_TESTING_OPTIONS
|
||||||
|
if (dpp_test == DPP_TEST_NO_R_BOOTSTRAP_KEY_HASH_AUTH_REQ) {
|
||||||
|
wpa_printf(MSG_INFO, "DPP: TESTING - no R-Bootstrap Key Hash");
|
||||||
|
r_pubkey_hash = NULL;
|
||||||
|
} else if (dpp_test == DPP_TEST_NO_I_BOOTSTRAP_KEY_HASH_AUTH_REQ) {
|
||||||
|
wpa_printf(MSG_INFO, "DPP: TESTING - no I-Bootstrap Key Hash");
|
||||||
|
i_pubkey_hash = NULL;
|
||||||
|
} else if (dpp_test == DPP_TEST_NO_I_PROTO_KEY_AUTH_REQ) {
|
||||||
|
wpa_printf(MSG_INFO, "DPP: TESTING - no I-Proto Key");
|
||||||
|
wpabuf_free(pi);
|
||||||
|
pi = NULL;
|
||||||
|
}
|
||||||
|
#endif /* CONFIG_TESTING_OPTIONS */
|
||||||
|
|
||||||
auth->req_msg = dpp_auth_build_req(auth, pi, nonce_len, r_pubkey_hash,
|
auth->req_msg = dpp_auth_build_req(auth, pi, nonce_len, r_pubkey_hash,
|
||||||
i_pubkey_hash);
|
i_pubkey_hash);
|
||||||
if (!auth->req_msg)
|
if (!auth->req_msg)
|
||||||
|
|
|
@ -216,6 +216,12 @@ enum dpp_test_behavior {
|
||||||
DPP_TEST_AFTER_WRAPPED_DATA_CONF_RESP = 7,
|
DPP_TEST_AFTER_WRAPPED_DATA_CONF_RESP = 7,
|
||||||
DPP_TEST_ZERO_I_CAPAB = 8,
|
DPP_TEST_ZERO_I_CAPAB = 8,
|
||||||
DPP_TEST_ZERO_R_CAPAB = 9,
|
DPP_TEST_ZERO_R_CAPAB = 9,
|
||||||
|
DPP_TEST_NO_R_BOOTSTRAP_KEY_HASH_AUTH_REQ = 10,
|
||||||
|
DPP_TEST_NO_I_BOOTSTRAP_KEY_HASH_AUTH_REQ = 11,
|
||||||
|
DPP_TEST_NO_I_PROTO_KEY_AUTH_REQ = 12,
|
||||||
|
DPP_TEST_NO_I_NONCE_AUTH_REQ = 13,
|
||||||
|
DPP_TEST_NO_I_CAPAB_AUTH_REQ = 14,
|
||||||
|
DPP_TEST_NO_WRAPPED_DATA_AUTH_REQ = 15,
|
||||||
};
|
};
|
||||||
|
|
||||||
extern enum dpp_test_behavior dpp_test;
|
extern enum dpp_test_behavior dpp_test;
|
||||||
|
|
Loading…
Reference in a new issue