]> git.ipfire.org Git - thirdparty/hostap.git/commitdiff
DPP: Protocol testing - invalid I/R-Auth value in PKEX Commit-Reveal
authorJouni Malinen <jouni@qca.qualcomm.com>
Fri, 3 Nov 2017 18:18:24 +0000 (20:18 +0200)
committerJouni Malinen <j@w1.fi>
Fri, 3 Nov 2017 18:18:24 +0000 (20:18 +0200)
Signed-off-by: Jouni Malinen <jouni@qca.qualcomm.com>
src/common/dpp.c
src/common/dpp.h

index 69b40c97b6b04f2f7810fbd6b8a2695d992a7821..90d6649bf101f1dbca78ab01b2ba4c13285bccb7 100644 (file)
@@ -6085,6 +6085,14 @@ skip_bootstrap_key:
                wpa_printf(MSG_INFO, "DPP: TESTING - no I-Auth tag");
                goto skip_i_auth_tag;
        }
+       if (dpp_test == DPP_TEST_I_AUTH_TAG_MISMATCH_PKEX_CR_REQ) {
+               wpa_printf(MSG_INFO, "DPP: TESTING - I-Auth tag mismatch");
+               wpabuf_put_le16(clear, DPP_ATTR_I_AUTH_TAG);
+               wpabuf_put_le16(clear, curve->hash_len);
+               wpabuf_put_data(clear, u, curve->hash_len - 1);
+               wpabuf_put_u8(clear, u[curve->hash_len - 1] ^ 0x01);
+               goto skip_i_auth_tag;
+       }
 #endif /* CONFIG_TESTING_OPTIONS */
 
        /* u in I-Auth tag attribute */
@@ -6386,6 +6394,14 @@ skip_bootstrap_key:
                wpa_printf(MSG_INFO, "DPP: TESTING - no R-Auth tag");
                goto skip_r_auth_tag;
        }
+       if (dpp_test == DPP_TEST_R_AUTH_TAG_MISMATCH_PKEX_CR_RESP) {
+               wpa_printf(MSG_INFO, "DPP: TESTING - R-Auth tag mismatch");
+               wpabuf_put_le16(clear, DPP_ATTR_R_AUTH_TAG);
+               wpabuf_put_le16(clear, curve->hash_len);
+               wpabuf_put_data(clear, v, curve->hash_len - 1);
+               wpabuf_put_u8(clear, v[curve->hash_len - 1] ^ 0x01);
+               goto skip_r_auth_tag;
+       }
 #endif /* CONFIG_TESTING_OPTIONS */
 
        /* v in R-Auth tag attribute */
index 38c9514503218a994a84a7bb28a3f20910315d14..4098b8a6e9f075ad048398fc14cd7ad252f95b6c 100644 (file)
@@ -267,6 +267,8 @@ enum dpp_test_behavior {
        DPP_TEST_INVALID_STATUS_PKEX_EXCHANGE_RESP = 46,
        DPP_TEST_INVALID_BOOTSTRAP_KEY_PKEX_CR_REQ = 47,
        DPP_TEST_INVALID_BOOTSTRAP_KEY_PKEX_CR_RESP = 48,
+       DPP_TEST_I_AUTH_TAG_MISMATCH_PKEX_CR_REQ = 49,
+       DPP_TEST_R_AUTH_TAG_MISMATCH_PKEX_CR_RESP = 50,
 };
 
 extern enum dpp_test_behavior dpp_test;