From 55c6c8585579af64fff3f88d45931ce72d73ce7d Mon Sep 17 00:00:00 2001 From: Jouni Malinen Date: Thu, 30 Nov 2017 21:56:19 +0200 Subject: [PATCH] DPP: Extend dpp_test with invalid Transaction ID in Peer Disc Req Allow a Transaction ID attribute with invalid length to be sent for protocol testing purposes. Signed-off-by: Jouni Malinen --- src/common/dpp.h | 1 + wpa_supplicant/dpp_supplicant.c | 6 ++++++ 2 files changed, 7 insertions(+) diff --git a/src/common/dpp.h b/src/common/dpp.h index b2b97614b..6ee3bee47 100644 --- a/src/common/dpp.h +++ b/src/common/dpp.h @@ -323,6 +323,7 @@ enum dpp_test_behavior { DPP_TEST_INVALID_CONNECTOR_PEER_DISC_RESP = 79, DPP_TEST_INVALID_CONNECTOR_PEER_DISC_REQ = 80, DPP_TEST_INVALID_I_NONCE_AUTH_REQ = 81, + DPP_TEST_INVALID_TRANSACTION_ID_PEER_DISC_REQ = 82, }; extern enum dpp_test_behavior dpp_test; diff --git a/wpa_supplicant/dpp_supplicant.c b/wpa_supplicant/dpp_supplicant.c index a6b1a58d7..42c102864 100644 --- a/wpa_supplicant/dpp_supplicant.c +++ b/wpa_supplicant/dpp_supplicant.c @@ -2268,6 +2268,12 @@ int wpas_dpp_check_connect(struct wpa_supplicant *wpa_s, struct wpa_ssid *ssid, wpa_printf(MSG_INFO, "DPP: TESTING - no Transaction ID"); goto skip_trans_id; } + if (dpp_test == DPP_TEST_INVALID_TRANSACTION_ID_PEER_DISC_REQ) { + wpa_printf(MSG_INFO, "DPP: TESTING - invalid Transaction ID"); + wpabuf_put_le16(msg, DPP_ATTR_TRANSACTION_ID); + wpabuf_put_le16(msg, 0); + goto skip_trans_id; + } #endif /* CONFIG_TESTING_OPTIONS */ /* Transaction ID */