pub struct MlDsa44PublicKey { /* private fields */ }Expand description
An ML-DSA-44 public key.
Verification is stateless. Use MlDsa44PublicKey::verify for a message
and optional context, or MlDsa44PublicKey::verify_external_mu for a
precomputed 64-byte message representative.
let key = MlDsa44SecretKey::new(&seed);
let signature = key.sign_derand(b"message", b"", &[0u8; 32]).unwrap();
assert!(key.public_key().verify(b"message", &signature, b"").is_ok());Implementations§
Source§impl MlDsa44PublicKey
impl MlDsa44PublicKey
Sourcepub fn from_bytes(bytes: &[u8; 1312]) -> Self
pub fn from_bytes(bytes: &[u8; 1312]) -> Self
Creates a public key from its 1312-byte encoded form.
Sourcepub fn verify(
&self,
message: &[u8],
signature: &[u8; 2420],
ctx: &[u8],
) -> Result<(), MlDsaError>
pub fn verify( &self, message: &[u8], signature: &[u8; 2420], ctx: &[u8], ) -> Result<(), MlDsaError>
Verifies an ML-DSA-44 signature over message with the optional
context ctx.
Returns MlDsaError::InvalidSignature if the signature is invalid and
MlDsaError::ContextTooLong if ctx exceeds 255 bytes.
Sourcepub fn verify_external_mu(
&self,
mu: &[u8; 64],
signature: &[u8; 2420],
) -> Result<(), MlDsaError>
pub fn verify_external_mu( &self, mu: &[u8; 64], signature: &[u8; 2420], ) -> Result<(), MlDsaError>
Verifies an ML-DSA-44 signature over a precomputed 64-byte message
representative mu (FIPS 204 “external mu” verification).
mu must be the output of the FIPS 204 message-representative
computation; this function performs no domain separation or hashing.
Returns MlDsaError::InvalidSignature if the signature is invalid.