Post-quantum primitives
@webbuf/mldsa
Rust/wasm ML-DSA (FIPS 204) post-quantum digital signatures
Install
npm install @webbuf/mldsaUsage
import { mlDsa65KeyPair, mlDsa65Sign, mlDsa65Verify } from "@webbuf/mldsa";
import { WebBuf } from "@webbuf/webbuf";
const message = WebBuf.fromUtf8("Signed message");
const context = WebBuf.fromUtf8("example");
const { verifyingKey, signingKey } = mlDsa65KeyPair();
const signature = mlDsa65Sign(signingKey, message, context);
const ok = mlDsa65Verify(verifyingKey, message, signature, context);API reference (25 exports)
Constants
ML_DSA_44
constML_DSA_44: { readonly verifyingKeySize: 1312; readonly signingKeySize: 2560; readonly signatureSize: 2420; }ML_DSA_65
constML_DSA_65: { readonly verifyingKeySize: 1952; readonly signingKeySize: 4032; readonly signatureSize: 3309; }ML_DSA_87
constML_DSA_87: { readonly verifyingKeySize: 2592; readonly signingKeySize: 4896; readonly signatureSize: 4627; }Functions
mlDsa44KeyPair
functionmlDsa44KeyPair(seed?: FixedBuf<32>): MlDsaKeyPair<1312, 2560>mlDsa44KeyPairDeterministic
functionmlDsa44KeyPairDeterministic(seed: FixedBuf<32>): MlDsaKeyPair<1312, 2560>mlDsa44Sign
functionmlDsa44Sign(signingKey: FixedBuf<2560>, message: WebBuf, context?: WebBuf): FixedBuf<2420>mlDsa44SignDeterministic
functionmlDsa44SignDeterministic(signingKey: FixedBuf<2560>, message: WebBuf, context?: WebBuf): FixedBuf<2420>mlDsa44SignInternal
functionmlDsa44SignInternal(signingKey: FixedBuf<2560>, message: WebBuf, rnd: FixedBuf<32>): FixedBuf<2420>mlDsa44Verify
functionmlDsa44Verify(verifyingKey: FixedBuf<1312>, message: WebBuf, signature: FixedBuf<2420>, context?: WebBuf): booleanmlDsa44VerifyInternal
functionmlDsa44VerifyInternal(verifyingKey: FixedBuf<1312>, message: WebBuf, signature: FixedBuf<2420>): booleanmlDsa65KeyPair
functionmlDsa65KeyPair(seed?: FixedBuf<32>): MlDsaKeyPair<1952, 4032>mlDsa65KeyPairDeterministic
functionmlDsa65KeyPairDeterministic(seed: FixedBuf<32>): MlDsaKeyPair<1952, 4032>mlDsa65Sign
functionmlDsa65Sign(signingKey: FixedBuf<4032>, message: WebBuf, context?: WebBuf): FixedBuf<3309>mlDsa65SignDeterministic
functionmlDsa65SignDeterministic(signingKey: FixedBuf<4032>, message: WebBuf, context?: WebBuf): FixedBuf<3309>mlDsa65SignInternal
functionmlDsa65SignInternal(signingKey: FixedBuf<4032>, message: WebBuf, rnd: FixedBuf<32>): FixedBuf<3309>mlDsa65Verify
functionmlDsa65Verify(verifyingKey: FixedBuf<1952>, message: WebBuf, signature: FixedBuf<3309>, context?: WebBuf): booleanmlDsa65VerifyInternal
functionmlDsa65VerifyInternal(verifyingKey: FixedBuf<1952>, message: WebBuf, signature: FixedBuf<3309>): booleanmlDsa87KeyPair
functionmlDsa87KeyPair(seed?: FixedBuf<32>): MlDsaKeyPair<2592, 4896>mlDsa87KeyPairDeterministic
functionmlDsa87KeyPairDeterministic(seed: FixedBuf<32>): MlDsaKeyPair<2592, 4896>mlDsa87Sign
functionmlDsa87Sign(signingKey: FixedBuf<4896>, message: WebBuf, context?: WebBuf): FixedBuf<4627>mlDsa87SignDeterministic
functionmlDsa87SignDeterministic(signingKey: FixedBuf<4896>, message: WebBuf, context?: WebBuf): FixedBuf<4627>mlDsa87SignInternal
functionmlDsa87SignInternal(signingKey: FixedBuf<4896>, message: WebBuf, rnd: FixedBuf<32>): FixedBuf<4627>mlDsa87Verify
functionmlDsa87Verify(verifyingKey: FixedBuf<2592>, message: WebBuf, signature: FixedBuf<4627>, context?: WebBuf): booleanmlDsa87VerifyInternal
functionmlDsa87VerifyInternal(verifyingKey: FixedBuf<2592>, message: WebBuf, signature: FixedBuf<4627>): booleanInterfaces
MlDsaKeyPair
interfaceverifyingKey: FixedBuf<VkSize>
signingKey: FixedBuf<SkSize>