diff options
author | djm@openbsd.org <djm@openbsd.org> | 2015-12-07 02:20:46 +0000 |
---|---|---|
committer | Damien Miller <djm@mindrot.org> | 2015-12-07 13:21:30 +1100 |
commit | da98c11d03d819a15429d8fff9688acd7505439f (patch) | |
tree | a89a3bd13a6f81a90d92acb192a882ff234deb78 /regress/unittests/sshkey/test_fuzz.c | |
parent | 3da893fdec9936dd2c23739cdb3c0c9d4c59fca0 (diff) |
upstream commit
basic unit tests for rsa-sha2-* signature types
Upstream-Regress-ID: 7dc4b9db809d578ff104d591b4d86560c3598d3c
Diffstat (limited to 'regress/unittests/sshkey/test_fuzz.c')
-rw-r--r-- | regress/unittests/sshkey/test_fuzz.c | 30 |
1 files changed, 23 insertions, 7 deletions
diff --git a/regress/unittests/sshkey/test_fuzz.c b/regress/unittests/sshkey/test_fuzz.c index cb7924de1..1f414e0ac 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.5 2015/10/06 01:20:59 djm Exp $ */ | 1 | /* $OpenBSD: test_fuzz.c,v 1.6 2015/12/07 02:20:46 djm Exp $ */ |
2 | /* | 2 | /* |
3 | * Fuzz tests for key parsing | 3 | * Fuzz tests for key parsing |
4 | * | 4 | * |
@@ -72,13 +72,13 @@ public_fuzz(struct sshkey *k) | |||
72 | } | 72 | } |
73 | 73 | ||
74 | static void | 74 | static void |
75 | sig_fuzz(struct sshkey *k) | 75 | sig_fuzz(struct sshkey *k, const char *sig_alg) |
76 | { | 76 | { |
77 | struct fuzz *fuzz; | 77 | struct fuzz *fuzz; |
78 | u_char *sig, c[] = "some junk to be signed"; | 78 | u_char *sig, c[] = "some junk to be signed"; |
79 | size_t l; | 79 | size_t l; |
80 | 80 | ||
81 | ASSERT_INT_EQ(sshkey_sign(k, &sig, &l, c, sizeof(c), 0), 0); | 81 | ASSERT_INT_EQ(sshkey_sign(k, &sig, &l, c, sizeof(c), sig_alg, 0), 0); |
82 | ASSERT_SIZE_T_GT(l, 0); | 82 | ASSERT_SIZE_T_GT(l, 0); |
83 | fuzz = fuzz_begin(FUZZ_1_BIT_FLIP | /* too slow FUZZ_2_BIT_FLIP | */ | 83 | fuzz = fuzz_begin(FUZZ_1_BIT_FLIP | /* too slow FUZZ_2_BIT_FLIP | */ |
84 | FUZZ_1_BYTE_FLIP | FUZZ_2_BYTE_FLIP | | 84 | FUZZ_1_BYTE_FLIP | FUZZ_2_BYTE_FLIP | |
@@ -352,7 +352,23 @@ sshkey_fuzz_tests(void) | |||
352 | buf = load_file("rsa_1"); | 352 | buf = load_file("rsa_1"); |
353 | ASSERT_INT_EQ(sshkey_parse_private_fileblob(buf, "", &k1, NULL), 0); | 353 | ASSERT_INT_EQ(sshkey_parse_private_fileblob(buf, "", &k1, NULL), 0); |
354 | sshbuf_free(buf); | 354 | sshbuf_free(buf); |
355 | sig_fuzz(k1); | 355 | sig_fuzz(k1, "ssh-rsa"); |
356 | sshkey_free(k1); | ||
357 | TEST_DONE(); | ||
358 | |||
359 | TEST_START("fuzz RSA SHA256 sig"); | ||
360 | buf = load_file("rsa_1"); | ||
361 | ASSERT_INT_EQ(sshkey_parse_private_fileblob(buf, "", &k1, NULL), 0); | ||
362 | sshbuf_free(buf); | ||
363 | sig_fuzz(k1, "rsa-sha2-256"); | ||
364 | sshkey_free(k1); | ||
365 | TEST_DONE(); | ||
366 | |||
367 | TEST_START("fuzz RSA SHA512 sig"); | ||
368 | buf = load_file("rsa_1"); | ||
369 | ASSERT_INT_EQ(sshkey_parse_private_fileblob(buf, "", &k1, NULL), 0); | ||
370 | sshbuf_free(buf); | ||
371 | sig_fuzz(k1, "rsa-sha2-512"); | ||
356 | sshkey_free(k1); | 372 | sshkey_free(k1); |
357 | TEST_DONE(); | 373 | TEST_DONE(); |
358 | 374 | ||
@@ -360,7 +376,7 @@ sshkey_fuzz_tests(void) | |||
360 | buf = load_file("dsa_1"); | 376 | buf = load_file("dsa_1"); |
361 | ASSERT_INT_EQ(sshkey_parse_private_fileblob(buf, "", &k1, NULL), 0); | 377 | ASSERT_INT_EQ(sshkey_parse_private_fileblob(buf, "", &k1, NULL), 0); |
362 | sshbuf_free(buf); | 378 | sshbuf_free(buf); |
363 | sig_fuzz(k1); | 379 | sig_fuzz(k1, NULL); |
364 | sshkey_free(k1); | 380 | sshkey_free(k1); |
365 | TEST_DONE(); | 381 | TEST_DONE(); |
366 | 382 | ||
@@ -369,7 +385,7 @@ sshkey_fuzz_tests(void) | |||
369 | buf = load_file("ecdsa_1"); | 385 | buf = load_file("ecdsa_1"); |
370 | ASSERT_INT_EQ(sshkey_parse_private_fileblob(buf, "", &k1, NULL), 0); | 386 | ASSERT_INT_EQ(sshkey_parse_private_fileblob(buf, "", &k1, NULL), 0); |
371 | sshbuf_free(buf); | 387 | sshbuf_free(buf); |
372 | sig_fuzz(k1); | 388 | sig_fuzz(k1, NULL); |
373 | sshkey_free(k1); | 389 | sshkey_free(k1); |
374 | TEST_DONE(); | 390 | TEST_DONE(); |
375 | #endif | 391 | #endif |
@@ -378,7 +394,7 @@ sshkey_fuzz_tests(void) | |||
378 | buf = load_file("ed25519_1"); | 394 | buf = load_file("ed25519_1"); |
379 | ASSERT_INT_EQ(sshkey_parse_private_fileblob(buf, "", &k1, NULL), 0); | 395 | ASSERT_INT_EQ(sshkey_parse_private_fileblob(buf, "", &k1, NULL), 0); |
380 | sshbuf_free(buf); | 396 | sshbuf_free(buf); |
381 | sig_fuzz(k1); | 397 | sig_fuzz(k1, NULL); |
382 | sshkey_free(k1); | 398 | sshkey_free(k1); |
383 | TEST_DONE(); | 399 | TEST_DONE(); |
384 | 400 | ||