A VetKey is in the end a valid BLS signature; this function checks that a
provided BLS signature is the valid one for the provided public key and
message.
Specifically this verifies "augmented" BLS signature, which includes the
public key of the signer as an input to the hash. This addition ensures that
messages signed by different public keys are distinct.
See section 3.2 of the IETF draft draft-irtf-cfrg-bls-signature for details.
When a VetKey struct is created (using EncryptedVetKey.decryptAndVerify) the signature
is already verified, so using this function is only necessary when
using a vetKey as a VRF or for threshold BLS signatures, with the bytes obtained
from VetKey.signatureBytes.
Verify a BLS signature
A VetKey is in the end a valid BLS signature; this function checks that a provided BLS signature is the valid one for the provided public key and message.
Specifically this verifies "augmented" BLS signature, which includes the public key of the signer as an input to the hash. This addition ensures that messages signed by different public keys are distinct.
See section 3.2 of the IETF draft
draft-irtf-cfrg-bls-signature
for details.When a VetKey struct is created (using EncryptedVetKey.decryptAndVerify) the signature is already verified, so using this function is only necessary when using a vetKey as a VRF or for threshold BLS signatures, with the bytes obtained from VetKey.signatureBytes.