diff options
Diffstat (limited to 'regress/misc/fuzz-harness/sshsig_fuzz.cc')
-rw-r--r-- | regress/misc/fuzz-harness/sshsig_fuzz.cc | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/regress/misc/fuzz-harness/sshsig_fuzz.cc b/regress/misc/fuzz-harness/sshsig_fuzz.cc new file mode 100644 index 000000000..fe09ccb87 --- /dev/null +++ b/regress/misc/fuzz-harness/sshsig_fuzz.cc | |||
@@ -0,0 +1,35 @@ | |||
1 | // cc_fuzz_target test for sshsig verification. | ||
2 | |||
3 | #include <stddef.h> | ||
4 | #include <stdio.h> | ||
5 | #include <stdint.h> | ||
6 | #include <stdlib.h> | ||
7 | #include <string.h> | ||
8 | |||
9 | extern "C" { | ||
10 | |||
11 | #include "includes.h" | ||
12 | #include "sshkey.h" | ||
13 | #include "ssherr.h" | ||
14 | #include "sshbuf.h" | ||
15 | #include "sshsig.h" | ||
16 | #include "log.h" | ||
17 | |||
18 | int LLVMFuzzerTestOneInput(const uint8_t* sig, size_t slen) | ||
19 | { | ||
20 | static const char *data = "If everyone started announcing his nose had " | ||
21 | "run away, I don’t know how it would all end"; | ||
22 | struct sshbuf *signature = sshbuf_from(sig, slen); | ||
23 | struct sshbuf *message = sshbuf_from(data, strlen(data)); | ||
24 | struct sshkey *k = NULL; | ||
25 | extern char *__progname; | ||
26 | |||
27 | log_init(__progname, SYSLOG_LEVEL_QUIET, SYSLOG_FACILITY_USER, 1); | ||
28 | sshsig_verifyb(signature, message, "castle", &k); | ||
29 | sshkey_free(k); | ||
30 | sshbuf_free(signature); | ||
31 | sshbuf_free(message); | ||
32 | return 0; | ||
33 | } | ||
34 | |||
35 | } // extern | ||