quipnetwork/hashsigs-rs

Hash-based post quantum signatures in Rust

View on GitHub ↗Jump to charts ↓

Summary Information

Updated 1 hour ago
Added to GitGenius on September 5th, 2026
Created on March 19th, 2025
Open Issues & Pull Requests: 7 (+0)
GitHub issues: Enabled
Number of forks: 45
Total Stargazers: 11,219 (+0)
Total Subscribers: 16 (+0)

Charts & Analytics

Fetching additional details & charts...

Issue Activity (beta)

Issue API getrepoissuespagesummary failed: 429 Rate limit exceeded. Please try again later.

Detailed Description

hashsigs-rs is a Rust library for hash-based post-quantum signatures.

The library implements WOTS+ primitives and SHRINCS signer and verifier functionality, addressing the need for cryptographic schemes resistant to quantum computing attacks. It wraps these primitives in an account-layer policy interface and provides bindings for WebAssembly and Solana program integration, allowing the core cryptographic operations to be used across different platforms and runtimes.

The project suits developers building post-quantum cryptographic systems who need to target multiple environments. The WASM bindings expose SHRINCS verification, key generation, signing, and account-layer operations through a JavaScript interface with hex-encoded byte fields and camelCase objects, making it accessible to Node and browser consumers. The Solana program integration serves blockchain applications requiring post-quantum signatures. Developers should be aware that WOTS-specific WASM bindings and a separate wasm-pack layout are not currently implemented.

The project maintains two testing layers for WASM coverage: Rust host tests validate DTO parsing and conversion logic without running in a WASM runtime, while TypeScript conformance tests exercise the built package through both Node and browser loaders after compilation. Version tags matching the semantic versioning pattern trigger npm publication alongside the standard build and test pipeline. The TypeScript package uses conditional exports to swap Node and browser loaders at bundle time, with the browser field directing consumers to the appropriate loader implementation.