Justin Traglia 7d170f9939
Add coverage-guided C fuzzers (#203)
* Start to add fuzzers

* Update path to trusted setup in gen_corpus

* Update path one more time

* Add support for two more targets

* Add fuzzers for remaining targets

* Clean up a little

* Add README

* Fix typos

* De-dup fuzzing files

* Add newline at the end of base_fuzz

* Make generic rule for displaying targets

* Use regular make command

* Remove duplicate targets

* Update .gitignore file
2023-03-13 12:45:02 +02:00

22 lines
682 B
C

#include "../base_fuzz.h"
static const size_t BLOBS_OFFSET = 0;
static const size_t COMMITMENTS_OFFSET = BLOBS_OFFSET + BYTES_PER_BLOB;
static const size_t PROOFS_OFFSET = COMMITMENTS_OFFSET + BYTES_PER_COMMITMENT;
static const size_t INPUT_SIZE = PROOFS_OFFSET + BYTES_PER_PROOF;
int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) {
initialize();
size_t count = size / INPUT_SIZE;
bool ok;
verify_blob_kzg_proof_batch(
&ok,
(const Blob *)(data + BLOBS_OFFSET * count),
(const Bytes48 *)(data + COMMITMENTS_OFFSET * count),
(const Bytes48 *)(data + PROOFS_OFFSET * count),
count,
&s
);
return 0;
}