Files
pezkuwi-wasm/packages/wasm-crypto/Cargo.toml
T
Satoshi Qazi Muhammed d0520842dc Move wasm-crypto off the crate versions with advisories
curve25519-dalek 2/3 -> 4.1.3 (timing variability in Scalar52::sub, on
every signature), ed25519-dalek 1 -> 2, schnorrkel 0.9 -> 0.11, merlin
2 -> 3, secp256k1 0.21 -> 0.29, tiny-bip39 0.7 -> 1.0 (drops failure),
keccak 0.1.6, rand 0.8. wee_alloc is unmaintained and is no longer the
global allocator. OSV: 9 crates with advisories before, 0 after.

secp256k1 is built with lowmemory: newer libsecp256k1 embeds about 1 MB
of precomputed tables, which would have quadrupled the wasm. The
signatures are the same; recovery uses a smaller window.

getrandom 0.2 is used with a custom backend that calls one fixed
import, wbg.ext_fill_random, which the bridge fills from
@pezkuwi/x-randomvalues. The getrandom "js" backend would have needed a
dozen new hashed wasm-bindgen imports in the bridge; the wasm now has
one import instead of 18.

The recorded known answers still hold, and signatures made by either
build verify in the other.
2026-10-12 06:17:29 +04:00

49 lines
1.4 KiB
TOML

# name & version is only used internally, doesn't need to be adjusted. In the case of
# name keep it consistent at "wasm" since the scripts (for re-use purposes) expect that
[package]
authors = ["Jaco Greeff <jacogr@gmail.com>"]
description = "WASM bindings to Rust crypto libraries."
edition = "2018"
license = "Apache-2.0"
name = "wasm"
publish = false
repository = "https://git.pezkuwichain.io/pezkuwichain/pezkuwi-wasm/"
resolver = "2"
version = "0.0.0"
[lib]
crate-type = ["cdylib"]
[dependencies]
blake2-rfc = "0.2.18"
byteorder = "1.3.1"
curve25519-dalek = { version = "4.1.3", default-features = false }
ed25519-dalek = "2.1"
getrandom = { version = "0.2.17", features = ["custom"] }
hmac = "0.7.0"
secp256k1 = { version = "0.29.1", default-features = false, features = ["recovery", "global-context", "lowmemory"] }
merlin = { version = "3.0", default-features = false }
pbkdf2 = { version = "0.3.0", default-features = false }
schnorrkel = "0.11.4"
scrypt = { version = "0.2", default-features = false }
sha2 = "0.8.1"
tiny-bip39 = { version = "1.0", default-features = false }
tiny-keccak = { version = "2.0.1", features = ["keccak"] }
twox-hash = "1.5.0"
wasm-bindgen = "=0.2.90"
[dev-dependencies]
hex-literal = "0.2.0"
rand = "0.8.5"
[profile.release]
codegen-units = 1
debug = false
debug-assertions = false
incremental = false
lto = true
opt-level = "z"
panic = "abort"
rpath = false