[][src]Trait overlord::Crypto

pub trait Crypto: Send {
    fn hash(&self, msg: Bytes) -> Hash;
fn sign(&self, hash: Hash) -> Result<Signature, Box<dyn Error + Send>>;
fn aggregate_signatures(
        &self,
        signatures: Vec<Signature>,
        voters: Vec<Address>
    ) -> Result<Signature, Box<dyn Error + Send>>;
fn verify_signature(
        &self,
        signature: Signature,
        hash: Hash,
        voter: Address
    ) -> Result<(), Box<dyn Error + Send>>;
fn verify_aggregated_signature(
        &self,
        aggregate_signature: Signature,
        msg_hash: Hash,
        voters: Vec<Address>
    ) -> Result<(), Box<dyn Error + Send>>; }

Trait for some crypto methods.

Required methods

fn hash(&self, msg: Bytes) -> Hash

Hash a message bytes.

fn sign(&self, hash: Hash) -> Result<Signature, Box<dyn Error + Send>>

Sign to the given hash by private key and return the signature if success.

fn aggregate_signatures(
    &self,
    signatures: Vec<Signature>,
    voters: Vec<Address>
) -> Result<Signature, Box<dyn Error + Send>>

Aggregate the given signatures into an aggregated signature according to the given bitmap.

fn verify_signature(
    &self,
    signature: Signature,
    hash: Hash,
    voter: Address
) -> Result<(), Box<dyn Error + Send>>

Verify a signature and return the recovered address.

fn verify_aggregated_signature(
    &self,
    aggregate_signature: Signature,
    msg_hash: Hash,
    voters: Vec<Address>
) -> Result<(), Box<dyn Error + Send>>

Verify an aggregated signature.

Loading content...

Implementors

Loading content...