asn1: Document fuzzing in README-template.md
This commit is contained in:
@@ -77,7 +77,43 @@ Notes about the template parser:
|
|||||||
|
|
||||||
TODO:
|
TODO:
|
||||||
|
|
||||||
- Fuzzing tests
|
- Fuzzing tests, always more fuzzing:
|
||||||
|
|
||||||
|
- Instructions:
|
||||||
|
|
||||||
|
```
|
||||||
|
$ cd build/lib/asn1
|
||||||
|
$ make clean
|
||||||
|
$ AFL_HARDEN=1 make -j4 asn1_print check CC=afl-gcc # or CC=afl-clang
|
||||||
|
$ mkdir i
|
||||||
|
$ cp ../../../lib/hx509/data/ca.crt # etc.
|
||||||
|
$ mkdir f
|
||||||
|
$ ../../libtool --mode=execute afl-fuzz -i $PWD/i -o $PWD/f ./asn1_print '@@' Certificate
|
||||||
|
$
|
||||||
|
$ # Or
|
||||||
|
$ ../../libtool --mode=execute afl-fuzz -i $PWD/i -o $PWD/f ./asn1_print -A '@@'
|
||||||
|
$
|
||||||
|
$ # Examing crash reports, if any. Each crash report consists of an input
|
||||||
|
$ # that caused a crash, so run:
|
||||||
|
$
|
||||||
|
$ for i in f/crashes/id*; do
|
||||||
|
> echo $i
|
||||||
|
> ../../libtool --mode=execute valgrind --num-callers=64 ./asn1_print $i \
|
||||||
|
> Certificate IOSCertificationRequest >/dev/null 2> f3/crashes/vg-${i##*/}
|
||||||
|
> done
|
||||||
|
$
|
||||||
|
$ $PAGER f3/crashes/vg-*
|
||||||
|
```
|
||||||
|
|
||||||
|
- Currently using a largish certificate as the input corpus. Need more,
|
||||||
|
and more minimized DER encodings.
|
||||||
|
|
||||||
|
- Make building with AFL a ./cofigure option.
|
||||||
|
|
||||||
|
- Make fuzzing with AFL a make target.
|
||||||
|
|
||||||
|
- Fuzz decode round-tripping (don't just decode, but also encoded the
|
||||||
|
decoded).
|
||||||
|
|
||||||
- Performance testing
|
- Performance testing
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user