We currently have:
verify_signature for verifying arbitrary signatures.
recover_secp_public_key for recovering a secp public key from a secp signature.
Unfortunately, the first one is a bit limited:
- It does hashing internally, which restricts the user to a specific hash function.
- It needs the public key to do verification in the first place, which is why we needed
recover_secp_public_key.
- It can't, e.g., validate bls signature aggregates.
Proposal:
- Add a new
verify_bls_aggregate (where the aggregate may have one element).
- Remove
verify_signature.
- Move all hashing to userspace.
We currently have:
verify_signaturefor verifying arbitrary signatures.recover_secp_public_keyfor recovering a secp public key from a secp signature.Unfortunately, the first one is a bit limited:
recover_secp_public_key.Proposal:
verify_bls_aggregate(where the aggregate may have one element).verify_signature.