@@ -40,7 +40,7 @@ hkdf = "0.12.4"
4040sha2 = { version = " 0.10.9" , features = [" oid" ] }
4141sha3 = { version = " 0.10.8" , optional = true }
4242blake2 = { version = " 0.10.6" , optional = true }
43- blake3 = { version = " 1.5.5 " , optional = true }
43+ blake3 = { version = " 1.8.2 " , optional = true }
4444
4545# Message Authentication Codes
4646hmac = " 0.12.1"
@@ -52,8 +52,8 @@ rsa = { version = "0.9.8", optional = true, features = ["sha2"] }
5252pkcs8 = { version = " 0.10.2" , features = [" pem" , " alloc" ] }
5353
5454# Random number generation
55- getrandom = " 0.2.16 "
56- rand_core = " 0.6.4"
55+ getrandom = " 0.3.4 "
56+ rand_core = " 0.6.4" # Used for OsRng in asymmetric crypto modules
5757
5858# Secure memory handling
5959zeroize = { version = " 1.8.2" , features = [" derive" ] }
@@ -69,21 +69,33 @@ hex = "0.4.3"
6969thiserror = " 1.0.69"
7070
7171# Serialization (optional)
72- serde = { version = " 1.0.215 " , features = [" derive" ], optional = true }
72+ serde = { version = " 1.0.228 " , features = [" derive" ], optional = true }
7373
7474# Zero-copy optimizations (optional)
75- bytes = { version = " 1.9 .0" , optional = true }
75+ bytes = { version = " 1.11 .0" , optional = true }
7676
7777[dev-dependencies ]
7878criterion = { version = " 0.7.0" , features = [" html_reports" ] }
7979proptest = " 1.9.0"
8080quickcheck = " 1.0.3"
8181hex-literal = " 1.1.0"
82- serde_json = " 1.0.141 "
82+ serde_json = " 1.0.145 "
8383bincode = " 1.3.3"
8484toml = " 0.8.23"
8585serde_bytes = " 0.11.19"
8686
87+ # WASM-specific: Enable WASM support for both getrandom versions
88+ # - getrandom 0.2.x (transitive via rand_core 0.6 from ed25519-dalek/x25519-dalek) needs `js`
89+ # - getrandom 0.3.x (our direct dependency) needs `wasm_js`
90+ # Both versions will be used simultaneously, each with their respective features
91+ #
92+ # ⚠️ KNOWN ISSUE (v0.3.3): WASM builds currently fail due to Cargo's unified feature resolution
93+ # Cannot enable different features for different versions of the same crate.
94+ # Will be fixed when upgrading to ed25519-dalek 3.0 / x25519-dalek 3.0 (requires Rust 1.81+)
95+ # For WASM support, use CrabGraph v0.3.2 or earlier.
96+ [target .'cfg(target_arch = "wasm32")' .dependencies ]
97+ getrandom = { version = " 0.3.4" , features = [" wasm_js" ] }
98+
8799[features ]
88100default = [" std" ]
89101std = [" aes-gcm/std" , " chacha20poly1305/std" , " argon2/std" ]
@@ -93,7 +105,8 @@ extended-hashes = ["sha3", "blake2", "blake3"]
93105rsa-support = [" rsa" ]
94106serde-support = [" serde" ]
95107zero-copy = [" bytes" ]
96- wasm = [" getrandom/js" ]
108+ # WASM support is automatic via target-specific getrandom dependency
109+ wasm = []
97110
98111[[example ]]
99112name = " rsa_example"
0 commit comments