pub struct MlDsa87PublicKey { /* private fields */ }Expand description
An ML-DSA-87 public key.
Verification is stateless. Use MlDsa87PublicKey::verify for a message
and optional context, or MlDsa87PublicKey::verify_external_mu for a
precomputed 64-byte message representative.
let key = MlDsa87SecretKey::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 MlDsa87PublicKey
impl MlDsa87PublicKey
Sourcepub fn from_bytes(bytes: &[u8; 2592]) -> Self
pub fn from_bytes(bytes: &[u8; 2592]) -> Self
Creates a public key from its 2592-byte encoded form.
Sourcepub fn verify(
&self,
message: &[u8],
signature: &[u8; 4627],
ctx: &[u8],
) -> Result<(), MlDsaError>
pub fn verify( &self, message: &[u8], signature: &[u8; 4627], ctx: &[u8], ) -> Result<(), MlDsaError>
Verifies an ML-DSA-87 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; 4627],
) -> Result<(), MlDsaError>
pub fn verify_external_mu( &self, mu: &[u8; 64], signature: &[u8; 4627], ) -> Result<(), MlDsaError>
Verifies an ML-DSA-87 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.