Skip to main content

Module mldsa

Module mldsa 

Source
Expand description

ML-DSA

ML-DSA is a post-quantum key signature scheme, specified in FIPS 204.

use bssl_crypto::mldsa;

// Generate a key pair.
let (serialized_public_key, private_key, _private_seed) = mldsa::PrivateKey65::generate();

// Send `serialized_public_key` to the verifier. The verifier parses it:
let public_key = mldsa::PublicKey65::parse(&serialized_public_key).unwrap();

// The signer signs a message.
let message = &[0u8, 1, 2, 3];
let signature = private_key.sign(message);

// Send `message` and `signature` to the verifier. The verifier checks the signature.
assert!(public_key.verify(message, &signature).is_ok());

Structs§

Prehash65
An in-progress ML-DSA-65 pre-hashing operation.
Prehash87
An in-progress ML-DSA-87 pre-hashing operation.
PrivateKey65
An ML-DSA-65 private key.
PrivateKey87
An ML-DSA-87 private key.
PublicKey65
An ML-DSA-65 public key.
PublicKey87
An ML-DSA-87 public key.

Constants§

MU_BYTES
The number of bytes in an ML-DSA external mu.
PUBLIC_KEY_BYTES_65
The number of bytes in an encoded ML-DSA-65 public key.
PUBLIC_KEY_BYTES_87
The number of bytes in an encoded ML-DSA-87 public key.
SEED_BYTES
The number of bytes in an ML-DSA seed value.
SIGNATURE_BYTES_65
The number of bytes in an encoded ML-DSA-65 signature.
SIGNATURE_BYTES_87
The number of bytes in an encoded ML-DSA-87 signature.