Example ML DSA usage
Normal signature
from python_pqc_lib.dsa import MLDSA, MLDSA_65
### SIGNER SIDE
signer = MLDSA(MLDSA_65)
signer.KeyGen()
message = b'Hello, World!'
context = b'ML DSA example'
signature = signer.Sign(message, context)
###
# Signer then sends somebody the message, context and signature. When requested, he will provide the public key.
### VERIFICATION SIDE
verification = MLDSA(MLDSA_65)
result = verification.Verify(signer.public_key, message, signature, context)
assert result
###
Hash signature
from python_pqc_lib.dsa import MLDSA, MLDSA_65
### SIGNER SIDE
signer = MLDSA(MLDSA_65)
signer.KeyGen()
message = b'Hello, World!'
context = b'ML DSA example'
signature = signer.HashSign(message, 'SHA3-512', context)
###
# Signer then sends somebody the message, context and signature. When requested, he will provide the public key.
# Signer also needs to provide the digest algorithm chosen either as a string or as OID.
### VERIFICATION SIDE
verification = MLDSA(MLDSA_65)
result = verification.HashVerify(signer.public_key, message, signature, 'SHA3-512', context)
assert result
###