This PR adds a DLEQ (Discrete Logarithm Equality) proof module as specified in BIP 374.
Based on [PR #1651](https://github.com/bitcoin-core/secp256k1/pull/1651) by @stratospher and the secp256k1-zkp implementation.
Public API
Exposes two functions for proof generation and verification:
secp256k1_dleq_provesecp256k1_dleq_verify
These are designed to support rust FFI bindings and follow the API patterns established in similar modules.
Questions for Reviewers
- Should this module be optional (current behavior) or enabled by default?
- Are there additional changes needed to support existing Silent Payments PRs?
- Feedback on API design, documentation, and test coverage?
Notes
Addressed outstanding comments from [PR #1651](https://github.com/bitcoin-core/secp256k1/pull/1651#discussion_r2417300085):
- BIP-374 v0.2.0 test vectors
- Proper memory clearing with memclear