]> git.ipfire.org Git - thirdparty/hostap.git/commitdiff
DPP: Protocol testing - invalid Bootstrap Key value in PKEX Commit-Reveal
authorJouni Malinen <jouni@qca.qualcomm.com>
Fri, 3 Nov 2017 17:54:48 +0000 (19:54 +0200)
committerJouni Malinen <j@w1.fi>
Fri, 3 Nov 2017 17:59:47 +0000 (19:59 +0200)
Signed-off-by: Jouni Malinen <jouni@qca.qualcomm.com>
src/common/dpp.c
src/common/dpp.h

index 40738fdae357ea53feddbd33ba8f7ac224a76ac8..69b40c97b6b04f2f7810fbd6b8a2695d992a7821 100644 (file)
@@ -6064,6 +6064,14 @@ dpp_pkex_build_commit_reveal_req(struct dpp_pkex *pkex,
                wpa_printf(MSG_INFO, "DPP: TESTING - no Bootstrap Key");
                goto skip_bootstrap_key;
        }
+       if (dpp_test == DPP_TEST_INVALID_BOOTSTRAP_KEY_PKEX_CR_REQ) {
+               wpa_printf(MSG_INFO, "DPP: TESTING - invalid Bootstrap Key");
+               wpabuf_put_le16(clear, DPP_ATTR_BOOTSTRAP_KEY);
+               wpabuf_put_le16(clear, 2 * curve->prime_len);
+               if (dpp_test_gen_invalid_key(clear, curve) < 0)
+                       goto fail;
+               goto skip_bootstrap_key;
+       }
 #endif /* CONFIG_TESTING_OPTIONS */
 
        /* A in Bootstrap Key attribute */
@@ -6357,6 +6365,14 @@ dpp_pkex_build_commit_reveal_resp(struct dpp_pkex *pkex,
                wpa_printf(MSG_INFO, "DPP: TESTING - no Bootstrap Key");
                goto skip_bootstrap_key;
        }
+       if (dpp_test == DPP_TEST_INVALID_BOOTSTRAP_KEY_PKEX_CR_RESP) {
+               wpa_printf(MSG_INFO, "DPP: TESTING - invalid Bootstrap Key");
+               wpabuf_put_le16(clear, DPP_ATTR_BOOTSTRAP_KEY);
+               wpabuf_put_le16(clear, 2 * curve->prime_len);
+               if (dpp_test_gen_invalid_key(clear, curve) < 0)
+                       goto fail;
+               goto skip_bootstrap_key;
+       }
 #endif /* CONFIG_TESTING_OPTIONS */
 
        /* B in Bootstrap Key attribute */
index 1526f999fd08a554b0b754be51bfc664d35d1e99..38c9514503218a994a84a7bb28a3f20910315d14 100644 (file)
@@ -265,6 +265,8 @@ enum dpp_test_behavior {
        DPP_TEST_INVALID_ENCRYPTED_KEY_PKEX_EXCHANGE_REQ = 44,
        DPP_TEST_INVALID_ENCRYPTED_KEY_PKEX_EXCHANGE_RESP = 45,
        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,
 };
 
 extern enum dpp_test_behavior dpp_test;