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