-
-
Notifications
You must be signed in to change notification settings - Fork 43
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Fuzzing #54
Comments
Easy initial fuzzing targets:
Note: Coverage-guided fuzzers like libFuzzer try to trigger all codepaths based on branches in the code.
|
cc @guidovranken who is a world-class fuzzer - he may find this library and fuzzing ideas interesting |
Thanks for pinging me @paulmillr ! @mratsim My project supports a wide range of operations including pairing cryptography and bignum operations and it has found hundreds of bugs in major libraries. Let me know if you'd like to integrate a module for constantine.. |
Some progress towards fuzzing. There is a new bindings generator, which can be called with For now serialization is restricted to only field elements Fp and Fr and the dll wasn't tested at all. Before running the actual code the "NimMain" function like Example bindings: https://github.com/mratsim/constantine/blob/37354e9/bindings/generated/constantine_bls12_381.h Some example C code to load that and property-based test the code or differential fuzz vs GMP in the CI will be added in the future as an example. |
Constantine has been integrated in OSS-fuzz in google/oss-fuzz#10710 through https://github.com/guidovranken/cryptofuzz |
See https://github.com/status-im/nim-blscurve/pull/53/files
for fuzzing with libFuzzer and AFL.
Regarding corpus creation, Klee might be interesting to look into: https://klee.github.io/, https://srg.doc.ic.ac.uk/klee18/talks/Zmyslowski-Feeding-the-Fuzzers-with-KLEE.pdf
Also OSS-Fuzz is running ecc-diff-fuzzer: google/oss-fuzz#3408, https://github.com/catenacyber/elliptic-curve-differential-fuzzer
Though there doesn't seem to be any differential fuzzer for pairing-based cryptography.
The text was updated successfully, but these errors were encountered: