This PR is part of integrating silent payments into Bitcoin Core. The project is tracked in #28536
Based on https://github.com/bitcoin-core/secp256k1/pull/1698
BIP352
This PR focuses strictly on the BIP logic and attempts to separate it from the wallet and transaction implementation details. This is accomplished by working directly with public and private keys, instead of needing a wallet backend and transactions for testing. Labels for the receiver are optional and thus deferred for a later PR.
Test vectors from the BIP are included as unit tests.