pqcrypto_std::mldsa

Trait SigningKey

Source
pub trait SigningKey<const K: usize, const L: usize, const ETA: usize, const TAU: usize, const GAMMA1: usize, const GAMMA2: usize, const BETA: usize, const OMEGA: usize, const CT_BYTES: usize, const W1_BYTES: usize, const Z_BYTES: usize> {
    // Required methods
    fn sign(
        &self,
        sig: &mut [u8],
        rng: &mut impl CryptoRngCore,
        m: impl AsRef<[u8]>,
    );
    fn encode(&self, dst: &mut [u8]);
    fn decode(src: &[u8]) -> Self;
    fn keygen(vk: &mut [u8], rng: &mut impl CryptoRngCore) -> Self;
}
Expand description

Signatory in ML-DSA.

Required Methods§

Source

fn sign( &self, sig: &mut [u8], rng: &mut impl CryptoRngCore, m: impl AsRef<[u8]>, )

Sign message m using randomness from rng.

Source

fn encode(&self, dst: &mut [u8])

Source

fn decode(src: &[u8]) -> Self

Source

fn keygen(vk: &mut [u8], rng: &mut impl CryptoRngCore) -> Self

Private key generation.

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§

Source§

impl<T, const K: usize, const L: usize, const ETA: usize, const TAU: usize, const GAMMA1: usize, const GAMMA2: usize, const BETA: usize, const OMEGA: usize, const CT_BYTES: usize, const W1_BYTES: usize, const Z_BYTES: usize> SigningKey<K, L, ETA, TAU, GAMMA1, GAMMA2, BETA, OMEGA, CT_BYTES, W1_BYTES, Z_BYTES> for T
where T: SigningKeyInternal<K, L, ETA, TAU, GAMMA1, GAMMA2, BETA, OMEGA, CT_BYTES, W1_BYTES, Z_BYTES>,