diff options
author | djm@openbsd.org <djm@openbsd.org> | 2015-01-18 19:53:58 +0000 |
---|---|---|
committer | Damien Miller <djm@mindrot.org> | 2015-01-20 00:24:40 +1100 |
commit | 589e69fd82724cfc9738f128e4771da2e6405d0d (patch) | |
tree | 4da93a655d3e1a1626b1f51977c8547797bc4704 | |
parent | 80603c0daa2538c349c1c152405580b164d5475f (diff) |
upstream commit
make the signature fuzzing test much more rigorous:
ensure that the fuzzed input cases do not match the original (using new
fuzz_matches_original() function) and check that the verification fails in
each case
-rw-r--r-- | regress/unittests/sshkey/test_fuzz.c | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/regress/unittests/sshkey/test_fuzz.c b/regress/unittests/sshkey/test_fuzz.c index a3f61a6df..c444c3813 100644 --- a/regress/unittests/sshkey/test_fuzz.c +++ b/regress/unittests/sshkey/test_fuzz.c | |||
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: test_fuzz.c,v 1.1 2014/06/24 01:14:18 djm Exp $ */ | 1 | /* $OpenBSD: test_fuzz.c,v 1.2 2015/01/18 19:53:58 djm Exp $ */ |
2 | /* | 2 | /* |
3 | * Fuzz tests for key parsing | 3 | * Fuzz tests for key parsing |
4 | * | 4 | * |
@@ -87,8 +87,11 @@ sig_fuzz(struct sshkey *k) | |||
87 | free(sig); | 87 | free(sig); |
88 | TEST_ONERROR(onerror, fuzz); | 88 | TEST_ONERROR(onerror, fuzz); |
89 | for(; !fuzz_done(fuzz); fuzz_next(fuzz)) { | 89 | for(; !fuzz_done(fuzz); fuzz_next(fuzz)) { |
90 | sshkey_verify(k, fuzz_ptr(fuzz), fuzz_len(fuzz), | 90 | /* Ensure 1-bit difference at least */ |
91 | c, sizeof(c), 0); | 91 | if (fuzz_matches_original(fuzz)) |
92 | continue; | ||
93 | ASSERT_INT_NE(sshkey_verify(k, fuzz_ptr(fuzz), fuzz_len(fuzz), | ||
94 | c, sizeof(c), 0), 0); | ||
92 | } | 95 | } |
93 | fuzz_cleanup(fuzz); | 96 | fuzz_cleanup(fuzz); |
94 | } | 97 | } |