pub trait VerifyingKey: PublicKey<PrivateKeyMaterial = Self::SigningKeyMaterial> + ValidCryptoMaterial + Sealed {
    type SigningKeyMaterial: SigningKey<VerifyingKeyMaterial = Self>;
    type SignatureMaterial: Signature<VerifyingKeyMaterial = Self>;

    // Provided methods
    fn verify_struct_signature<T: CryptoHash + Serialize>(
        &self,
        message: &T,
        signature: &Self::SignatureMaterial
    ) -> Result<()> { ... }
    fn batch_verify<T: CryptoHash + Serialize>(
        message: &T,
        keys_and_signatures: Vec<(Self, Self::SignatureMaterial)>
    ) -> Result<()> { ... }
}
Expand description

A type family of public keys that are used for signing.

This trait has a requirement on a pub(crate) marker trait meant to specifically limit its implementations to the present crate.

It is linked to a type of the Signature family, which carries the verification implementation.

Required Associated Types§

source

type SigningKeyMaterial: SigningKey<VerifyingKeyMaterial = Self>

The associated signing key type for this verifying key.

source

type SignatureMaterial: Signature<VerifyingKeyMaterial = Self>

The associated signature type for this verifying key.

Provided Methods§

source

fn verify_struct_signature<T: CryptoHash + Serialize>( &self, message: &T, signature: &Self::SignatureMaterial ) -> Result<()>

We provide the striaghtfoward implementation which dispatches to the signature.

source

fn batch_verify<T: CryptoHash + Serialize>( message: &T, keys_and_signatures: Vec<(Self, Self::SignatureMaterial)> ) -> Result<()>

We provide the implementation which dispatches to the signature.

Implementors§

source§

impl VerifyingKey for Ed25519PublicKey

source§

impl VerifyingKey for MultiEd25519PublicKey

We deduce VerifyingKey from pointing to the signature material we get the ability to do pubkey.validate(msg, signature)