[][src]Trait bls_signatures_rs::MultiSignature

pub trait MultiSignature<PublicKey, SecretKey, Signature> {
    type Error;
    fn derive_public_key(
        &mut self,
        secret_key: SecretKey
    ) -> Result<Vec<u8>, Self::Error>;
fn sign(
        &mut self,
        secret_key: SecretKey,
        message: &[u8]
    ) -> Result<Vec<u8>, Self::Error>;
fn verify(
        &mut self,
        signature: Signature,
        message: &[u8],
        public_key: PublicKey
    ) -> Result<(), Self::Error>;
fn aggregate_public_keys(
        &mut self,
        public_keys: &[PublicKey]
    ) -> Result<Vec<u8>, Self::Error>;
fn aggregate_signatures(
        &mut self,
        signatures: &[Signature]
    ) -> Result<Vec<u8>, Self::Error>; }

The MultiSignature trait specifies an interface common for curves with multi signature support.

This trait requires to define the types for PublicKey, SecretKey and Signature.

Associated Types

type Error

Loading content...

Required methods

fn derive_public_key(
    &mut self,
    secret_key: SecretKey
) -> Result<Vec<u8>, Self::Error>

Function to derive public key given a secret key.

Arguments

  • secret_key - The secret key to derive the public key

Returns

  • If successful, a vector of bytes with the public key

fn sign(
    &mut self,
    secret_key: SecretKey,
    message: &[u8]
) -> Result<Vec<u8>, Self::Error>

Function to sign a message given a private key.

Arguments

  • message - The message to be signed
  • secret_key - The secret key for signing

Returns

  • If successful, a vector of bytes with the signature

fn verify(
    &mut self,
    signature: Signature,
    message: &[u8],
    public_key: PublicKey
) -> Result<(), Self::Error>

Function to verify a signature given a public key.

Arguments

  • signature - The signature
  • message - The message to be signed
  • public_key - The public key to verify

Returns

  • If successful, Ok(()); otherwise Error

fn aggregate_public_keys(
    &mut self,
    public_keys: &[PublicKey]
) -> Result<Vec<u8>, Self::Error>

Function to aggregate public keys in their corresponding group.

Arguments

  • public_key - An array of public keys to be aggregated

Returns

  • If successful, a vector of bytes with the aggregated public key

fn aggregate_signatures(
    &mut self,
    signatures: &[Signature]
) -> Result<Vec<u8>, Self::Error>

Function to aggregate signatures in their corresponding group.

Arguments

  • signatures - An array of signatures to be aggregated

Returns

  • If successful, a vector of bytes with the aggregated signature
Loading content...

Implementors

impl<'_, '_, '_> MultiSignature<&'_ [u8], &'_ [u8], &'_ [u8]> for Bn256[src]

type Error = Error

fn derive_public_key(&mut self, secret_key: &[u8]) -> Result<Vec<u8>, Error>[src]

Function to derive public key (point in G2) given a secret key.

Arguments

  • secret_key - The secret key bytes

Returns

  • If successful, a vector of bytes with the public key

fn sign(
    &mut self,
    secret_key: &[u8],
    message: &[u8]
) -> Result<Vec<u8>, Self::Error>
[src]

Function to sign a message given a private key (as a point in G1).

Arguments

  • message - The message bytes
  • secret_key - The secret key bytes

Returns

  • If successful, a vector of bytes with the signature

fn verify(
    &mut self,
    signature: &[u8],
    message: &[u8],
    public_key: &[u8]
) -> Result<(), Self::Error>
[src]

Function to verify a signature (point in G1) given a public key (point in G2).

Arguments

  • signature - The signature bytes
  • message - The message to be signed
  • public_key - The public key bytes

Returns

  • If successful, Ok(()); otherwise Error

fn aggregate_public_keys(
    &mut self,
    public_keys: &[&[u8]]
) -> Result<Vec<u8>, Self::Error>
[src]

Function to aggregate public keys (sum of points in G2).

Arguments

  • public_keys - An array of public key bytes to be aggregated

Returns

  • If successful, a vector of bytes with the aggregated public key

fn aggregate_signatures(
    &mut self,
    signatures: &[&[u8]]
) -> Result<Vec<u8>, Self::Error>
[src]

Function to aggregate signatures (sum of points in G1).

Arguments

  • signatures - An array of signature bytes to be aggregated

Returns

  • If successful, a vector of bytes with the aggregated signature
Loading content...