synor/crates/synor-crypto/Cargo.toml
Gulshan Yadav af79e21a1b feat(crypto): add post-quantum algorithm negotiation protocol
Implements a protocol for nodes to negotiate which post-quantum signature
algorithm to use for communication. Supports Dilithium3, SPHINCS+ (128s/192s/256s),
and FALCON (512/1024) with configurable preferences based on:
- Security level (NIST 1-5)
- Bandwidth constraints (signature size limits)
- Algorithm family preference (lattice vs hash-based)

Key features:
- AlgorithmCapabilities for advertising node capabilities
- AlgorithmNegotiator for selecting best common algorithm
- Scoring strategies (local/remote preference, average, min/max)
- Fallback algorithm selection (different family for resilience)
- Session parameters with renegotiation support
- Full test coverage (11 tests)

This completes Milestone 2 (Enhanced Quantum Cryptography) of Phase 13.
2026-01-19 23:03:03 +05:30

51 lines
1.3 KiB
TOML

[package]
name = "synor-crypto"
version.workspace = true
edition.workspace = true
authors.workspace = true
license.workspace = true
description = "Quantum-resistant cryptography for Synor blockchain"
[dependencies]
synor-types = { path = "../synor-types" }
# Classical cryptography
ed25519-dalek = { workspace = true }
x25519-dalek = { workspace = true }
rand = { workspace = true }
rand_core = { workspace = true }
# Post-quantum cryptography (NIST FIPS 203-206)
pqcrypto-dilithium = { workspace = true } # FIPS 204 (ML-DSA)
pqcrypto-kyber = { workspace = true } # FIPS 203 (ML-KEM)
pqcrypto-sphincsplus = { workspace = true } # FIPS 205 (SLH-DSA)
pqcrypto-falcon = { workspace = true } # FIPS 206 (FN-DSA)
pqcrypto-traits = { workspace = true }
# Hashing
sha3 = { workspace = true }
blake3 = { workspace = true }
# Key derivation
hkdf = "0.12"
pbkdf2 = { version = "0.12", features = ["simple"] }
hmac = "0.12"
# BIP-39 mnemonics
tiny-bip39 = "1.0"
# Utilities
serde = { workspace = true }
serde_json = { workspace = true }
borsh = { workspace = true }
thiserror = { workspace = true }
zeroize = { version = "1.7", features = ["derive"] }
hex = { workspace = true }
[dev-dependencies]
criterion = { workspace = true }
proptest = { workspace = true }
[[bench]]
name = "crypto_bench"
harness = false