mirror of
https://github.com/clearml/dropbear
synced 2025-04-20 06:05:03 +00:00
use random keyblob from the fuzzer instead
This commit is contained in:
parent
2583b180c9
commit
abee8093b3
@ -20,19 +20,22 @@ int LLVMFuzzerTestOneInput(const uint8_t *Data, size_t Size) {
|
|||||||
|
|
||||||
m_malloc_set_epoch(1);
|
m_malloc_set_epoch(1);
|
||||||
|
|
||||||
/* choose a keytype based on input */
|
|
||||||
uint8_t b = 0;
|
|
||||||
size_t i;
|
|
||||||
for (i = 0; i < Size; i++) {
|
|
||||||
b ^= Data[i];
|
|
||||||
}
|
|
||||||
const char* algoname = fuzz_signkey_names[b%DROPBEAR_SIGNKEY_NUM_NAMED];
|
|
||||||
const char* keyblob = "blob"; /* keep short */
|
|
||||||
|
|
||||||
if (setjmp(fuzz.jmp) == 0) {
|
if (setjmp(fuzz.jmp) == 0) {
|
||||||
fuzz_checkpubkey_line(fuzz.input, 5, "/home/me/authorized_keys",
|
buffer *line = buf_getstringbuf(fuzz.input);
|
||||||
algoname, strlen(algoname),
|
buffer *keyblob = buf_getstringbuf(fuzz.input);
|
||||||
(unsigned char*)keyblob, strlen(keyblob));
|
|
||||||
|
unsigned int algolen;
|
||||||
|
const char* algoname = buf_getstring(keyblob, &algolen);
|
||||||
|
|
||||||
|
if (have_algo(algo, algolen, sshhostkey) == DROPBEAR_FAILURE) {
|
||||||
|
dropbear_exit("fuzzer imagined a bogus algorithm");
|
||||||
|
}
|
||||||
|
fuzz_checkpubkey_line(line, 5, "/home/me/authorized_keys",
|
||||||
|
algoname, algolen,
|
||||||
|
keyblob->data, keyblob->len);
|
||||||
|
|
||||||
|
buf_free(line);
|
||||||
|
buf_free(keyblob);
|
||||||
m_malloc_free_epoch(1, 0);
|
m_malloc_free_epoch(1, 0);
|
||||||
} else {
|
} else {
|
||||||
m_malloc_free_epoch(1, 1);
|
m_malloc_free_epoch(1, 1);
|
||||||
|
Loading…
Reference in New Issue
Block a user