Skip to main content

SignatureScheme

Trait SignatureScheme 

Source
pub trait SignatureScheme: Algorithm {
    const PRIVATE_KEY_LEN: usize;
    const PUBLIC_KEY_LEN: usize;
    const SIGNATURE_LEN: usize;

    // Required methods
    fn public_key(private_key: &[u8], out: &mut [u8]) -> Result<()>;
    fn sign(
        private_key: &[u8],
        message: &[u8],
        signature: &mut [u8],
    ) -> Result<()>;
    fn verify(public_key: &[u8], message: &[u8], signature: &[u8]) -> Result<()>;
}
Expand description

A digital signature scheme.

Required Associated Constants§

Source

const PRIVATE_KEY_LEN: usize

Seed / private key length in bytes.

Source

const PUBLIC_KEY_LEN: usize

Public key length in bytes.

Source

const SIGNATURE_LEN: usize

Signature length in bytes.

Required Methods§

Source

fn public_key(private_key: &[u8], out: &mut [u8]) -> Result<()>

Derive the public key from a private key.

Source

fn sign(private_key: &[u8], message: &[u8], signature: &mut [u8]) -> Result<()>

Sign message, writing exactly Self::SIGNATURE_LEN bytes.

Source

fn verify(public_key: &[u8], message: &[u8], signature: &[u8]) -> Result<()>

Verify a signature, returning crate::ErrorKind::AuthenticationFailed when it does not check out.

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety".

Implementors§