Trait SigningKey

Source
pub trait SigningKey:
    PrivateKey<PublicKeyMaterial = Self::VerifyingKeyMaterial>
    + ValidCryptoMaterial
    + Sealed {
    type VerifyingKeyMaterial: VerifyingKey<SigningKeyMaterial = Self>;
    type SignatureMaterial: Signature<SigningKeyMaterial = Self>;

    // Required method
    fn sign<T: CryptoHash + Serialize>(
        &self,
        message: &T,
    ) -> Self::SignatureMaterial;

    // Provided method
    fn verifying_key(&self) -> Self::VerifyingKeyMaterial { ... }
}
Expand description

A type family of valid keys that know how to sign.

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

A trait for a ValidCryptoMaterial which knows how to sign a message, and return an associated Signature type.

Required Associated Types§

Source

type VerifyingKeyMaterial: VerifyingKey<SigningKeyMaterial = Self>

The associated verifying key type for this signing key.

Source

type SignatureMaterial: Signature<SigningKeyMaterial = Self>

The associated signature type for this signing key.

Required Methods§

Source

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

Signs an object that has an distinct domain-separation hasher and that we know how to serialize. There is no pre-hashing into a HashValue to be done by the caller.

Note: this assumes serialization is unfaillible. See diem_common::bcs::ser for a discussion of this assumption.

Provided Methods§

Source

fn verifying_key(&self) -> Self::VerifyingKeyMaterial

Returns the associated verifying key

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.

Implementors§