Nicer Package Manager

    sphincs
    TypeScript icon, indicating that this package has built-in type declarations

    3.0.1 • Public • Published

    sphincs

    Overview

    The SPHINCS+ post-quantum cryptographic signing scheme compiled to WebAssembly using Emscripten. A simple JavaScript wrapper is provided to make SPHINCS+ easy to use in Web applications.

    The default parameter set is SPHINCS+-SHAKE-256s-robust (roughly 256-bit strength).

    N.B. Unless interoperability with other SPHINCS+ implementations is a hard requirement, it is recommended to use supersphincs instead.

    Example Usage

    import {sphincs} from 'sphincs';
    
    const keyPair /*: {privateKey: Uint8Array; publicKey: Uint8Array} */ =
    	await sphincs.keyPair()
    ;
    
    const message /*: Uint8Array */ =
    	new Uint8Array([104, 101, 108, 108, 111, 0]) // "hello"
    ;
    
    /* Combined signatures */
    
    const signed /*: Uint8Array */ =
    	await sphincs.sign(message, keyPair.privateKey)
    ;
    
    const verified /*: Uint8Array */ =
    	await sphincs.open(signed, keyPair.publicKey) // same as message
    ;
    
    /* Detached signatures */
    
    const signature /*: Uint8Array */ =
    	await sphincs.signDetached(message, keyPair.privateKey)
    ;
    
    const isValid /*: boolean */ =
    	await sphincs.verifyDetached(signature, message, keyPair.publicKey) // true
    ;
    
    console.log(keyPair);
    console.log(message);
    console.log(signed);
    console.log(verified);
    console.log(signature);
    console.log(isValid);
    

    Changelog

    Breaking changes in major versions:

    3.0.0:

    • Upgraded from SPHINCS to SPHINCS+. For backwards compatibility with previous versions of this package, use sphincs-legacy.

    2.0.0:

    • As part of upgrading from asm.js to WebAssembly (with asm.js included as a fallback), the API is fully asynchronous.

    Install

    npm i sphincs

    DownloadsWeekly Downloads

    50

    Version

    3.0.1

    License

    MIT

    Unpacked Size

    96.4 kB

    Total Files

    9

    Last publish

    Collaborators

    • cyphinc