You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I'm interested in reimplementing a python version of the new ChaCha20Poly1305@Bitcoin AEAD and fuzzing it against the C++ implementation. However since it involves invoking a python interpreter from inside a C++ file, I'm confused on how to proceed.
Possible Approaches
using pipes to call the python script from the C++ file.
using pybind11 to create the python C++ interface (idea from this PR). However the python to C++ code for the AEAD wouldn't be very readable here.
Would method 1 be ok? I'd love to hear your thoughts on how to proceed.
The text was updated successfully, but these errors were encountered:
I think that calling into an external process disables the coverage tracking feature of fuzz engines we use (libfuzzer, afl, honggfuzz, ...). So I am not sure how useful it would be to add to this repo, as the CI-runs are based on a minimal set of inputs that reach maximal coverage. (It would still be run by google OSS-Fuzz and my fuzzing servers when generating).
However, I am also wondering how often the code would be modified. (The number of bugs found via fuzzing is correlated to the rate of changes made to the code). So maybe just implementing whatever you find easiest somewhere out-of-tree and then running it only once after the code is merged to master should be sufficient?
Or what about just using the recommended list of unit test vectors (if there is one) which would hopefully already cover all logic paths without the need for any fuzzing?
I'm interested in reimplementing a python version of the new ChaCha20Poly1305@Bitcoin AEAD and fuzzing it against the C++ implementation. However since it involves invoking a python interpreter from inside a C++ file, I'm confused on how to proceed.
Possible Approaches
Would method 1 be ok? I'd love to hear your thoughts on how to proceed.
The text was updated successfully, but these errors were encountered: