Skip to main content

Package overview

All cryptographic signature loaders share one interface: keypair(), sign(), verify(), and buffer_to_string().

Public loaders

import {
// KEM
loadMlKem512,
loadMlKem768,
loadMlKem1024,
// Signatures
loadFnDsa512,
loadFnDsa1024,
loadMlDsa3,
loadMlDsa5,
loadSqisignLvl1,
loadSqisignLvl3,
loadSqisignLvl5,
loadSlhDsa128,
loadSlhDsa192,
loadSlhDsa256,
// Browser-accelerated SQIsign
loadSqisignLvl1WebGpu,
loadSqisignLvl3WebGpu,
loadSqisignLvl5WebGpu,
getSqisignWebGpuSupport,
setSqisignAccelWorkerUrl,
} from "quantum-resistant-rustykey";

Specification notice (SQIsign identifiers)

COSE/JOSE algorithm IDs (-61, -62, -63) and strings (SQIsign-L1, SQIsign-L3, SQIsign-L5) follow the active cose-sqisign Internet-Draft. They are provisional — not final IANA assignments. Use them for interop testing and R&D.

Why SQIsign matters for WebAuthn

Many FIDO2 / CTAP2 authenticators use a ~1024-byte buffer. Dilithium-class signatures (~2.4 KB) and Falcon-1024 do not fit. SQIsign signatures (~200 bytes class) are currently the practical PQC option that fits with metadata.

Credits

  • NIST (ML-KEM, ML-DSA, SLH-DSA / FN-DSA lineage)
  • SQIsign team — official C at SQISign/the-sqisign
  • ML-KEM packaging approach adapted from mlkem-wasm

Funding

Supported by University of Quantum Science, RustyKey®, Customers' Yachts® Advisors, and BuzzyBee®.