Mercurial > dropbear
diff fuzz.h @ 1357:08f4fa4dc6a0 fuzz
closer to working
author | Matt Johnston <matt@ucc.asn.au> |
---|---|
date | Sat, 20 May 2017 13:23:16 +0800 |
parents | 3677a510f545 |
children | 6b89eb92f872 |
line wrap: on
line diff
--- a/fuzz.h Fri May 19 00:48:46 2017 +0800 +++ b/fuzz.h Sat May 20 13:23:16 2017 +0800 @@ -1,10 +1,13 @@ #ifndef DROPBEAR_FUZZ_H #define DROPBEAR_FUZZ_H +#include "config.h" +#ifdef DROPBEAR_FUZZ + #include "includes.h" #include "buffer.h" - -#ifdef DROPBEAR_FUZZ +#include "algo.h" +#include "fuzz-wrapfd.h" // once per process void svr_setup_fuzzer(void); @@ -12,6 +15,16 @@ // once per input. returns DROPBEAR_SUCCESS or DROPBEAR_FAILURE int fuzzer_set_input(const uint8_t *Data, size_t Size); +void fuzz_kex_fakealgos(void); + +// fake IO wrappers +#ifndef FUZZ_SKIP_WRAP +#define select(nfds, readfds, writefds, exceptfds, timeout) \ + wrapfd_select(nfds, readfds, writefds, exceptfds, timeout) +#define write(fd, buf, count) wrapfd_write(fd, buf, count) +#define read(fd, buf, count) wrapfd_read(fd, buf, count) +#endif // FUZZ_SKIP_WRAP + struct dropbear_fuzz_options { int fuzzing; @@ -20,6 +33,9 @@ // fuzzing input buffer *input; + struct dropbear_cipher recv_cipher; + struct dropbear_hash recv_mac; + int wrapfds; // dropbear_exit() jumps back sigjmp_buf jmp; @@ -34,6 +50,6 @@ extern struct dropbear_fuzz_options fuzz; -#endif +#endif // DROPBEAR_FUZZ #endif /* DROPBEAR_FUZZ_H */