Make differential fuzzing between secp256k1 libraries
I think the main libraries we should have here are those written in different programming languages. For example, we will not add Rust-secp256k1, an FFI of secp256k1 from Bitcoin Core.
Suggestions: secp256k1 (C) noble-secp256k1 (js) NBitcoin-secp256k1 (c#) secp256k1-go (go) - LND uses this one secp256kfun (rust) k256 (rust)
We can get some ideas from cryptofuzz, since they have some targets for secp256k1: https://github.com/MozillaSecurity/cryptofuzz
Since cryptofuzz is not alive anymore and I don't see constant maintaince on this Mozilla fork, I think it makes sense to have it here.
Was thinking of doing differential fuzzing between libsecp256k1 and Decred’s secp256k1. If this hasn’t been started yet, can I pick it up?
Was thinking of doing differential fuzzing between libsecp256k1 and Decred’s secp256k1. If this hasn’t been started yet, can I pick it up?
Yes, feel free to take this on.
There's also secp256kfun in Rust (you'll probably find many bugs there).
And also k256. This one is a production-grade secp256k1 library.
Good suggestions! Those are definitely worth having.
@NishantBansal2003 Are you planning on working on adding the other modules?
@NishantBansal2003 Are you planning on working on adding the other modules?
Yes, I’ll be working on this. It’s already on my mind, let me first get comfortable with Rust syntax (I haven’t programmed in Rust yet), and then I’ll raise a PR for the other modules as well.