Mercurial > dropbear
comparison fuzz.h @ 1782:a6da10ac64b5 fuzz
fuzz: make postauth set authdone properly
author | Matt Johnston <matt@ucc.asn.au> |
---|---|
date | Thu, 03 Dec 2020 22:18:51 +0800 |
parents | 36d4c027cba7 |
children | a3b39df57c8b |
comparison
equal
deleted
inserted
replaced
1781:bf1912d2d6e9 | 1782:a6da10ac64b5 |
---|---|
22 | 22 |
23 // must be called once per fuzz iteration. | 23 // must be called once per fuzz iteration. |
24 // returns DROPBEAR_SUCCESS or DROPBEAR_FAILURE | 24 // returns DROPBEAR_SUCCESS or DROPBEAR_FAILURE |
25 int fuzz_set_input(const uint8_t *Data, size_t Size); | 25 int fuzz_set_input(const uint8_t *Data, size_t Size); |
26 | 26 |
27 int fuzz_run_server(const uint8_t *Data, size_t Size, int skip_kexmaths, int authdone); | 27 int fuzz_run_server(const uint8_t *Data, size_t Size, int skip_kexmaths, int postauth); |
28 int fuzz_run_client(const uint8_t *Data, size_t Size, int skip_kexmaths); | 28 int fuzz_run_client(const uint8_t *Data, size_t Size, int skip_kexmaths); |
29 const void* fuzz_get_algo(const algo_type *algos, const char* name); | 29 const void* fuzz_get_algo(const algo_type *algos, const char* name); |
30 | 30 |
31 // fuzzer functions that intrude into general code | 31 // fuzzer functions that intrude into general code |
32 void fuzz_kex_fakealgos(void); | 32 void fuzz_kex_fakealgos(void); |
33 int fuzz_checkpubkey_line(buffer* line, int line_num, char* filename, | 33 int fuzz_checkpubkey_line(buffer* line, int line_num, char* filename, |
34 const char* algo, unsigned int algolen, | 34 const char* algo, unsigned int algolen, |
35 const unsigned char* keyblob, unsigned int keybloblen); | 35 const unsigned char* keyblob, unsigned int keybloblen); |
36 extern const char * const * fuzz_signkey_names; | 36 extern const char * const * fuzz_signkey_names; |
37 void fuzz_seed(const unsigned char* dat, unsigned int len); | 37 void fuzz_seed(const unsigned char* dat, unsigned int len); |
38 void fuzz_svr_hook_preloop(void); | |
38 | 39 |
39 typedef void(*connect_callback)(int result, int sock, void* data, const char* errstring); | 40 typedef void(*connect_callback)(int result, int sock, void* data, const char* errstring); |
40 struct dropbear_progress_connection *fuzz_connect_remote(const char* remotehost, const char* remoteport, | 41 struct dropbear_progress_connection *fuzz_connect_remote(const char* remotehost, const char* remoteport, |
41 connect_callback cb, void* cb_data, | 42 connect_callback cb, void* cb_data, |
42 const char* bind_address, const char* bind_port); | 43 const char* bind_address, const char* bind_port); |
66 struct dropbear_hash recv_mac; | 67 struct dropbear_hash recv_mac; |
67 int wrapfds; | 68 int wrapfds; |
68 | 69 |
69 // whether to skip slow bignum maths | 70 // whether to skip slow bignum maths |
70 int skip_kexmaths; | 71 int skip_kexmaths; |
72 // whether is svr_postauth mode | |
73 int svr_postauth; | |
71 | 74 |
72 // dropbear_exit() jumps back | 75 // dropbear_exit() jumps back |
73 int do_jmp; | 76 int do_jmp; |
74 sigjmp_buf jmp; | 77 sigjmp_buf jmp; |
75 | 78 |