Skip to content

tea2x/quantum-purse-key-vault

Repository files navigation

Quantum Purse key vault

This module provides a secure authentication interface for managing SPHINCS+ cryptographic keys in QuantumPurse project using Rust and WebAssembly.

Feature list:
Feature Details
Signature type SPHINCS+
Store model Indexed DB
Mnemonic standard Custom BIP39 English
Local encryption AES256
Key derivation Scrypt
Authentication Password
Password hashing Scrypt

Custom BIP39

SPHINCS+ offers 12 parameter sets, grouped by three security parameters: 128-bit, 192-bit, and 256-bit. These require seeds of 48 bytes, 72 bytes, and 96 bytes respectively, used across key generation and signing.

This library introduces a custom BIP39 mnemonic backup format for each security parameter of SPHINCS+ as below:

SPHINCS+ security parameter BIP39 level Word count
128 bit ~ 48 bytes 3*16byte 3*12 = 36 words
192 bit ~ 72 bytes 3*24byte 3*18 = 54 words
256 bit ~ 96 bytes 3*32byte 3*24 = 72 words

Dependency

  • Rust & Cargo
  • Wasm-pack
  • Npm

Build

# init submodule quantum-resistant-lockscript
git submodule update --init

# run build script
./build.sh

# test
cargo test

Package and publish

cd dist
npm pack
npm login
npm publish

About

The SPHINCS+ key management module for Quantum Purse project

Resources

License

Stars

Watchers

Forks

Packages

No packages published