Skip to main content

API overview

Human-oriented map of the public surface.

Types​

TypeScript declarations ship with the package (dist/index.d.ts via "types" / exports). You do not need @types/quantum-resistant-rustykey.

TypeRole
IFnDsa / IMlDsaShared signature API (keypair / sign / verify)
IMlKemML-KEM API
KeyPairSignature key handles → Uint8Array
MlKemKeyPairKEM key handles → CryptoKey
BytesLikeUint8Array | ArrayBuffer | hex string
EncryptResultKEM encapsulate result (cyphertext / secret)
IOpfsSkWalletBrowser OPFS encrypted-sk wallet
OpfsSkAlgorithmWallet algorithm id
OpfsSkPrfMaterial{ prfOutput, salt, userVerified: true }

Import types alongside loaders, e.g. import { loadSqisignLvl1, type IFnDsa } from "quantum-resistant-rustykey".

KEM​

ExportDescription
loadMlKem512()ML-KEM-512 loader
loadMlKem768()ML-KEM-768 loader
loadMlKem1024()ML-KEM-1024 loader

Each loader returns an object with keypair(), encrypt(), decrypt(), encryptMessage(), decryptMessage(), buffer_to_string().

Signatures (IFnDsa-style)​

ExportAlgorithm
loadFnDsa512 / loadFnDsa1024FN-DSA (Falcon)
loadMlDsa3 / loadMlDsa5ML-DSA
loadSqisignLvl1 / Lvl3 / Lvl5SQIsign WASM
loadSlhDsa128 / 192 / 256SLH-DSA (JS)

Common methods: keypair(), sign(), verify(), buffer_to_string().

SQIsign-webGPU (browser)​

ExportRole
loadSqisignLvl1WebGpu / Lvl3 / Lvl5Accelerated loaders
getSqisignWebGpuSupport()Feature detection
isSqisignWebGpuAvailable()Boolean helper
benchSqisignWebGpu(level)Built-in bench
setSqisignAccelWorkerUrl(url)Worker path override
SQISIGN_WEBGPU_VARIANT_LABELSDisplay labels

OPFS encrypted-sk wallet (browser)​

Requires crossOriginIsolated. Browser load*().keypair() / .sign() throw; use this wallet. Node loaders stay unconstrained. See OPFS encrypted-sk wallet.

ExportRole
loadOpfsSkWallet()Worker + OPFS AES-GCM wallet
setOpfsSkWorkerUrl(url)Worker path override
OPFS_SK_ALGORITHMSSQIsign, ML-DSA, FN-DSA, SLH-DSA ids
OPFS_SK_SLOT_SD_BUNDLEStatic demo slot name (sd-bundle)
assertOpfsSkCrossOriginIsolated()COI gate
assertBrowserSkCeremonyAllowed()Throws in the page; allows Node and the OPFS worker
opfsSkPrfOutputFromExtensionResults()Read WebAuthn PRF output
opfsSkPrfMaterialFromCeremony()Build { prfOutput, salt, userVerified: true }
opfsSkTriggerWebAuthn()create: prf: {}; get: UV + prf.eval

KAT hex exports​

SQISIGN_LVL*_KAT0_*_HEX constants for known-answer checks (see package entry).

License​

ISC