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.
- Private
Key65 - An ML-DSA-65 private key.
- Private
Key87 - An ML-DSA-87 private key.
- Public
Key65 - An ML-DSA-65 public key.
- Public
Key87 - 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.