summaryrefslogtreecommitdiffhomepage
path: root/fuzz.h
diff options
context:
space:
mode:
authorMatt Johnston <matt@ucc.asn.au>2018-01-23 23:05:47 +0800
committerMatt Johnston <matt@ucc.asn.au>2018-01-23 23:05:47 +0800
commit89bdf3b0b9376204b039f38f8bebffa92cb30d4e (patch)
tree5a1a23f5ae301b599d1b0e9ccb23b0dcc3dbc1f4 /fuzz.h
parent597f7eb5e921c70545d3f45e2b5e0b19867573e0 (diff)
add fuzzer-preauth_nomaths
--HG-- branch : fuzz
Diffstat (limited to 'fuzz.h')
-rw-r--r--fuzz.h12
1 files changed, 9 insertions, 3 deletions
diff --git a/fuzz.h b/fuzz.h
index e3bcb7f..7569130 100644
--- a/fuzz.h
+++ b/fuzz.h
@@ -10,12 +10,14 @@
#include "fuzz-wrapfd.h"
// once per process
-void common_setup_fuzzer(void);
-void svr_setup_fuzzer(void);
+void fuzz_common_setup(void);
+void fuzz_svr_setup(void);
// must be called once per fuzz iteration.
// returns DROPBEAR_SUCCESS or DROPBEAR_FAILURE
-int fuzzer_set_input(const uint8_t *Data, size_t Size);
+int fuzz_set_input(const uint8_t *Data, size_t Size);
+
+int fuzz_run_preauth(const uint8_t *Data, size_t Size, int skip_kexmaths);
// fuzzer functions that intrude into general code
void fuzz_kex_fakealgos(void);
@@ -26,6 +28,7 @@ extern const char * const * fuzz_signkey_names;
void fuzz_seed(void);
void fuzz_get_socket_address(int fd, char **local_host, char **local_port,
char **remote_host, char **remote_port, int host_lookup);
+void fuzz_fake_send_kexdh_reply(void);
// fake IO wrappers
#ifndef FUZZ_SKIP_WRAP
@@ -48,6 +51,9 @@ struct dropbear_fuzz_options {
struct dropbear_hash recv_mac;
int wrapfds;
+ // whether to skip slow bignum maths
+ int skip_kexmaths;
+
// dropbear_exit() jumps back
int do_jmp;
sigjmp_buf jmp;