Trait diem_crypto::traits::VerifyingKey [−][src]
pub trait VerifyingKey: PublicKey<PrivateKeyMaterial = Self::SigningKeyMaterial> + ValidCryptoMaterial + Sealed {
type SigningKeyMaterial: SigningKey<VerifyingKeyMaterial = Self>;
type SignatureMaterial: Signature<VerifyingKeyMaterial = Self>;
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.
Associated Types
type SigningKeyMaterial: SigningKey<VerifyingKeyMaterial = Self>
type SigningKeyMaterial: SigningKey<VerifyingKeyMaterial = Self>
The associated signing key type for this verifying key.
type SignatureMaterial: Signature<VerifyingKeyMaterial = Self>
type SignatureMaterial: Signature<VerifyingKeyMaterial = Self>
The associated signature type for this verifying key.
Provided methods
fn verify_struct_signature<T: CryptoHash + Serialize>(
&self,
message: &T,
signature: &Self::SignatureMaterial
) -> Result<()>
fn verify_struct_signature<T: CryptoHash + Serialize>(
&self,
message: &T,
signature: &Self::SignatureMaterial
) -> Result<()>
We provide the striaghtfoward implementation which dispatches to the signature.
fn batch_verify<T: CryptoHash + Serialize>(
message: &T,
keys_and_signatures: Vec<(Self, Self::SignatureMaterial)>
) -> Result<()>
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
We deduce VerifyingKey from pointing to the signature material
we get the ability to do pubkey.validate(msg, signature)