Security: patched crate versions across the workspaces; wasmtime 50 in the sandbox; quick-xml 0.42 where outside XML is parsed #444

Closed
dcharlot wants to merge 1 commit from sec/rustsec-2026-10 into main
28 changed files with 502 additions and 739 deletions

16
eoc/eoc-rs/Cargo.lock generated
View file

@ -2660,9 +2660,9 @@ dependencies = [
[[package]]
name = "quinn-proto"
version = "0.11.17"
version = "0.11.19"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "04759210543be93709136e28212294a659ef5001836ff4eab4d663e4529bba83"
checksum = "0e750cca55fe4f0439a15d0bb529da9651e79993e8e72c61a899a36d462befbe"
dependencies = [
"aws-lc-rs",
"bytes",
@ -2994,9 +2994,9 @@ dependencies = [
[[package]]
name = "rustls"
version = "0.23.43"
version = "0.23.46"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0283386ce02abc0151e1761d08802dfe86c173b0b494af5cbc086574e453da06"
checksum = "48e13bd8c0e9365c43cfa5c9e8f9ad49d3c8444926c9aac819e0e4dc503c8fdf"
dependencies = [
"aws-lc-rs",
"once_cell",
@ -3057,9 +3057,9 @@ checksum = "f87165f0995f63a9fbeea62b64d10b4d9d8e78ec6d7d51fb2125fda7bb36788f"
[[package]]
name = "rustls-webpki"
version = "0.103.15"
version = "0.103.16"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f3c3cf1d8b1e7d4927e2d154c3fcb02979afb9939629c62cd9048d4f07b60ac2"
checksum = "4443b1b6d39d7c663139942cc4558262562d2c84123bb6282ef177009ca8b281"
dependencies = [
"aws-lc-rs",
"ring",
@ -3988,9 +3988,9 @@ dependencies = [
[[package]]
name = "webpki-root-certs"
version = "1.0.9"
version = "1.0.10"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b96554aa2acc8ccdb7e1c9a58a7a68dd5d13bccc69cd124cb09406db612a1c9b"
checksum = "58ec80e73fd8baf57bf0d9615554c75348bda990d6d5bbeab964dd068319fecb"
dependencies = [
"rustls-pki-types",
]

View file

@ -666,9 +666,9 @@ dependencies = [
[[package]]
name = "quick-xml"
version = "0.36.2"
version = "0.42.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f7649a7b4df05aed9ea7ec6f628c67c9953a43869b8bc50929569b2999d443fe"
checksum = "41b1177fdf999d2321d3fb46ff47159d9c1fb9ad66a4879f8c50a0b504615e9b"
dependencies = [
"memchr",
]

View file

@ -73,7 +73,7 @@ dependencies = [
"nom 7.1.3",
"num-traits",
"rusticata-macros",
"thiserror 2.0.20",
"thiserror",
"time",
]
@ -431,7 +431,7 @@ version = "0.3.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0fa961b519f0b462e3a3b4a34b64d119eeaca1d59af726fe450bbba07a9fc0a1"
dependencies = [
"thiserror 2.0.20",
"thiserror",
]
[[package]]
@ -1013,7 +1013,7 @@ dependencies = [
"rand_core 0.6.4",
"serde",
"serdect",
"thiserror 2.0.20",
"thiserror",
"visibility",
"zeroize",
]
@ -1335,45 +1335,23 @@ dependencies = [
"digest 0.11.3",
]
[[package]]
name = "hpke-rs"
version = "0.2.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e11bd4ee27b79fa1820e72ef8489cc729c87299ec3f7f52b8fc8dcb87cb2d485"
dependencies = [
"hpke-rs-crypto 0.2.0",
"log",
"serde",
"tls_codec 0.4.2",
"zeroize",
]
[[package]]
name = "hpke-rs"
version = "0.7.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "812de62ab573b876c6c40d7553bae9402ae3bad95b64af06f964388eecb9b7b1"
dependencies = [
"hpke-rs-crypto 0.7.0",
"hpke-rs-crypto",
"hpke-rs-libcrux",
"hpke-rs-rust-crypto 0.7.0",
"hpke-rs-rust-crypto",
"libcrux-sha3",
"log",
"serde",
"subtle",
"tls_codec 0.5.0",
"tls_codec",
"zeroize",
]
[[package]]
name = "hpke-rs-crypto"
version = "0.2.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1c3f1ae0a26c18d6469a70db1217136056261c4a244b09a755bc60bd4e055b67"
dependencies = [
"rand_core 0.6.4",
]
[[package]]
name = "hpke-rs-crypto"
version = "0.7.0"
@ -1390,7 +1368,7 @@ version = "0.7.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "4c1ace95ef11fbbd84527eada5fc1304f66720fc4c008db30d888d62d3c52613"
dependencies = [
"hpke-rs-crypto 0.7.0",
"hpke-rs-crypto",
"libcrux-aead",
"libcrux-ecdh",
"libcrux-hkdf",
@ -1402,24 +1380,6 @@ dependencies = [
"zeroize",
]
[[package]]
name = "hpke-rs-rust-crypto"
version = "0.2.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a08d4500baf0aced746723d3515d08212bdb9d941df6d1aca3d46d1619b2a1cf"
dependencies = [
"aes-gcm",
"chacha20poly1305",
"hkdf 0.12.4",
"hpke-rs-crypto 0.2.0",
"p256",
"p384",
"rand_chacha 0.3.1",
"rand_core 0.6.4",
"sha2 0.10.9",
"x25519-dalek 2.0.1",
]
[[package]]
name = "hpke-rs-rust-crypto"
version = "0.7.0"
@ -1429,7 +1389,7 @@ dependencies = [
"aes-gcm",
"chacha20poly1305",
"hkdf 0.13.0",
"hpke-rs-crypto 0.7.0",
"hpke-rs-crypto",
"k256",
"ml-kem",
"p256",
@ -1731,7 +1691,7 @@ dependencies = [
"ed25519-dalek",
"jcp-schema",
"serde",
"thiserror 2.0.20",
"thiserror",
]
[[package]]
@ -1744,7 +1704,7 @@ dependencies = [
"jcp-schema",
"serde",
"serde_json",
"thiserror 2.0.20",
"thiserror",
]
[[package]]
@ -1766,7 +1726,7 @@ dependencies = [
"hex",
"serde",
"serde_json",
"thiserror 2.0.20",
"thiserror",
]
[[package]]
@ -1781,7 +1741,7 @@ dependencies = [
"jni-sys",
"log",
"simd_cesu8",
"thiserror 2.0.20",
"thiserror",
"walkdir",
"windows-link",
]
@ -1835,7 +1795,7 @@ dependencies = [
"ed25519-dalek",
"joule-code-schema",
"serde",
"thiserror 2.0.20",
"thiserror",
]
[[package]]
@ -1855,11 +1815,11 @@ dependencies = [
"frost-ed25519",
"joule-code-cargo",
"joule-code-schema",
"openmls 0.6.0",
"openmls",
"openmls_basic_credential",
"openmls_rust_crypto 0.3.0",
"openmls_rust_crypto",
"rand 0.8.8",
"thiserror 2.0.20",
"thiserror",
]
[[package]]
@ -1916,7 +1876,7 @@ dependencies = [
"joule-code-schema",
"joulecontract-receipt",
"joulecontract-schema",
"thiserror 2.0.20",
"thiserror",
]
[[package]]
@ -1928,7 +1888,7 @@ dependencies = [
"joule-code-schema",
"serde",
"serde_json",
"thiserror 2.0.20",
"thiserror",
]
[[package]]
@ -1947,7 +1907,7 @@ dependencies = [
"proof-schema",
"proof-solvers",
"serde",
"thiserror 2.0.20",
"thiserror",
]
[[package]]
@ -1970,7 +1930,7 @@ dependencies = [
"sandbox-schema",
"serde",
"serde_json",
"thiserror 2.0.20",
"thiserror",
]
[[package]]
@ -1981,7 +1941,7 @@ dependencies = [
"joule-code-cargo",
"joule-code-schema",
"serde",
"thiserror 2.0.20",
"thiserror",
]
[[package]]
@ -1996,7 +1956,7 @@ dependencies = [
"joule-code-spec",
"serde",
"serde_json",
"thiserror 2.0.20",
"thiserror",
]
[[package]]
@ -2007,7 +1967,7 @@ dependencies = [
"blake3",
"ciborium",
"serde",
"thiserror 2.0.20",
"thiserror",
]
[[package]]
@ -2018,7 +1978,7 @@ dependencies = [
"joule-code-cargo",
"joule-code-schema",
"serde",
"thiserror 2.0.20",
"thiserror",
]
[[package]]
@ -2044,7 +2004,7 @@ dependencies = [
"serde",
"serde_json",
"sha2 0.10.9",
"thiserror 2.0.20",
"thiserror",
"tokio",
"tracing",
"uuid",
@ -2072,7 +2032,7 @@ dependencies = [
"serde_json",
"sha2 0.10.9",
"str0m",
"thiserror 2.0.20",
"thiserror",
"tokio",
"toml",
"tracing",
@ -2088,13 +2048,13 @@ dependencies = [
"getrandom 0.2.17",
"hex",
"joule-moq",
"openmls 0.9.1",
"openmls_rust_crypto 0.6.0",
"openmls_traits 0.6.0",
"openmls",
"openmls_rust_crypto",
"openmls_traits",
"serde",
"serde_json",
"sha2 0.10.9",
"tls_codec 0.5.0",
"tls_codec",
]
[[package]]
@ -2115,7 +2075,7 @@ dependencies = [
"rustls",
"serde",
"serde_json",
"thiserror 2.0.20",
"thiserror",
"tokio",
"tokio-tungstenite",
"toml",
@ -2142,7 +2102,7 @@ version = "0.6.0"
dependencies = [
"joulecontract-schema",
"serde",
"thiserror 2.0.20",
"thiserror",
]
[[package]]
@ -2153,7 +2113,7 @@ dependencies = [
"proof-cascade",
"proof-schema",
"serde",
"thiserror 2.0.20",
"thiserror",
]
[[package]]
@ -2165,7 +2125,7 @@ dependencies = [
"joulecontract-seal",
"serde",
"serde_json",
"thiserror 2.0.20",
"thiserror",
]
[[package]]
@ -2176,7 +2136,7 @@ dependencies = [
"serde",
"serde_json",
"sha2 0.10.9",
"thiserror 2.0.20",
"thiserror",
]
[[package]]
@ -2188,7 +2148,7 @@ dependencies = [
"rand 0.8.8",
"serde",
"serde_json",
"thiserror 2.0.20",
"thiserror",
]
[[package]]
@ -2202,7 +2162,7 @@ dependencies = [
"joulecontract-schema",
"serde",
"serde_json",
"thiserror 2.0.20",
"thiserror",
]
[[package]]
@ -2228,7 +2188,7 @@ dependencies = [
"quinn",
"serde",
"serde_json",
"thiserror 2.0.20",
"thiserror",
"tokio",
"tokio-util",
"tracing",
@ -2335,7 +2295,7 @@ dependencies = [
"libcrux-curve25519",
"libcrux-p256",
"rand 0.10.2",
"tls_codec 0.5.0",
"tls_codec",
]
[[package]]
@ -2418,7 +2378,7 @@ dependencies = [
"libcrux-sha3",
"libcrux-traits",
"rand 0.10.2",
"tls_codec 0.5.0",
"tls_codec",
]
[[package]]
@ -2722,20 +2682,6 @@ version = "0.3.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c08d65885ee38876c4f86fa503fb49d7b507c2b62552df7c70b2fce627e06381"
[[package]]
name = "openmls"
version = "0.6.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1f1295188c6665fb9e96466180ac0a919ef52b5861cf7e86523823661348a597"
dependencies = [
"log",
"openmls_traits 0.3.0",
"rayon",
"serde",
"thiserror 1.0.69",
"tls_codec 0.4.2",
]
[[package]]
name = "openmls"
version = "0.9.1"
@ -2745,41 +2691,31 @@ dependencies = [
"getrandom 0.4.3",
"log",
"openmls_serialization_helpers",
"openmls_traits 0.6.0",
"openmls_traits",
"rayon",
"serde",
"serde_bytes",
"thiserror 2.0.20",
"tls_codec 0.5.0",
"thiserror",
"tls_codec",
"web-time",
"zeroize",
]
[[package]]
name = "openmls_basic_credential"
version = "0.3.0"
version = "0.6.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "465874276a4e2a3e391b25a464059a224c70c5c77ca1e3f595032bb310ab8984"
checksum = "dbd3f0c3422e7c7a8496f042b547b0c28d0793f8ba97feb401966e58196a1e40"
dependencies = [
"ed25519-dalek",
"openmls_traits 0.3.0",
"ml-dsa",
"openmls_traits",
"p256",
"rand 0.8.8",
"p384",
"rand_core 0.6.4",
"serde",
"tls_codec 0.4.2",
]
[[package]]
name = "openmls_memory_storage"
version = "0.3.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ea9cc9eb04ed97262fa96382d7dbf0adfebd5ecde7dbafc7070f9231dd9cf08b"
dependencies = [
"log",
"openmls_traits 0.3.0",
"serde",
"serde_json",
"thiserror 1.0.69",
"tls_codec",
"zeroize",
]
[[package]]
@ -2789,35 +2725,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ce927945a16eaa19302ed5ccef052f01ba68f2ba7ae67e4ac4ff2fc661445364"
dependencies = [
"log",
"openmls_traits 0.6.0",
"openmls_traits",
"serde",
"serde_json",
"thiserror 2.0.20",
]
[[package]]
name = "openmls_rust_crypto"
version = "0.3.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1038331eabb5e63f276c9f866c081167c3ec1448ece0bf2bd535d1ecb5083d39"
dependencies = [
"aes-gcm",
"chacha20poly1305",
"ed25519-dalek",
"hkdf 0.12.4",
"hmac 0.12.1",
"hpke-rs 0.2.0",
"hpke-rs-crypto 0.2.0",
"hpke-rs-rust-crypto 0.2.0",
"openmls_memory_storage 0.3.0",
"openmls_traits 0.3.0",
"p256",
"rand 0.8.8",
"rand_chacha 0.3.1",
"serde",
"sha2 0.10.9",
"thiserror 1.0.69",
"tls_codec 0.4.2",
"thiserror",
]
[[package]]
@ -2831,20 +2742,20 @@ dependencies = [
"ed25519-dalek",
"hkdf 0.13.0",
"hmac 0.13.0",
"hpke-rs 0.7.0",
"hpke-rs-crypto 0.7.0",
"hpke-rs-rust-crypto 0.7.0",
"hpke-rs",
"hpke-rs-crypto",
"hpke-rs-rust-crypto",
"ml-dsa",
"openmls_memory_storage 0.6.0",
"openmls_traits 0.6.0",
"openmls_memory_storage",
"openmls_traits",
"p256",
"p384",
"rand_chacha 0.3.1",
"rand_core 0.10.1",
"rand_core 0.6.4",
"sha2 0.11.1",
"thiserror 2.0.20",
"tls_codec 0.5.0",
"thiserror",
"tls_codec",
]
[[package]]
@ -2856,17 +2767,7 @@ dependencies = [
"proc-macro2",
"quote",
"syn 2.0.119",
"thiserror 2.0.20",
]
[[package]]
name = "openmls_traits"
version = "0.3.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "443afa05406adc75fbfa0c3e04db93c5647b763861a474ae1aa8a99c362b80f8"
dependencies = [
"serde",
"tls_codec 0.4.2",
"thiserror",
]
[[package]]
@ -2876,7 +2777,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ac13edad8698eb1917cbc1dab99591fa1594d84320904fe3fc5121854f95831c"
dependencies = [
"serde",
"tls_codec 0.5.0",
"tls_codec",
]
[[package]]
@ -3105,7 +3006,7 @@ dependencies = [
"hex",
"serde",
"serde_json",
"thiserror 2.0.20",
"thiserror",
]
[[package]]
@ -3130,7 +3031,7 @@ dependencies = [
"rustc-hash",
"rustls",
"socket2",
"thiserror 2.0.20",
"thiserror",
"tokio",
"tracing",
"web-time",
@ -3138,9 +3039,9 @@ dependencies = [
[[package]]
name = "quinn-proto"
version = "0.11.17"
version = "0.11.19"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "04759210543be93709136e28212294a659ef5001836ff4eab4d663e4529bba83"
checksum = "0e750cca55fe4f0439a15d0bb529da9651e79993e8e72c61a899a36d462befbe"
dependencies = [
"bytes",
"fastbloom",
@ -3154,7 +3055,7 @@ dependencies = [
"rustls-pki-types",
"rustls-platform-verifier",
"slab",
"thiserror 2.0.20",
"thiserror",
"tinyvec",
"tracing",
"web-time",
@ -3404,9 +3305,9 @@ dependencies = [
[[package]]
name = "rustls"
version = "0.23.43"
version = "0.23.46"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0283386ce02abc0151e1761d08802dfe86c173b0b494af5cbc086574e453da06"
checksum = "48e13bd8c0e9365c43cfa5c9e8f9ad49d3c8444926c9aac819e0e4dc503c8fdf"
dependencies = [
"aws-lc-rs",
"log",
@ -3469,9 +3370,9 @@ checksum = "f87165f0995f63a9fbeea62b64d10b4d9d8e78ec6d7d51fb2125fda7bb36788f"
[[package]]
name = "rustls-webpki"
version = "0.103.15"
version = "0.103.16"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f3c3cf1d8b1e7d4927e2d154c3fcb02979afb9939629c62cd9048d4f07b60ac2"
checksum = "4443b1b6d39d7c663139942cc4558262562d2c84123bb6282ef177009ca8b281"
dependencies = [
"aws-lc-rs",
"ring",
@ -3503,7 +3404,7 @@ dependencies = [
"libloading",
"sandbox-schema",
"serde",
"thiserror 2.0.20",
"thiserror",
]
[[package]]
@ -3514,7 +3415,7 @@ dependencies = [
"blake3",
"ciborium",
"serde",
"thiserror 2.0.20",
"thiserror",
]
[[package]]
@ -3544,7 +3445,7 @@ dependencies = [
"rand 0.9.5",
"rustc-hash",
"slab",
"thiserror 2.0.20",
"thiserror",
]
[[package]]
@ -3962,33 +3863,13 @@ dependencies = [
"syn 3.0.4",
]
[[package]]
name = "thiserror"
version = "1.0.69"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b6aaf5339b578ea85b50e080feb250a3e8ae8cfcdff9a461c9ec2904bc923f52"
dependencies = [
"thiserror-impl 1.0.69",
]
[[package]]
name = "thiserror"
version = "2.0.20"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ec86235f5fcc2a73650310756d2ac5b138a5780bbbdfae3eeccec992c435ba4f"
dependencies = [
"thiserror-impl 2.0.20",
]
[[package]]
name = "thiserror-impl"
version = "1.0.69"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "4fee6c4efc90059e10f81e6d42c60a18f76588c3d74cb83a0b242a2b6c7504c1"
dependencies = [
"proc-macro2",
"quote",
"syn 2.0.119",
"thiserror-impl",
]
[[package]]
@ -4066,17 +3947,6 @@ version = "0.1.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20"
[[package]]
name = "tls_codec"
version = "0.4.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0de2e01245e2bb89d6f05801c564fa27624dbd7b1846859876c7dad82e90bf6b"
dependencies = [
"serde",
"tls_codec_derive 0.4.2",
"zeroize",
]
[[package]]
name = "tls_codec"
version = "0.5.0"
@ -4085,21 +3955,10 @@ checksum = "18cc98286004cea38f717e2b03d990fc774fbfd38a82720de40e5c94365067c8"
dependencies = [
"serde",
"serde_bytes",
"tls_codec_derive 0.5.0",
"tls_codec_derive",
"zeroize",
]
[[package]]
name = "tls_codec_derive"
version = "0.4.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "2d2e76690929402faae40aebdda620a2c0e25dd6d3b9afe48867dfd95991f4bd"
dependencies = [
"proc-macro2",
"quote",
"syn 2.0.119",
]
[[package]]
name = "tls_codec_derive"
version = "0.5.0"
@ -4280,7 +4139,7 @@ dependencies = [
"log",
"rand 0.9.5",
"sha1",
"thiserror 2.0.20",
"thiserror",
]
[[package]]
@ -4469,9 +4328,9 @@ dependencies = [
[[package]]
name = "webpki-root-certs"
version = "1.0.9"
version = "1.0.10"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b96554aa2acc8ccdb7e1c9a58a7a68dd5d13bccc69cd124cb09406db612a1c9b"
checksum = "58ec80e73fd8baf57bf0d9615554c75348bda990d6d5bbeab964dd068319fecb"
dependencies = [
"rustls-pki-types",
]
@ -4663,7 +4522,7 @@ dependencies = [
"rustls-pki-types",
"sha2 0.11.1",
"socket2",
"thiserror 2.0.20",
"thiserror",
"time",
"tokio",
"tracing",
@ -4680,7 +4539,7 @@ checksum = "aad9059572c7dbd6901ccef37f3b7321678cd708dcf58a64b1921dbeab7bfede"
dependencies = [
"httlib-huffman",
"octets",
"thiserror 2.0.20",
"thiserror",
"url",
]
@ -4745,7 +4604,7 @@ dependencies = [
"oid-registry",
"ring",
"rusticata-macros",
"thiserror 2.0.20",
"thiserror",
"time",
]

View file

@ -18,6 +18,6 @@ ed25519-dalek.workspace = true
rand = "0.8"
# MLS group keying (RFC 9420) for the collaborating set — demonstrated in
# tests/mls_keying.rs. Dev-dep so the library's runtime deps stay light.
openmls = "0.6"
openmls_rust_crypto = "0.3"
openmls_basic_credential = "0.3"
openmls = "=0.9.1"
openmls_rust_crypto = "=0.6.0"
openmls_basic_credential = "=0.6.0"

View file

@ -45,7 +45,7 @@ fn key_package(
fn export(group: &MlsGroup, provider: &OpenMlsRustCrypto) -> Vec<u8> {
group
.export_secret(provider, EXPORT_LABEL, &[], 32)
.export_secret(provider.crypto(), EXPORT_LABEL, &[], 32)
.expect("export secret")
}

View file

@ -2334,9 +2334,9 @@ dependencies = [
[[package]]
name = "quinn-proto"
version = "0.11.17"
version = "0.11.19"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "04759210543be93709136e28212294a659ef5001836ff4eab4d663e4529bba83"
checksum = "0e750cca55fe4f0439a15d0bb529da9651e79993e8e72c61a899a36d462befbe"
dependencies = [
"bytes",
"fastbloom",
@ -2600,9 +2600,9 @@ dependencies = [
[[package]]
name = "rustls"
version = "0.23.43"
version = "0.23.46"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0283386ce02abc0151e1761d08802dfe86c173b0b494af5cbc086574e453da06"
checksum = "48e13bd8c0e9365c43cfa5c9e8f9ad49d3c8444926c9aac819e0e4dc503c8fdf"
dependencies = [
"once_cell",
"ring",
@ -2663,9 +2663,9 @@ checksum = "f87165f0995f63a9fbeea62b64d10b4d9d8e78ec6d7d51fb2125fda7bb36788f"
[[package]]
name = "rustls-webpki"
version = "0.103.15"
version = "0.103.16"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f3c3cf1d8b1e7d4927e2d154c3fcb02979afb9939629c62cd9048d4f07b60ac2"
checksum = "4443b1b6d39d7c663139942cc4558262562d2c84123bb6282ef177009ca8b281"
dependencies = [
"ring",
"rustls-pki-types",
@ -3057,7 +3057,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "32497e9a4c7b38532efcdebeef879707aa9f794296a4f0244f6f69e9bc8574bd"
dependencies = [
"fastrand",
"getrandom 0.4.3",
"getrandom 0.3.4",
"once_cell",
"rustix",
"windows-sys 0.61.2",
@ -3515,9 +3515,9 @@ dependencies = [
[[package]]
name = "webpki-root-certs"
version = "1.0.9"
version = "1.0.10"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b96554aa2acc8ccdb7e1c9a58a7a68dd5d13bccc69cd124cb09406db612a1c9b"
checksum = "58ec80e73fd8baf57bf0d9615554c75348bda990d6d5bbeab964dd068319fecb"
dependencies = [
"rustls-pki-types",
]

View file

@ -6258,9 +6258,9 @@ checksum = "a1d01941d82fa2ab50be1e79e6714289dd7cde78eba4c074bc5a4374f650dfe0"
[[package]]
name = "quick-xml"
version = "0.36.2"
version = "0.42.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f7649a7b4df05aed9ea7ec6f628c67c9953a43869b8bc50929569b2999d443fe"
checksum = "41b1177fdf999d2321d3fb46ff47159d9c1fb9ad66a4879f8c50a0b504615e9b"
dependencies = [
"memchr",
]
@ -6287,9 +6287,9 @@ dependencies = [
[[package]]
name = "quinn-proto"
version = "0.11.17"
version = "0.11.19"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "04759210543be93709136e28212294a659ef5001836ff4eab4d663e4529bba83"
checksum = "0e750cca55fe4f0439a15d0bb529da9651e79993e8e72c61a899a36d462befbe"
dependencies = [
"aws-lc-rs",
"bytes",
@ -6843,9 +6843,9 @@ dependencies = [
[[package]]
name = "rustls"
version = "0.23.43"
version = "0.23.46"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0283386ce02abc0151e1761d08802dfe86c173b0b494af5cbc086574e453da06"
checksum = "48e13bd8c0e9365c43cfa5c9e8f9ad49d3c8444926c9aac819e0e4dc503c8fdf"
dependencies = [
"aws-lc-rs",
"log",
@ -6917,9 +6917,9 @@ checksum = "f87165f0995f63a9fbeea62b64d10b4d9d8e78ec6d7d51fb2125fda7bb36788f"
[[package]]
name = "rustls-webpki"
version = "0.103.15"
version = "0.103.16"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f3c3cf1d8b1e7d4927e2d154c3fcb02979afb9939629c62cd9048d4f07b60ac2"
checksum = "4443b1b6d39d7c663139942cc4558262562d2c84123bb6282ef177009ca8b281"
dependencies = [
"aws-lc-rs",
"ring",
@ -8265,9 +8265,9 @@ dependencies = [
[[package]]
name = "webpki-root-certs"
version = "1.0.9"
version = "1.0.10"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b96554aa2acc8ccdb7e1c9a58a7a68dd5d13bccc69cd124cb09406db612a1c9b"
checksum = "58ec80e73fd8baf57bf0d9615554c75348bda990d6d5bbeab964dd068319fecb"
dependencies = [
"rustls-pki-types",
]
@ -8278,14 +8278,14 @@ version = "0.26.11"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "521bc38abb08001b01866da9f51eb7c5d647a19260e00054a8c7fd5f9e57f7a9"
dependencies = [
"webpki-roots 1.0.9",
"webpki-roots 1.0.10",
]
[[package]]
name = "webpki-roots"
version = "1.0.9"
version = "1.0.10"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7dcd9d09a39985f5344844e66b0c530a33843579125f23e21e9f0f220850f22a"
checksum = "1c1c8e20c8a38fc7d65abfe74eb7280e4aa667e8eec8bc84996d2874810748d9"
dependencies = [
"rustls-pki-types",
]

View file

@ -1174,7 +1174,7 @@ base64 = "0.22"
# Wave-7 — close-the-gaps deps
ciborium = "0.2" # CBOR for EAT-CWT + CoRIM (IETF RATS WG canonical CBOR codec)
ed25519-dalek = "2" # Ed25519 signing — rustcrypto, widely audited
quick-xml = "0.36" # Maltego TRX XML round-trip (serde-feature)
quick-xml = "0.42" # Maltego TRX XML round-trip (serde-feature)
safetensors = "0.4" # HuggingFace SAE weight loader (Gemma Scope 2 alignment)
# DB-grade verification + error tracking primitives (wave-4 ingest)

View file

@ -43,6 +43,7 @@ use std::sync::Arc;
use quick_xml::events::Event;
use quick_xml::reader::Reader;
use quick_xml::XmlVersion;
// ─────────────────────────────────────────────────────────────────────
// OpenVINO IR dtype enum
@ -281,31 +282,31 @@ pub fn parse_openvino_xml(
match reader.read_event_into(&mut buf)? {
Event::Eof => break,
Event::Start(e) | Event::Empty(e) => {
let tag = e.name().as_ref().to_vec();
match tag.as_slice() {
b"net" => {
let tag = e.name().as_ref().to_string();
match tag.as_str() {
"net" => {
for attr in e.attributes().flatten() {
let key = attr.key.as_ref();
let val = attr.unescape_value().unwrap_or_default().to_string();
let val = attr.normalized_value(XmlVersion::Implicit1_0).unwrap_or_default().to_string();
match key {
b"name" => net_name = val,
b"version" => {
"name" => net_name = val,
"version" => {
ir_version = val.parse().unwrap_or(0);
}
_ => {}
}
}
}
b"layer" => {
"layer" => {
let mut id = 0u32;
let mut name = String::new();
let mut ty = String::new();
for attr in e.attributes().flatten() {
let val = attr.unescape_value().unwrap_or_default().to_string();
let val = attr.normalized_value(XmlVersion::Implicit1_0).unwrap_or_default().to_string();
match attr.key.as_ref() {
b"id" => { id = val.parse().unwrap_or(0); }
b"name" => { name = val; }
b"type" => { ty = val; }
"id" => { id = val.parse().unwrap_or(0); }
"name" => { name = val; }
"type" => { ty = val; }
_ => {}
}
}
@ -319,14 +320,14 @@ pub fn parse_openvino_xml(
cur_size = 0;
}
}
b"data" if in_layer_const => {
"data" if in_layer_const => {
for attr in e.attributes().flatten() {
let val = attr.unescape_value().unwrap_or_default().to_string();
let val = attr.normalized_value(XmlVersion::Implicit1_0).unwrap_or_default().to_string();
match attr.key.as_ref() {
b"element_type" => {
"element_type" => {
cur_dtype = OvDtype::parse(&val);
}
b"shape" => {
"shape" => {
cur_shape.clear();
for part in val.split(',') {
let p = part.trim();
@ -339,14 +340,14 @@ pub fn parse_openvino_xml(
}
}
}
b"offset" => {
"offset" => {
cur_offset = val.parse().map_err(|_| {
OvError::BadAttribute(
"offset", cur_name.clone(), val.clone(),
)
})?;
}
b"size" => {
"size" => {
cur_size = val.parse().map_err(|_| {
OvError::BadAttribute(
"size", cur_name.clone(), val.clone(),
@ -361,7 +362,7 @@ pub fn parse_openvino_xml(
}
}
Event::End(e)
if e.name().as_ref() == b"layer" && in_layer_const => {
if e.name().as_ref() == "layer" && in_layer_const => {
tensors.push(OvTensorInfo {
id: cur_id,
name: std::mem::take(&mut cur_name),

View file

@ -173,11 +173,14 @@ fn xml_escape(s: &str) -> String {
/// `links` is empty.
pub fn parse_response(xml: &str) -> Result<TransformResult, TrxError> {
use quick_xml::events::Event;
use quick_xml::Reader;
use quick_xml::{Reader, XmlVersion};
// Each reference (`&amp;`, `&#38;`) arrives as its own event between the
// text around it, so an element's text is gathered from both and trimmed
// once, at its end.
let mut reader = Reader::from_str(xml);
reader.config_mut().trim_text(true);
let mut buf = Vec::new();
let mut text = String::new();
let mut entities: Vec<Entity> = Vec::new();
let mut messages: Vec<UiMessage> = Vec::new();
@ -203,15 +206,16 @@ pub fn parse_response(xml: &str) -> Result<TransformResult, TrxError> {
loop {
match reader.read_event_into(&mut buf) {
Ok(Event::Start(ref e)) => {
let name = std::str::from_utf8(e.name().as_ref())
.map_err(|err| TrxError::Decode(format!("utf8: {err}")))?
.to_string();
let name = e.name().as_ref().to_string();
if matches!(name.as_str(), "Value" | "Weight" | "Field" | "UIMessage") {
text.clear();
}
match name.as_str() {
"Entity" => {
for attr in e.attributes().with_checks(false).flatten() {
if attr.key.as_ref() == b"Type" {
if attr.key.as_ref() == "Type" {
let v = attr
.unescape_value()
.normalized_value(XmlVersion::Implicit1_0)
.map_err(|err| TrxError::Decode(format!("entity attr: {err}")))?;
cur_entity_type = Some(v.into_owned());
}
@ -222,9 +226,9 @@ pub fn parse_response(xml: &str) -> Result<TransformResult, TrxError> {
"Field" => {
in_field = true;
for attr in e.attributes().with_checks(false).flatten() {
if attr.key.as_ref() == b"Name" {
if attr.key.as_ref() == "Name" {
let v = attr
.unescape_value()
.normalized_value(XmlVersion::Implicit1_0)
.map_err(|err| TrxError::Decode(format!("field attr: {err}")))?;
cur_field_name = Some(v.into_owned());
}
@ -234,9 +238,9 @@ pub fn parse_response(xml: &str) -> Result<TransformResult, TrxError> {
in_uimsg = true;
let mut kind = UiMessageKind::Inform;
for attr in e.attributes().with_checks(false).flatten() {
if attr.key.as_ref() == b"Type" {
if attr.key.as_ref() == "Type" {
let v = attr
.unescape_value()
.normalized_value(XmlVersion::Implicit1_0)
.map_err(|err| TrxError::Decode(format!("uimsg attr: {err}")))?;
kind = match v.as_ref() {
"Inform" => UiMessageKind::Inform,
@ -252,30 +256,25 @@ pub fn parse_response(xml: &str) -> Result<TransformResult, TrxError> {
_ => {}
}
}
Ok(Event::Text(t)) => {
let text = t
.unescape()
.map_err(|err| TrxError::Decode(format!("text: {err}")))?
.to_string();
if in_value {
cur_entity_value = Some(text);
} else if in_weight {
cur_entity_weight = text.parse::<f64>().ok();
} else if in_field {
cur_field_value = Some(text);
} else if in_uimsg
&& let Some(kind) = cur_uimsg_kind.take() {
messages.push(UiMessage { kind, text });
}
Ok(Event::Text(t)) if in_value || in_weight || in_field || in_uimsg => text.push_str(&t.xml10_content()),
Ok(Event::GeneralRef(r)) if in_value || in_weight || in_field || in_uimsg => {
let written = format!("&{};", r.borrow().into_inner());
let resolved = quick_xml::escape::unescape(&written).map_err(|err| TrxError::Decode(format!("text: {err}")))?;
text.push_str(&resolved);
}
Ok(Event::End(ref e)) => {
let name = std::str::from_utf8(e.name().as_ref())
.map_err(|err| TrxError::Decode(format!("utf8: {err}")))?
.to_string();
let name = e.name().as_ref().to_string();
match name.as_str() {
"Value" => in_value = false,
"Weight" => in_weight = false,
"Value" => {
in_value = false;
cur_entity_value = Some(text.trim().to_string());
}
"Weight" => {
in_weight = false;
cur_entity_weight = text.trim().parse::<f64>().ok();
}
"Field" => {
cur_field_value = Some(text.trim().to_string());
if let (Some(n), Some(v)) =
(cur_field_name.take(), cur_field_value.take())
{
@ -287,7 +286,11 @@ pub fn parse_response(xml: &str) -> Result<TransformResult, TrxError> {
}
"UIMessage" => {
in_uimsg = false;
cur_uimsg_kind = None;
if let Some(kind) = cur_uimsg_kind.take()
&& !text.trim().is_empty()
{
messages.push(UiMessage { kind, text: text.trim().to_string() });
}
}
"Entity" => {
let ty = cur_entity_type
@ -487,6 +490,19 @@ mod tests {
assert_eq!(parsed.messages[0].kind, UiMessageKind::Inform);
}
/// A reference in a value, a field or a message reads as the text it
/// stands for, the text around it kept: each arrives as its own event.
#[test]
fn references_read_as_their_text() {
let xml = r#"<MaltegoMessage><MaltegoTransformResponseMessage><Entities><Entity Type="maltego.Company"><Value>Smith &amp; Sons</Value><AdditionalFields><Field Name="note">x &lt; y</Field></AdditionalFields></Entity></Entities><UIMessages><UIMessage Type="Inform">done &#8212; 1 found</UIMessage></UIMessages></MaltegoTransformResponseMessage></MaltegoMessage>"#;
let parsed = parse_response(xml).unwrap();
assert_eq!(parsed.entities[0].value, "Smith & Sons");
assert_eq!(parsed.entities[0].properties["note"], serde_json::Value::String("x < y".into()));
assert_eq!(parsed.messages[0].text, "done \u{2014} 1 found");
// An entity the format does not declare is refused, as before.
assert!(parse_response(r#"<MaltegoMessage><MaltegoTransformResponseMessage><Entities><Entity Type="t"><Value>&nope;</Value></Entity></Entities></MaltegoTransformResponseMessage></MaltegoMessage>"#).is_err());
}
#[test]
fn entity_without_weight_round_trips_with_no_weight() {
let e = Entity::new("e1", "net.Domain", "example.com");

View file

@ -2034,9 +2034,9 @@ dependencies = [
[[package]]
name = "quinn-proto"
version = "0.11.17"
version = "0.11.19"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "04759210543be93709136e28212294a659ef5001836ff4eab4d663e4529bba83"
checksum = "0e750cca55fe4f0439a15d0bb529da9651e79993e8e72c61a899a36d462befbe"
dependencies = [
"bytes",
"getrandom 0.4.3",
@ -2281,9 +2281,9 @@ dependencies = [
[[package]]
name = "rustls"
version = "0.23.43"
version = "0.23.46"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0283386ce02abc0151e1761d08802dfe86c173b0b494af5cbc086574e453da06"
checksum = "48e13bd8c0e9365c43cfa5c9e8f9ad49d3c8444926c9aac819e0e4dc503c8fdf"
dependencies = [
"log",
"once_cell",
@ -2318,9 +2318,9 @@ dependencies = [
[[package]]
name = "rustls-webpki"
version = "0.103.15"
version = "0.103.16"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f3c3cf1d8b1e7d4927e2d154c3fcb02979afb9939629c62cd9048d4f07b60ac2"
checksum = "4443b1b6d39d7c663139942cc4558262562d2c84123bb6282ef177009ca8b281"
dependencies = [
"ring",
"rustls-pki-types",
@ -2645,7 +2645,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "32497e9a4c7b38532efcdebeef879707aa9f794296a4f0244f6f69e9bc8574bd"
dependencies = [
"fastrand",
"getrandom 0.4.3",
"getrandom 0.3.4",
"once_cell",
"rustix",
"windows-sys 0.61.2",
@ -3090,14 +3090,14 @@ version = "0.26.11"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "521bc38abb08001b01866da9f51eb7c5d647a19260e00054a8c7fd5f9e57f7a9"
dependencies = [
"webpki-roots 1.0.9",
"webpki-roots 1.0.10",
]
[[package]]
name = "webpki-roots"
version = "1.0.9"
version = "1.0.10"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7dcd9d09a39985f5344844e66b0c530a33843579125f23e21e9f0f220850f22a"
checksum = "1c1c8e20c8a38fc7d65abfe74eb7280e4aa667e8eec8bc84996d2874810748d9"
dependencies = [
"rustls-pki-types",
]

View file

@ -697,9 +697,9 @@ dependencies = [
[[package]]
name = "rustls"
version = "0.23.43"
version = "0.23.46"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0283386ce02abc0151e1761d08802dfe86c173b0b494af5cbc086574e453da06"
checksum = "48e13bd8c0e9365c43cfa5c9e8f9ad49d3c8444926c9aac819e0e4dc503c8fdf"
dependencies = [
"log",
"once_cell",
@ -721,9 +721,9 @@ dependencies = [
[[package]]
name = "rustls-webpki"
version = "0.103.15"
version = "0.103.16"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f3c3cf1d8b1e7d4927e2d154c3fcb02979afb9939629c62cd9048d4f07b60ac2"
checksum = "4443b1b6d39d7c663139942cc4558262562d2c84123bb6282ef177009ca8b281"
dependencies = [
"ring",
"rustls-pki-types",
@ -999,14 +999,14 @@ version = "0.26.11"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "521bc38abb08001b01866da9f51eb7c5d647a19260e00054a8c7fd5f9e57f7a9"
dependencies = [
"webpki-roots 1.0.9",
"webpki-roots 1.0.10",
]
[[package]]
name = "webpki-roots"
version = "1.0.9"
version = "1.0.10"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7dcd9d09a39985f5344844e66b0c530a33843579125f23e21e9f0f220850f22a"
checksum = "1c1c8e20c8a38fc7d65abfe74eb7280e4aa667e8eec8bc84996d2874810748d9"
dependencies = [
"rustls-pki-types",
]

View file

@ -853,9 +853,9 @@ dependencies = [
[[package]]
name = "quick-xml"
version = "0.36.2"
version = "0.42.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f7649a7b4df05aed9ea7ec6f628c67c9953a43869b8bc50929569b2999d443fe"
checksum = "41b1177fdf999d2321d3fb46ff47159d9c1fb9ad66a4879f8c50a0b504615e9b"
dependencies = [
"memchr",
]

89
openpay/Cargo.lock generated
View file

@ -3538,9 +3538,6 @@ name = "lazy_static"
version = "1.5.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "bbd2bcb4c963f2ddae06a2efc7e9f3591312473c50c6685e1f298068316e66fe"
dependencies = [
"spin 0.9.9",
]
[[package]]
name = "levenshtein"
@ -3911,22 +3908,6 @@ dependencies = [
"num-traits",
]
[[package]]
name = "num-bigint-dig"
version = "0.8.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e661dda6640fad38e827a6d4a310ff4763082116fe217f279885c97f511bb0b7"
dependencies = [
"lazy_static",
"libm",
"num-integer",
"num-iter",
"num-traits",
"rand 0.8.8",
"smallvec",
"zeroize",
]
[[package]]
name = "num-complex"
version = "0.4.6"
@ -4060,9 +4041,8 @@ dependencies = [
"chrono",
"op-core",
"p256",
"quick-xml 0.36.2",
"quick-xml 0.42.0",
"reqwest 0.13.4",
"rsa",
"serde",
"serde_json",
"sha2 0.11.0",
@ -4080,7 +4060,7 @@ dependencies = [
"chrono",
"op-core",
"op-iso20022",
"quick-xml 0.36.2",
"quick-xml 0.42.0",
"serde",
"serde_json",
"thiserror 2.0.20",
@ -4344,7 +4324,7 @@ dependencies = [
"open-payments-iso20022-pacs",
"open-payments-iso20022-pain",
"proptest",
"quick-xml 0.36.2",
"quick-xml 0.42.0",
"serde",
"serde_json",
"thiserror 2.0.20",
@ -4576,7 +4556,7 @@ dependencies = [
"ed25519-dalek",
"op-core",
"proptest",
"quick-xml 0.36.2",
"quick-xml 0.42.0",
"rand_core 0.6.4",
"reqwest 0.13.4",
"serde",
@ -5140,17 +5120,6 @@ dependencies = [
"futures-io",
]
[[package]]
name = "pkcs1"
version = "0.7.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c8ffb9f10fa047879315e6625af03c164b16962a5368d724ed16323b68ace47f"
dependencies = [
"der",
"pkcs8",
"spki",
]
[[package]]
name = "pkcs8"
version = "0.10.2"
@ -5399,9 +5368,9 @@ checksum = "a1d01941d82fa2ab50be1e79e6714289dd7cde78eba4c074bc5a4374f650dfe0"
[[package]]
name = "quick-xml"
version = "0.36.2"
version = "0.37.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f7649a7b4df05aed9ea7ec6f628c67c9953a43869b8bc50929569b2999d443fe"
checksum = "331e97a1af0bf59823e6eadffe373d7b27f485be8748f71471c662c1f269b7fb"
dependencies = [
"memchr",
"serde",
@ -5409,9 +5378,9 @@ dependencies = [
[[package]]
name = "quick-xml"
version = "0.37.5"
version = "0.42.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "331e97a1af0bf59823e6eadffe373d7b27f485be8748f71471c662c1f269b7fb"
checksum = "41b1177fdf999d2321d3fb46ff47159d9c1fb9ad66a4879f8c50a0b504615e9b"
dependencies = [
"memchr",
"serde",
@ -5439,9 +5408,9 @@ dependencies = [
[[package]]
name = "quinn-proto"
version = "0.11.17"
version = "0.11.19"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "04759210543be93709136e28212294a659ef5001836ff4eab4d663e4529bba83"
checksum = "0e750cca55fe4f0439a15d0bb529da9651e79993e8e72c61a899a36d462befbe"
dependencies = [
"aws-lc-rs",
"bytes",
@ -5893,26 +5862,6 @@ dependencies = [
"serde",
]
[[package]]
name = "rsa"
version = "0.9.10"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b8573f03f5883dcaebdfcf4725caa1ecb9c15b2ef50c43a07b816e06799bb12d"
dependencies = [
"const-oid 0.9.6",
"digest 0.10.7",
"num-bigint-dig",
"num-integer",
"num-traits",
"pkcs1",
"pkcs8",
"rand_core 0.6.4",
"signature",
"spki",
"subtle",
"zeroize",
]
[[package]]
name = "rust_decimal"
version = "1.42.1"
@ -5981,9 +5930,9 @@ dependencies = [
[[package]]
name = "rustls"
version = "0.23.43"
version = "0.23.46"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0283386ce02abc0151e1761d08802dfe86c173b0b494af5cbc086574e453da06"
checksum = "48e13bd8c0e9365c43cfa5c9e8f9ad49d3c8444926c9aac819e0e4dc503c8fdf"
dependencies = [
"aws-lc-rs",
"log",
@ -6046,9 +5995,9 @@ checksum = "f87165f0995f63a9fbeea62b64d10b4d9d8e78ec6d7d51fb2125fda7bb36788f"
[[package]]
name = "rustls-webpki"
version = "0.103.15"
version = "0.103.16"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f3c3cf1d8b1e7d4927e2d154c3fcb02979afb9939629c62cd9048d4f07b60ac2"
checksum = "4443b1b6d39d7c663139942cc4558262562d2c84123bb6282ef177009ca8b281"
dependencies = [
"aws-lc-rs",
"ring",
@ -7421,9 +7370,9 @@ dependencies = [
[[package]]
name = "webpki-root-certs"
version = "1.0.9"
version = "1.0.10"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b96554aa2acc8ccdb7e1c9a58a7a68dd5d13bccc69cd124cb09406db612a1c9b"
checksum = "58ec80e73fd8baf57bf0d9615554c75348bda990d6d5bbeab964dd068319fecb"
dependencies = [
"rustls-pki-types",
]
@ -7434,14 +7383,14 @@ version = "0.26.11"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "521bc38abb08001b01866da9f51eb7c5d647a19260e00054a8c7fd5f9e57f7a9"
dependencies = [
"webpki-roots 1.0.9",
"webpki-roots 1.0.10",
]
[[package]]
name = "webpki-roots"
version = "1.0.9"
version = "1.0.10"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7dcd9d09a39985f5344844e66b0c530a33843579125f23e21e9f0f220850f22a"
checksum = "1c1c8e20c8a38fc7d65abfe74eb7280e4aa667e8eec8bc84996d2874810748d9"
dependencies = [
"rustls-pki-types",
]

View file

@ -76,7 +76,7 @@ open-payments-iso20022 = { version = "=1.0.10", features = ["payments"] }
open-payments-fednow = "=1.0.9"
# XML codec — quick-xml is the de-facto choice; we use it for round-trip
# validation against XSD-canonical sample files.
quick-xml = { version = "0.36", features = ["serialize"] }
quick-xml = { version = "0.42", features = ["serialize"] }
# ML / inference
burn = { version = "0.18", default-features = false }

View file

@ -40,10 +40,8 @@ sha2 = "0.11"
# cipher 0.4 generation the rest of the workspace uses (aes 0.8 / cbc 0.1),
# so the build keeps a single aes + cipher in the graph.
# RSA for legacy issuer ACS public keys, P-256 for the modern
# ECDH-based session key establishment used by the SDK device-binding
# flow.
rsa = "0.9"
# P-256 for the ECDH-based session key establishment used by the SDK
# device-binding flow.
p256 = { version = "0.13", features = ["ecdh", "ecdsa"] }
# X.509 parsing for DS / ACS certificate chain validation. Each card

View file

@ -13,8 +13,8 @@ use std::future::Future;
use std::pin::Pin;
use chrono::{DateTime, NaiveDate, Utc};
use quick_xml::Reader;
use quick_xml::events::Event;
use quick_xml::{Reader, XmlVersion};
use quick_xml::events::{BytesRef, Event};
use serde::Deserialize;
use crate::error::{Error, Result};
@ -22,6 +22,16 @@ use crate::lists::{
CountryCode, EntityType, Identification, IdentificationKind, SanctionedEntity, WatchList,
};
/// The text an entity or character reference in a list stands for (`&amp;`,
/// `&#38;`). The reader reports each reference as its own event, between the
/// text around it, so the parsers join the pieces and trim the whole field
/// once; trimming each piece would drop the spaces in `A &amp; B`. A reference
/// to an entity the lists do not declare is kept as written.
fn reference_text(r: &BytesRef<'_>) -> String {
let written = format!("&{};", r.borrow().into_inner());
quick_xml::escape::unescape(&written).map(|t| t.into_owned()).unwrap_or(written)
}
/// Boxed future the trait yields. Async fn in traits is stable in
/// edition 2024, but boxing keeps the trait object-safe.
type BoxFuture<'a, T> = Pin<Box<dyn Future<Output = T> + Send + 'a>>;
@ -95,7 +105,6 @@ impl OfacUpdater {
/// ```
pub fn parse_sdn_xml(xml: &str) -> Result<Vec<SanctionedEntity>> {
let mut reader = Reader::from_str(xml);
reader.config_mut().trim_text(true);
let mut entities = Vec::new();
let mut buf = Vec::new();
@ -107,7 +116,7 @@ impl OfacUpdater {
buf.clear();
match reader.read_event_into(&mut buf) {
Ok(Event::Start(e)) => {
let name = String::from_utf8_lossy(e.name().as_ref()).to_string();
let name = e.name().as_ref().to_string();
if name == "sdnEntry" {
current = Some(OfacEntryBuilder::default());
} else if name == "aka" && current.is_some() {
@ -115,11 +124,10 @@ impl OfacUpdater {
}
text_buf.clear();
}
Ok(Event::Text(e)) => {
text_buf.push_str(&e.unescape().unwrap_or_default());
}
Ok(Event::Text(e)) => text_buf.push_str(&e.xml10_content()),
Ok(Event::GeneralRef(r)) => text_buf.push_str(&reference_text(&r)),
Ok(Event::End(e)) => {
let name = String::from_utf8_lossy(e.name().as_ref()).to_string();
let name = e.name().as_ref().to_string();
if let Some(builder) = current.as_mut() {
match name.as_str() {
"uid" => builder.uid = Some(text_buf.trim().to_string()),
@ -291,7 +299,6 @@ impl EuUpdater {
/// distinguish persons from entities.
pub fn parse_eu_xml(xml: &str) -> Result<Vec<SanctionedEntity>> {
let mut reader = Reader::from_str(xml);
reader.config_mut().trim_text(true);
let mut entities = Vec::new();
let mut buf = Vec::new();
@ -306,13 +313,13 @@ impl EuUpdater {
let evt = reader.read_event_into(&mut buf);
match evt {
Ok(Event::Start(ref e)) | Ok(Event::Empty(ref e)) => {
let name = String::from_utf8_lossy(e.name().as_ref()).to_string();
let name = e.name().as_ref().to_string();
if name == "sanctionEntity" {
let id = e
.attributes()
.filter_map(std::result::Result::ok)
.find(|a| a.key.as_ref() == b"logicalId")
.and_then(|a| String::from_utf8(a.value.into_owned()).ok())
.find(|a| a.key.as_ref() == "logicalId")
.and_then(|a| a.normalized_value(XmlVersion::Implicit1_0).ok().map(|v| v.into_owned()))
.unwrap_or_default();
current = Some(EuEntryBuilder {
id,
@ -323,8 +330,8 @@ impl EuUpdater {
let whole = e
.attributes()
.filter_map(std::result::Result::ok)
.find(|a| a.key.as_ref() == b"wholeName")
.and_then(|a| String::from_utf8(a.value.into_owned()).ok())
.find(|a| a.key.as_ref() == "wholeName")
.and_then(|a| a.normalized_value(XmlVersion::Implicit1_0).ok().map(|v| v.into_owned()))
.unwrap_or_default();
if !whole.is_empty() {
if builder.name.is_empty() {
@ -339,8 +346,8 @@ impl EuUpdater {
let val = e
.attributes()
.filter_map(std::result::Result::ok)
.find(|a| a.key.as_ref() == b"code")
.and_then(|a| String::from_utf8(a.value.into_owned()).ok())
.find(|a| a.key.as_ref() == "code")
.and_then(|a| a.normalized_value(XmlVersion::Implicit1_0).ok().map(|v| v.into_owned()))
.unwrap_or_default();
builder.subject_type = val;
}
@ -348,7 +355,7 @@ impl EuUpdater {
let _ = name;
}
Ok(Event::End(e)) => {
let name = String::from_utf8_lossy(e.name().as_ref()).to_string();
let name = e.name().as_ref().to_string();
if name == "sanctionEntity" {
if let Some(b) = current.take() {
if let Some(ent) = b.finish() {
@ -475,7 +482,6 @@ impl UnUpdater {
/// ```
pub fn parse_un_xml(xml: &str) -> Result<Vec<SanctionedEntity>> {
let mut reader = Reader::from_str(xml);
reader.config_mut().trim_text(true);
let mut entities = Vec::new();
let mut buf = Vec::new();
@ -488,7 +494,7 @@ impl UnUpdater {
buf.clear();
match reader.read_event_into(&mut buf) {
Ok(Event::Start(e)) => {
let name = String::from_utf8_lossy(e.name().as_ref()).to_string();
let name = e.name().as_ref().to_string();
match name.as_str() {
"INDIVIDUAL" => {
entity_kind = Some(EntityType::Individual);
@ -502,11 +508,10 @@ impl UnUpdater {
}
text_buf.clear();
}
Ok(Event::Text(e)) => {
text_buf.push_str(&e.unescape().unwrap_or_default());
}
Ok(Event::Text(e)) => text_buf.push_str(&e.xml10_content()),
Ok(Event::GeneralRef(r)) => text_buf.push_str(&reference_text(&r)),
Ok(Event::End(e)) => {
let name = String::from_utf8_lossy(e.name().as_ref()).to_string();
let name = e.name().as_ref().to_string();
if let Some(b) = current.as_mut() {
match name.as_str() {
"DATAID" => b.id = text_buf.trim().to_string(),
@ -837,6 +842,31 @@ mod tests {
assert_eq!(parsed[0].entity_type, EntityType::Individual);
}
/// A name holding a reference reads as the text it stands for, its
/// spaces kept, in every list format: element text (SDN, UN) and
/// attribute values (EU), predefined entities and character references.
#[test]
fn names_with_references_read_as_their_text() {
let sdn = OfacUpdater::parse_sdn_xml(
"<sdnList><sdnEntry><uid>1</uid><lastName>Smith &amp; Sons &#8212; Ltd</lastName>\
<sdnType>Entity</sdnType></sdnEntry></sdnList>",
)
.expect("parse");
assert_eq!(sdn[0].name, "Smith & Sons \u{2014} Ltd");
let un = UnUpdater::parse_un_xml(
"<CONSOLIDATED_LIST><ENTITIES><ENTITY><DATAID>2</DATAID>\
<FIRST_NAME>A &lt;B&gt; &quot;C&quot;</FIRST_NAME></ENTITY></ENTITIES></CONSOLIDATED_LIST>",
)
.expect("parse");
assert_eq!(un[0].name, "A <B> \"C\"");
let eu = EuUpdater::parse_eu_xml(
r#"<sanctionsList><sanctionEntity logicalId="3"><subjectType code="E"/>
<nameAlias wholeName="Smith &amp; Sons"/></sanctionEntity></sanctionsList>"#,
)
.expect("parse");
assert_eq!(eu[0].name, "Smith & Sons");
}
#[test]
fn parse_minimal_hmt() {
let json = r#"{

View file

@ -49,7 +49,7 @@ checksum = "82f6aeea286b8eb4dd3431a1be1b59d290ace00f5bfd8e2a159bc2a05e2c1667"
dependencies = [
"proc-macro2",
"quote",
"syn 3.0.4",
"syn 3.0.9",
]
[[package]]
@ -82,15 +82,6 @@ version = "2.13.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b588b76d00fde79687d7646a9b5bdf3cc0f655e0bbd080335a95d7e96f3587da"
[[package]]
name = "bitmaps"
version = "2.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "031043d04099746d8db04daf1fa424b2bc8bd69d92b25962dcde24da39ab64a2"
dependencies = [
"typenum",
]
[[package]]
name = "blake3"
version = "1.8.7"
@ -199,9 +190,9 @@ checksum = "3d52eff69cd5e647efe296129160853a42795992097e8af39800e1060caeea9b"
[[package]]
name = "cpp_demangle"
version = "0.4.5"
version = "0.5.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f2bb79cb74d735044c972aae58ed0aaa9a837e85b01106a54c39e42e97f62253"
checksum = "0667304c32ea56cb4cd6d2d7c0cfe9a2f8041229db8c033af7f8d69492429def"
dependencies = [
"cfg-if",
]
@ -226,27 +217,27 @@ dependencies = [
[[package]]
name = "cranelift-assembler-x64"
version = "0.130.2"
version = "0.137.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "adc822414b18d1f5b1b33ce1441534e311e62fef86ebb5b9d382af857d0272c9"
checksum = "d3307701abcb90554ee72fdb0db36ee0334a4abe380c4d87a5b04a6942613c3a"
dependencies = [
"cranelift-assembler-x64-meta",
]
[[package]]
name = "cranelift-assembler-x64-meta"
version = "0.130.2"
version = "0.137.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8c646808b06f4532478d8d6057d74f15c3322f10d995d9486e7dcea405bf521a"
checksum = "e62d0e19f9f5fa0c4243236df1ffdf139d207600b4402ac41ceba8dbe7ca0f3d"
dependencies = [
"cranelift-srcgen",
]
[[package]]
name = "cranelift-bforest"
version = "0.130.2"
version = "0.137.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7b5996f01a686b2349cdb379083ec5ad3e8cb8767fb2d495d3a4f2ee4163a18d"
checksum = "47784bc3c4b57c0182bb8ff04aae5d5f5fc6bae8ba26b1212c9a659b90dab84e"
dependencies = [
"cranelift-entity",
"wasmtime-internal-core",
@ -254,9 +245,9 @@ dependencies = [
[[package]]
name = "cranelift-bitset"
version = "0.130.2"
version = "0.137.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "523fea83273f6a985520f57788809a4de2165794d9ab00fb1254fceb4f5aa00c"
checksum = "e13d120406f713dbce1940751e77bbb14daad1261379b7200c19285953e79a1d"
dependencies = [
"serde",
"serde_derive",
@ -265,9 +256,9 @@ dependencies = [
[[package]]
name = "cranelift-codegen"
version = "0.130.2"
version = "0.137.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d73d1e372730b5f64ed1a2bd9f01fe4686c8ec14a28034e3084e530c8d951878"
checksum = "a53dbec33ff86909e44be6f0ec2d17841aa38b931013707c9fc7279f1f0e5760"
dependencies = [
"bumpalo",
"cranelift-assembler-x64",
@ -279,13 +270,16 @@ dependencies = [
"cranelift-entity",
"cranelift-isle",
"gimli",
"hashbrown 0.16.1",
"hashbrown 0.17.1",
"libm",
"log",
"postcard",
"pulley-interpreter",
"regalloc2",
"rustc-hash",
"serde",
"serde_derive",
"sha2",
"smallvec",
"target-lexicon",
"wasmtime-internal-core",
@ -293,9 +287,9 @@ dependencies = [
[[package]]
name = "cranelift-codegen-meta"
version = "0.130.2"
version = "0.137.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b0319c18165e93dc1ebf78946a8da0b1c341c95b4a39729a69574671639bdb5f"
checksum = "42295b38e9182954cb32a71812e3d64d66a90efc0a2ababb73e465ad4a1efccf"
dependencies = [
"cranelift-assembler-x64-meta",
"cranelift-codegen-shared",
@ -306,24 +300,24 @@ dependencies = [
[[package]]
name = "cranelift-codegen-shared"
version = "0.130.2"
version = "0.137.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "9195cd8aeecb55e401aa96b2eaa55921636e8246c127ed7908f7ef7e0d40f270"
checksum = "b5200fa877fb64cd30cabe0603f394333f88f69adf63e4db8d48a111d0c9d0dd"
[[package]]
name = "cranelift-control"
version = "0.130.2"
version = "0.137.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8976c2154b74136322befc74222ab5c7249edd7e2604f8cbef2b94975541ffb9"
checksum = "b86250e480795fbb4425ea703bca7b75282998458ce74f5360843a31949f2bbc"
dependencies = [
"arbitrary",
]
[[package]]
name = "cranelift-entity"
version = "0.130.2"
version = "0.137.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "6038b3147c7982f4951150d5f96c7c06c1e7214b99d4b4a98607aadf8ded89d1"
checksum = "903c6592c7d600c251d20929f143543b7303ac70b072ad3394d65b29caf56f69"
dependencies = [
"cranelift-bitset",
"serde",
@ -333,11 +327,12 @@ dependencies = [
[[package]]
name = "cranelift-frontend"
version = "0.130.2"
version = "0.137.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "4cbd294abe236e23cc3d907b0936226b6a8342db7636daa9c7c72be1e323420e"
checksum = "b929f09b82a270e2aae062945cf86cd9db39c59ad9bead6986ea6b09fcf8a969"
dependencies = [
"cranelift-codegen",
"hashbrown 0.17.1",
"log",
"smallvec",
"target-lexicon",
@ -345,26 +340,27 @@ dependencies = [
[[package]]
name = "cranelift-isle"
version = "0.130.2"
version = "0.137.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b5a90b6ed3aba84189352a87badeb93b2126d3724225a42dc67fdce53d1b139c"
checksum = "b1c5809e8636a37e5a25ecc35242d33d6e7391c49b67488b83446e2898af2a2f"
[[package]]
name = "cranelift-native"
version = "0.130.2"
version = "0.137.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c3ec0cc1a54e22925eacf4fc3dc815f907734d3b377899d19d52bec04863e853"
checksum = "815c559daf605a5b4ea35530604643c1e87504353c0d1a14763f9c2b9d518493"
dependencies = [
"cranelift-codegen",
"libc",
"mach2",
"target-lexicon",
]
[[package]]
name = "cranelift-srcgen"
version = "0.130.2"
version = "0.137.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "948865622f87f30907bb46fbb081b235ae63c1896a99a83c26a003305c1fa82d"
checksum = "d633ff621e7f31a943431da0d7dd37c4376766c60bd7171216de1c7ccabfb370"
[[package]]
name = "crc32fast"
@ -529,7 +525,7 @@ checksum = "c6232dd377dcc64799954cbd3a9bb882e9cdc1308ccd87b1c098f1fb2eaf82a8"
dependencies = [
"proc-macro2",
"quote",
"syn 3.0.4",
"syn 3.0.9",
]
[[package]]
@ -854,17 +850,17 @@ name = "hashbrown"
version = "0.16.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "841d1cc9bed7f9236f321df977030373f4a4163ae1a7dbfe1a51a2c1a51d9100"
dependencies = [
"foldhash",
"serde",
"serde_core",
]
[[package]]
name = "hashbrown"
version = "0.17.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ed5909b6e89a2db4456e54cd5f673791d7eca6732202bbf2a9cc504fe2f9b84a"
dependencies = [
"foldhash",
"serde",
"serde_core",
]
[[package]]
name = "heck"
@ -997,20 +993,6 @@ dependencies = [
"icu_properties",
]
[[package]]
name = "im-rc"
version = "15.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "af1955a75fa080c677d3972822ec4bad316169ab1cfc6c257a942c2265dbe5fe"
dependencies = [
"bitmaps",
"rand_core",
"rand_xoshiro",
"sized-chunks",
"typenum",
"version_check",
]
[[package]]
name = "indexmap"
version = "2.14.0"
@ -1202,12 +1184,9 @@ checksum = "f9f8bd3e56ce4dfc153cf470fffbfa98c7620958b312ca5c3a4b8d5181fd13c6"
[[package]]
name = "mach2"
version = "0.4.3"
version = "0.6.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d640282b302c0bb0a2a8e0233ead9035e3bed871f0b7e81fe4a1ec829765db44"
dependencies = [
"libc",
]
checksum = "dae608c151f68243f2b000364e1f7b186d9c29845f7d2d85bd31b9ad77ad552b"
[[package]]
name = "memchr"
@ -1281,12 +1260,12 @@ dependencies = [
[[package]]
name = "object"
version = "0.38.1"
version = "0.40.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "271638cd5fa9cca89c4c304675ca658efc4e64a66c716b7cfe1afb4b9611dbbc"
checksum = "dd229a0361b9d0d4396176e02d65897f487eebeab7caa6d443855ee152ca0b9c"
dependencies = [
"crc32fast",
"hashbrown 0.16.1",
"hashbrown 0.17.1",
"indexmap",
"memchr",
]
@ -1429,9 +1408,9 @@ dependencies = [
[[package]]
name = "pulley-interpreter"
version = "43.0.2"
version = "50.0.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7ec12fe19a9588315a49fe5704502a9c02d6a198303314b0c7c86123b06d29e5"
checksum = "6af498fa3ca312fe5a07178757781059b75a331f24d53aeb3706e51ad73317bd"
dependencies = [
"cranelift-bitset",
"log",
@ -1441,13 +1420,13 @@ dependencies = [
[[package]]
name = "pulley-macros"
version = "43.0.2"
version = "50.0.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "36f7d5ef31ebf1b46cd7e722ffef934e670d7e462f49aa01cde07b9b76dca580"
checksum = "f0ba9959a3a286b7a2fb16466b7d1a804a117f81a98b7ac6d86cabd5ba037f3d"
dependencies = [
"proc-macro2",
"quote",
"syn 2.0.119",
"syn 3.0.9",
]
[[package]]
@ -1495,15 +1474,6 @@ dependencies = [
"getrandom 0.2.17",
]
[[package]]
name = "rand_xoshiro"
version = "0.6.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "6f97cdb2a36ed4183de61b2f824cc45c9f1037f28afe0a322e9fff4c108b5aaa"
dependencies = [
"rand_core",
]
[[package]]
name = "rayon"
version = "1.12.0"
@ -1546,6 +1516,7 @@ dependencies = [
"hashbrown 0.17.1",
"log",
"rustc-hash",
"serde",
"smallvec",
]
@ -1630,9 +1601,9 @@ dependencies = [
[[package]]
name = "rustls"
version = "0.23.43"
version = "0.23.46"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0283386ce02abc0151e1761d08802dfe86c173b0b494af5cbc086574e453da06"
checksum = "48e13bd8c0e9365c43cfa5c9e8f9ad49d3c8444926c9aac819e0e4dc503c8fdf"
dependencies = [
"log",
"once_cell",
@ -1654,9 +1625,9 @@ dependencies = [
[[package]]
name = "rustls-webpki"
version = "0.103.15"
version = "0.103.16"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f3c3cf1d8b1e7d4927e2d154c3fcb02979afb9939629c62cd9048d4f07b60ac2"
checksum = "4443b1b6d39d7c663139942cc4558262562d2c84123bb6282ef177009ca8b281"
dependencies = [
"ring",
"rustls-pki-types",
@ -1669,12 +1640,6 @@ version = "1.0.23"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "cf54715a573b99ac80df0bc206da022bcd442c974952c7b9720069370852e21f"
[[package]]
name = "ryu"
version = "1.0.23"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "9774ba4a74de5f7b1c1451ed6cd5285a32eddb5cccb8cc655a4e50009e06477f"
[[package]]
name = "sandbox-attest"
version = "0.1.0"
@ -1976,7 +1941,7 @@ checksum = "e7a5d71263a5a7d47b41f6b3f06ba276f10cc18b0931f1799f710578e2309348"
dependencies = [
"proc-macro2",
"quote",
"syn 3.0.4",
"syn 3.0.9",
]
[[package]]
@ -1994,26 +1959,13 @@ dependencies = [
[[package]]
name = "serde_spanned"
version = "1.1.1"
version = "1.1.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "6662b5879511e06e8999a8a235d848113e942c9124f211511b16466ee2995f26"
checksum = "4e7523beb55eece201a2356bee0bbca0d1ab466c14c07703b2e0ee6d42cb0c2c"
dependencies = [
"serde_core",
]
[[package]]
name = "serde_yaml"
version = "0.9.34+deprecated"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "6a8b1a1a2ebf674015cc02edccce75287f1a0130d394307b36743c2f5d504b47"
dependencies = [
"indexmap",
"itoa",
"ryu",
"serde",
"unsafe-libyaml",
]
[[package]]
name = "sha1"
version = "0.10.7"
@ -2058,16 +2010,6 @@ version = "0.3.10"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "3a219298ac11a56ea9a6d2120044824d6f01aeb034955e7af7bc16858527deea"
[[package]]
name = "sized-chunks"
version = "0.6.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "16d69225bde7a69b235da73377861095455d298f2b970996eec25ddbb42b3d1e"
dependencies = [
"bitmaps",
"typenum",
]
[[package]]
name = "slab"
version = "0.4.12"
@ -2124,9 +2066,9 @@ dependencies = [
[[package]]
name = "syn"
version = "3.0.4"
version = "3.0.9"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e6275cddf4610d1775e6d1fe9469b2e77d0f39fd98fb7450901b821e0c53649f"
checksum = "d78c8dee4c7bf0e14673097256fed6142ce9d3b85a408189d07482442145823b"
dependencies = [
"proc-macro2",
"quote",
@ -2209,7 +2151,7 @@ checksum = "bc04cd3e1236dd4a98afca4569f2deb3f120e5422a4023be2cb683f8486292af"
dependencies = [
"proc-macro2",
"quote",
"syn 3.0.4",
"syn 3.0.9",
]
[[package]]
@ -2260,9 +2202,9 @@ dependencies = [
[[package]]
name = "toml"
version = "0.9.12+spec-1.1.0"
version = "1.1.8+spec-1.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "cf92845e79fc2e2def6a5d828f0801e29a2f8acc037becc5ab08595c7d5e9863"
checksum = "20489e00e4d8741d6be680764cc12e270655e375a20d1011e844a9c3379e678d"
dependencies = [
"indexmap",
"serde_core",
@ -2270,32 +2212,32 @@ dependencies = [
"toml_datetime",
"toml_parser",
"toml_writer",
"winnow 0.7.15",
"winnow",
]
[[package]]
name = "toml_datetime"
version = "0.7.5+spec-1.1.0"
version = "1.1.2+spec-1.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "92e1cfed4a3038bc5a127e35a2d360f145e1f4b971b551a2ba5fd7aedf7e1347"
checksum = "2b86d767906c6c42421dcba507eb9d203e779497710a47782a224bb871653053"
dependencies = [
"serde_core",
]
[[package]]
name = "toml_parser"
version = "1.1.3+spec-1.1.0"
version = "1.1.5+spec-1.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1d38ac1cf9b95face32296c0a3ede1fdc270627c9d9c02a7274dd6d960dc4d56"
checksum = "baa693a8032d7e1cada7d0041e96126df243179ff061456783ac7f12bda4744c"
dependencies = [
"winnow 1.0.4",
"winnow",
]
[[package]]
name = "toml_writer"
version = "1.1.2+spec-1.1.0"
version = "1.1.3+spec-1.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7d56353a2a665ad0f41a421187180aab746c8c325620617ad883a99a1cbe66d2"
checksum = "06bdbd8cfc056b8d2e2e85f29b56a3bdbecb527cef81eb39e3e7b98af4652770"
[[package]]
name = "typenum"
@ -2315,18 +2257,6 @@ version = "0.2.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b4ac048d71ede7ee76d585517add45da530660ef4390e49b098733c6e897f254"
[[package]]
name = "unicode-xid"
version = "0.2.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ebc1c04c71510c7f702b52b7c350734c9ff1295c464a03335b00bb84fc54f853"
[[package]]
name = "unsafe-libyaml"
version = "0.2.11"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "673aac59facbab8a9007c7f6108d11f63b603f7cabff99fabf650fea5c32b861"
[[package]]
name = "untrusted"
version = "0.9.0"
@ -2438,53 +2368,60 @@ dependencies = [
[[package]]
name = "wasm-compose"
version = "0.245.1"
version = "0.261.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5fd23d12cc95c451c1306db5bc63075fbebb612bb70c53b4237b1ce5bc178343"
checksum = "df7deb87d659b1df555d3195e3df56d1f03b73d165c5a1bc3a0bad24274ea147"
dependencies = [
"anyhow",
"heck",
"im-rc",
"indexmap",
"log",
"petgraph",
"serde",
"serde_derive",
"serde_yaml",
"smallvec",
"wasm-encoder 0.245.1",
"wasmparser 0.245.1",
"wasm-encoder 0.261.0",
"wasmparser 0.261.0",
"wat",
]
[[package]]
name = "wasm-encoder"
version = "0.245.1"
version = "0.261.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "3f9dca005e69bf015e45577e415b9af8c67e8ee3c0e38b5b0add5aa92581ed5c"
checksum = "2608e8bb6d67fd68f5a8d0eb1363d6e7bcbc1f8ded5a0bd3a1e382462b876b22"
dependencies = [
"leb128fmt",
"wasmparser 0.245.1",
"wasmparser 0.261.0",
]
[[package]]
name = "wasm-encoder"
version = "0.258.0"
version = "0.262.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e974fe6821a8cf64575d51ea2194e2c8f77e7b66e9afe7419ce8a97f9ee0d251"
checksum = "4495a6f85dd94c411c749303efcbc5defade0b0cbdbc0541495241ab917a9b5a"
dependencies = [
"leb128fmt",
"wasmparser 0.258.0",
"wasmparser 0.262.0",
]
[[package]]
name = "wasm-metadata"
version = "0.261.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b88de21560ecd49deb8d8f1616b9b695f66fc312c5eca503f43accdc5795339e"
dependencies = [
"anyhow",
"indexmap",
"wasm-encoder 0.261.0",
"wasmparser 0.261.0",
]
[[package]]
name = "wasmparser"
version = "0.245.1"
version = "0.261.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "4f08c9adee0428b7bddf3890fc27e015ac4b761cc608c822667102b8bfd6995e"
checksum = "4f20f20e44f7e8aeb6744823ea9d869ede51e51be4fdaedede2852282e54d2d8"
dependencies = [
"bitflags",
"hashbrown 0.16.1",
"hashbrown 0.17.1",
"indexmap",
"semver",
"serde",
@ -2492,9 +2429,9 @@ dependencies = [
[[package]]
name = "wasmparser"
version = "0.258.0"
version = "0.262.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d9a61719f93a87b16d325921e251800c4833f8fab50fa21c7de73aed50086313"
checksum = "974d643b125b272607e2fff8012ea14a8328acd7621e4bafa7afb32500052b1b"
dependencies = [
"bitflags",
"indexmap",
@ -2503,27 +2440,26 @@ dependencies = [
[[package]]
name = "wasmprinter"
version = "0.245.1"
version = "0.261.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5f41517a3716fbb8ccf46daa9c1325f760fcbff5168e75c7392288e410b91ac8"
checksum = "86a21c9e3325655ba02de3e645bc8357a8b3651a2e3ada25b6dbc37560deb9b7"
dependencies = [
"anyhow",
"termcolor",
"wasmparser 0.245.1",
"wasmparser 0.261.0",
]
[[package]]
name = "wasmtime"
version = "43.0.2"
version = "50.0.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "efb1ed5899dde98357cfdcf647a4614498798719793898245b4b34e663addabf"
checksum = "2d93539aae382faee7b19650fd966f1f8185599b9cc4adc0a5a8b8f768c11ba9"
dependencies = [
"addr2line",
"async-trait",
"bitflags",
"bumpalo",
"cc",
"cfg-if",
"encoding_rs",
"futures",
"fxprof-processed-profile",
@ -2547,8 +2483,8 @@ dependencies = [
"target-lexicon",
"tempfile",
"wasm-compose",
"wasm-encoder 0.245.1",
"wasmparser 0.245.1",
"wasm-encoder 0.261.0",
"wasmparser 0.261.0",
"wasmtime-environ",
"wasmtime-internal-cache",
"wasmtime-internal-component-macro",
@ -2560,16 +2496,16 @@ dependencies = [
"wasmtime-internal-jit-icache-coherence",
"wasmtime-internal-unwinder",
"wasmtime-internal-versioned-export-macros",
"wasmtime-internal-winch",
"wat",
"windows-sys 0.61.2",
"wit-parser",
]
[[package]]
name = "wasmtime-environ"
version = "43.0.2"
version = "50.0.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "4172382dcc785c31d0e862c6780a18f5dd437914d22c4691351f965ef751c821"
checksum = "34fd44c205ef29cc3c254253dceb916be586887602e0e380361ed022776cfc10"
dependencies = [
"anyhow",
"cpp_demangle",
@ -2577,7 +2513,7 @@ dependencies = [
"cranelift-bitset",
"cranelift-entity",
"gimli",
"hashbrown 0.16.1",
"hashbrown 0.17.1",
"indexmap",
"log",
"object",
@ -2586,11 +2522,10 @@ dependencies = [
"semver",
"serde",
"serde_derive",
"sha2",
"smallvec",
"target-lexicon",
"wasm-encoder 0.245.1",
"wasmparser 0.245.1",
"wasm-encoder 0.261.0",
"wasmparser 0.261.0",
"wasmprinter",
"wasmtime-internal-component-util",
"wasmtime-internal-core",
@ -2598,9 +2533,9 @@ dependencies = [
[[package]]
name = "wasmtime-internal-cache"
version = "43.0.2"
version = "50.0.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "4ed398988226d7aa0505ac6bb576e09532ad722d702ec4e66365d78ed695c95f"
checksum = "067440fa60ddd5145840e0335ffe0ab4d908a021932b6844c3ad61570abddfef"
dependencies = [
"base64",
"directories-next",
@ -2618,14 +2553,14 @@ dependencies = [
[[package]]
name = "wasmtime-internal-component-macro"
version = "43.0.2"
version = "50.0.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ae5ec9fff073ff13b81732d56a9515d761c245750bcda09093827f84130ebc25"
checksum = "adf0938f1a0f067a60aa07a7f4369fae05ef227314aca64c1abc7b2dc5e80743"
dependencies = [
"anyhow",
"proc-macro2",
"quote",
"syn 2.0.119",
"syn 3.0.9",
"wasmtime-internal-component-util",
"wasmtime-internal-wit-bindgen",
"wit-parser",
@ -2633,29 +2568,28 @@ dependencies = [
[[package]]
name = "wasmtime-internal-component-util"
version = "43.0.2"
version = "50.0.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "935d9ab293ba27d1ec9aa7bc1b3a43993dbe961af2a8f23f90a11e1331b4c13f"
checksum = "2626398b21bf4b1547fdbadc68afd5cbe69c89ca2a1d6c45fd56fd3b28177b93"
[[package]]
name = "wasmtime-internal-core"
version = "43.0.2"
version = "50.0.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "9a3820b174f477d2a7083209d1ad5353fcdb11eaea434b2137b8681029460dd3"
checksum = "83d4ac46034b149aed44335595402503094a04e3b70d0cff8c169d83437318b8"
dependencies = [
"anyhow",
"hashbrown 0.16.1",
"hashbrown 0.17.1",
"libm",
"serde",
]
[[package]]
name = "wasmtime-internal-cranelift"
version = "43.0.2"
version = "50.0.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d1679d205caf9766c6aa309d45bb3e7c634d7725e3164404df33824b9f7c4fb7"
checksum = "1f496bf29d3f2a1d060e0a497a20bfba2a36befe80bdf3e640ba8d3dcab7df35"
dependencies = [
"cfg-if",
"cranelift-codegen",
"cranelift-control",
"cranelift-entity",
@ -2669,7 +2603,7 @@ dependencies = [
"smallvec",
"target-lexicon",
"thiserror 2.0.20",
"wasmparser 0.245.1",
"wasmparser 0.261.0",
"wasmtime-environ",
"wasmtime-internal-core",
"wasmtime-internal-unwinder",
@ -2678,12 +2612,11 @@ dependencies = [
[[package]]
name = "wasmtime-internal-fiber"
version = "43.0.2"
version = "50.0.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f1e505254058be5b0df458d670ee42d9eafe2349d04c1296e9dc01071dc20a85"
checksum = "2074dc297d5ec7f0cfff65c248798dfe4bbee4d760fc2956cc0eaf49d2eadef1"
dependencies = [
"cc",
"cfg-if",
"libc",
"rustix",
"wasmtime-environ",
@ -2693,9 +2626,9 @@ dependencies = [
[[package]]
name = "wasmtime-internal-jit-debug"
version = "43.0.2"
version = "50.0.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1c2e05b345f1773e59c20e6ad7298fd6857cdea245023d88bb659c96d8f0ea72"
checksum = "4e990e2fb7710dd73af071ecf60908072935be7a5c689b4a07e9a2adc7995151"
dependencies = [
"cc",
"object",
@ -2705,11 +2638,10 @@ dependencies = [
[[package]]
name = "wasmtime-internal-jit-icache-coherence"
version = "43.0.2"
version = "50.0.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b86701b234a4643e3f111869aa792b3a05a06e02d486ee9cb6c04dae16b52dab"
checksum = "cf25a1b3b925915f845927967554400554db9cebd3a7038a6fca0cf6e9bbaf6a"
dependencies = [
"cfg-if",
"libc",
"wasmtime-internal-core",
"windows-sys 0.61.2",
@ -2717,11 +2649,10 @@ dependencies = [
[[package]]
name = "wasmtime-internal-unwinder"
version = "43.0.2"
version = "50.0.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f63558d801beb83dde9b336eb4ae049019aee26627926edb32cd119d7e4c83cd"
checksum = "e69eb39fe5baf9e181269e6ced40f407d31afc8e514864e228ef0e087f4f5348"
dependencies = [
"cfg-if",
"cranelift-codegen",
"log",
"object",
@ -2730,63 +2661,47 @@ dependencies = [
[[package]]
name = "wasmtime-internal-versioned-export-macros"
version = "43.0.2"
version = "50.0.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "737c4d956fc3a848541a064afb683dd2771132a6b125be5baaf95c4379aa47df"
checksum = "a805a26effdf564820580b7c4ce1c00fdee3f4a9465a5aeef944f9e0c254ec2e"
dependencies = [
"proc-macro2",
"quote",
"syn 2.0.119",
]
[[package]]
name = "wasmtime-internal-winch"
version = "43.0.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f599b79545e3bba0b7913406055ebede5bb0dabee9ba2015ef25a9f4c9f47807"
dependencies = [
"cranelift-codegen",
"gimli",
"log",
"object",
"target-lexicon",
"wasmparser 0.245.1",
"wasmtime-environ",
"wasmtime-internal-cranelift",
"winch-codegen",
"syn 3.0.9",
]
[[package]]
name = "wasmtime-internal-wit-bindgen"
version = "43.0.2"
version = "50.0.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "2192a77a00b9a67800c2b4e1c70fb6abca79d6b529e53a2ef9dcdcc36090330d"
checksum = "8511353a609cd60bb91c85f96beef39a63e96ccdc20eb20af1da9b805c499ece"
dependencies = [
"anyhow",
"bitflags",
"heck",
"indexmap",
"wit-component",
"wit-parser",
]
[[package]]
name = "wast"
version = "258.0.0"
version = "262.0.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "97f7defc7ecca8b19ac7f824598eadd0c53985ee00c74060d65051e9da5b58a1"
checksum = "30612a0c29249b5f185888a107e8a519d920226b7d07f9d351fd094e9f75eb23"
dependencies = [
"bumpalo",
"leb128fmt",
"memchr",
"unicode-width",
"wasm-encoder 0.258.0",
"wasm-encoder 0.262.0",
]
[[package]]
name = "wat"
version = "1.258.0"
version = "1.262.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7555c008cca87f2ac58d9f83ccda7e7b44611093ce28eb28f052e7c78024b9bf"
checksum = "e228027f2b07bbaf946980ebbe2437fca73be6f54c40c2a8d4f42f277075f8d1"
dependencies = [
"wast",
]
@ -2797,14 +2712,14 @@ version = "0.26.11"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "521bc38abb08001b01866da9f51eb7c5d647a19260e00054a8c7fd5f9e57f7a9"
dependencies = [
"webpki-roots 1.0.9",
"webpki-roots 1.0.10",
]
[[package]]
name = "webpki-roots"
version = "1.0.9"
version = "1.0.10"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7dcd9d09a39985f5344844e66b0c530a33843579125f23e21e9f0f220850f22a"
checksum = "1c1c8e20c8a38fc7d65abfe74eb7280e4aa667e8eec8bc84996d2874810748d9"
dependencies = [
"rustls-pki-types",
]
@ -2840,25 +2755,6 @@ version = "0.4.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
[[package]]
name = "winch-codegen"
version = "43.0.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "52dbb0cf07b0dfe7b7a1ca8efb8f94ba98bd0fb144c411ea1665c78f0449e958"
dependencies = [
"cranelift-assembler-x64",
"cranelift-codegen",
"gimli",
"regalloc2",
"smallvec",
"target-lexicon",
"thiserror 2.0.20",
"wasmparser 0.245.1",
"wasmtime-environ",
"wasmtime-internal-core",
"wasmtime-internal-cranelift",
]
[[package]]
name = "windows-link"
version = "0.2.1"
@ -2947,12 +2843,6 @@ version = "0.52.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec"
[[package]]
name = "winnow"
version = "0.7.15"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "df79d97927682d2fd8adb29682d1140b343be4ac0f08fd68b7765d9c059d3945"
[[package]]
name = "winnow"
version = "1.0.4"
@ -2960,13 +2850,32 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "23b97319f7b8343df12cc98938e5c3eb436064524c8d2b4e30a1d3a36eecdf81"
[[package]]
name = "wit-parser"
version = "0.245.1"
name = "wit-component"
version = "0.261.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "330698718e82983499419494dd1e3d7811a457a9bf9f69734e8c5f07a2547929"
checksum = "2818766842bd2321074c348fb5c15d8fdb105a9eb78374e6d77c7d4127e1f2f9"
dependencies = [
"anyhow",
"hashbrown 0.16.1",
"bitflags",
"indexmap",
"log",
"serde",
"serde_derive",
"serde_json",
"wasm-encoder 0.261.0",
"wasm-metadata",
"wasmparser 0.261.0",
"wit-parser",
]
[[package]]
name = "wit-parser"
version = "0.261.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "962e43c4db2da607b50839a531e5b63473268b40efdf8028d5c54b572ca4f6f6"
dependencies = [
"anyhow",
"hashbrown 0.17.1",
"id-arena",
"indexmap",
"log",
@ -2974,8 +2883,8 @@ dependencies = [
"serde",
"serde_derive",
"serde_json",
"unicode-xid",
"wasmparser 0.245.1",
"unicode-ident",
"wasmparser 0.261.0",
]
[[package]]
@ -3112,7 +3021,7 @@ checksum = "34df6fc39dbd26ddc9c10e6a2984476e13acce22e64e4487636ef494369225da"
dependencies = [
"proc-macro2",
"quote",
"syn 3.0.4",
"syn 3.0.9",
]
[[package]]

View file

@ -40,7 +40,7 @@ sandbox-conformance = { path = "crates/sandbox-conformance" }
sandbox-proof = { path = "crates/sandbox-proof" }
sandbox-build = { path = "crates/sandbox-build" }
wasmtime = "43"
wasmtime = "50"
p384 = { version = "0.13", default-features = false, features = ["ecdsa", "sha384"] }
p256 = { version = "0.13", default-features = false, features = ["ecdsa"] }
sha2 = { version = "0.10", default-features = false }

View file

@ -541,7 +541,7 @@ mod tests {
}
fn mech() -> Mechanism {
Mechanism::commit("wasmtime/43.0.2", b"consume_fuel=true;default_fuel=50000000", &[])
Mechanism::commit("wasmtime/50.0.0", b"consume_fuel=true;default_fuel=50000000", &[])
}
/// The whole backward-compatibility claim of §7.9 in one assertion: an

View file

@ -447,7 +447,7 @@ fn c11_mechanism() -> Result<(), String> {
// (2) Carrying a mechanism is a distinct, self-describing profile.
let mut evidenced = sample_attestation();
evidenced.tier = Tier::S2;
evidenced.mechanism = Some(Mechanism::commit("wasmtime/43.0.2", b"consume_fuel=true", &[]));
evidenced.mechanism = Some(Mechanism::commit("wasmtime/50.0.0", b"consume_fuel=true", &[]));
want(evidenced.profile() == sandbox_attest::PROFILE_V2, "mechanism → /2 profile")?;
want(evidenced.canonical_bytes().map_err(|e| format!("canon: {e}"))? != before,
"the mechanism must be inside the signed bytes")?;

View file

@ -135,7 +135,7 @@ impl WasmExecutor {
/// and `wasmtime_version_matches_the_lockfile` fails the build if it drifts. A
/// stale value here would silently attest confinement to the wrong runtime,
/// which is precisely the class of untruth §7.9 exists to prevent.
pub const WASMTIME_VERSION: &str = "43.0.2";
pub const WASMTIME_VERSION: &str = "50.0.0";
impl Executor for WasmExecutor {
fn tier(&self) -> Tier {

View file

@ -28,7 +28,7 @@ Attestation {
DeviceIdentity { class : DeviceClass, model : String, driver : String }
Mechanism { runtime : String, profile_id : ContentId }
// runtime : enforcement runtime, name AND version ("wasmtime/43.0.2")
// runtime : enforcement runtime, name AND version ("wasmtime/50.0.0")
// profile_id : BLAKE3 over the length-prefixed encoding of
// (runtime, policy profile applied, egress allowlist installed)

View file

@ -1024,9 +1024,9 @@ dependencies = [
[[package]]
name = "crossbeam-epoch"
version = "0.9.18"
version = "0.9.21"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5b82ac4a3c2ca9c3460964f020e1402edd5753411d7737aa39c3714ad1b5420e"
checksum = "dc74980687109a3b14c72fd458107bf0baa1da1a1a805e178d15501ba9b86d9d"
dependencies = [
"crossbeam-utils",
]
@ -1218,7 +1218,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ccc2776f0c61eca1ca32528f85548abd1a4be8fb53d1b21c013e4f18da1e7090"
dependencies = [
"data-encoding",
"syn 2.0.117",
"syn 1.0.109",
]
[[package]]
@ -1970,9 +1970,9 @@ dependencies = [
[[package]]
name = "h2"
version = "0.4.14"
version = "0.4.20"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "171fefbc92fe4a4de27e0698d6a5b392d6a0e333506bc49133760b3bcf948733"
checksum = "7d29020232d6aa3fb1daca64c1127cf662cf97f254ae16c18c05b8ab635fc118"
dependencies = [
"atomic-waker",
"bytes",
@ -2377,7 +2377,7 @@ dependencies = [
"libc",
"percent-encoding",
"pin-project-lite",
"socket2 0.6.3",
"socket2 0.5.10",
"tokio",
"tower-service",
"tracing",
@ -4065,7 +4065,7 @@ dependencies = [
"pin-project-lite",
"rustc-hash",
"rustls",
"socket2 0.6.3",
"socket2 0.5.10",
"thiserror 2.0.18",
"tokio",
"tokio-stream",
@ -4110,7 +4110,7 @@ checksum = "78633d1fe1bde91d12bcabb230ac9edb890857414c6d44f3212e0d309525b5ff"
dependencies = [
"cfg_aliases",
"libc",
"socket2 0.6.3",
"socket2 0.5.10",
"tracing",
"windows-sys 0.61.2",
]
@ -4906,7 +4906,7 @@ dependencies = [
"quinn-udp",
"rustc-hash",
"rustls",
"socket2 0.6.3",
"socket2 0.5.10",
"thiserror 2.0.18",
"tokio",
"tracing",
@ -4915,15 +4915,16 @@ dependencies = [
[[package]]
name = "quinn-proto"
version = "0.11.14"
version = "0.11.19"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "434b42fec591c96ef50e21e886936e66d3cc3f737104fdb9b737c40ffb94c098"
checksum = "0e750cca55fe4f0439a15d0bb529da9651e79993e8e72c61a899a36d462befbe"
dependencies = [
"aws-lc-rs",
"bytes",
"getrandom 0.3.4",
"getrandom 0.4.2",
"lru-slab",
"rand 0.9.4",
"rand 0.10.1",
"rand_pcg",
"ring",
"rustc-hash",
"rustls",
@ -4944,7 +4945,7 @@ dependencies = [
"cfg_aliases",
"libc",
"once_cell",
"socket2 0.6.3",
"socket2 0.5.10",
"tracing",
"windows-sys 0.52.0",
]
@ -5347,9 +5348,9 @@ dependencies = [
[[package]]
name = "rustls"
version = "0.23.40"
version = "0.23.46"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ef86cd5876211988985292b91c96a8f2d298df24e75989a43a3c73f2d4d8168b"
checksum = "48e13bd8c0e9365c43cfa5c9e8f9ad49d3c8444926c9aac819e0e4dc503c8fdf"
dependencies = [
"aws-lc-rs",
"log",
@ -5412,9 +5413,9 @@ checksum = "f87165f0995f63a9fbeea62b64d10b4d9d8e78ec6d7d51fb2125fda7bb36788f"
[[package]]
name = "rustls-webpki"
version = "0.103.13"
version = "0.103.16"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "61c429a8649f110dddef65e2a5ad240f747e85f7758a6bccc7e5777bd33f756e"
checksum = "4443b1b6d39d7c663139942cc4558262562d2c84123bb6282ef177009ca8b281"
dependencies = [
"aws-lc-rs",
"ring",
@ -7215,18 +7216,18 @@ dependencies = [
[[package]]
name = "webpki-root-certs"
version = "1.0.7"
version = "1.0.10"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f31141ce3fc3e300ae89b78c0dd67f9708061d1d2eda54b8209346fd6be9a92c"
checksum = "58ec80e73fd8baf57bf0d9615554c75348bda990d6d5bbeab964dd068319fecb"
dependencies = [
"rustls-pki-types",
]
[[package]]
name = "webpki-roots"
version = "1.0.7"
version = "1.0.10"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "52f5ee44c96cf55f1b349600768e3ece3a8f26010c05265ab73f945bb1a2eb9d"
checksum = "1c1c8e20c8a38fc7d65abfe74eb7280e4aa667e8eec8bc84996d2874810748d9"
dependencies = [
"rustls-pki-types",
]

View file

@ -952,9 +952,9 @@ dependencies = [
[[package]]
name = "tokio"
version = "1.54.0"
version = "1.54.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a0c168a474b95bfecfe908a65d4bdffc523144b649a74c09c286afb35d53e0bc"
checksum = "b52fd3255258d26fac7264ab5a76b53c13367136dc011d3d6ad4f8ed070396a3"
dependencies = [
"pin-project-lite",
]

View file

@ -678,9 +678,9 @@ dependencies = [
[[package]]
name = "tokio"
version = "1.54.0"
version = "1.54.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a0c168a474b95bfecfe908a65d4bdffc523144b649a74c09c286afb35d53e0bc"
checksum = "b52fd3255258d26fac7264ab5a76b53c13367136dc011d3d6ad4f8ed070396a3"
dependencies = [
"pin-project-lite",
]

View file

@ -622,7 +622,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d045de693cb712d0b22c6a64be5b953f67b3ce00ab5ad3dd5d8b441886ab8e1a"
dependencies = [
"quote",
"syn 3.0.9",
"syn 2.0.119",
]
[[package]]
@ -979,7 +979,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "39cab71617ae0d63f51a36d69f866391735b51691dbda63cf6f96d042b63efeb"
dependencies = [
"libc",
"windows-sys 0.61.2",
"windows-sys 0.52.0",
]
[[package]]
@ -2845,7 +2845,7 @@ dependencies = [
"errno",
"libc",
"linux-raw-sys",
"windows-sys 0.61.2",
"windows-sys 0.52.0",
]
[[package]]
@ -3766,9 +3766,9 @@ checksum = "fd3ca314f692efd6c868f8408f53fe444634a845f96c028b97d35f6a1f79f0ee"
[[package]]
name = "tokio"
version = "1.54.0"
version = "1.54.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a0c168a474b95bfecfe908a65d4bdffc523144b649a74c09c286afb35d53e0bc"
checksum = "b52fd3255258d26fac7264ab5a76b53c13367136dc011d3d6ad4f8ed070396a3"
dependencies = [
"bytes",
"libc",
@ -4408,7 +4408,7 @@ version = "0.1.11"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c2a7b1c03c876122aa43f3020e6c3c3ee5c05081c9a00739faf7503aeba10d22"
dependencies = [
"windows-sys 0.61.2",
"windows-sys 0.52.0",
]
[[package]]

26
wai/wai-rs/Cargo.lock generated
View file

@ -1295,7 +1295,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "39cab71617ae0d63f51a36d69f866391735b51691dbda63cf6f96d042b63efeb"
dependencies = [
"libc",
"windows-sys 0.52.0",
"windows-sys 0.61.2",
]
[[package]]
@ -3354,14 +3354,14 @@ dependencies = [
"errno",
"libc",
"linux-raw-sys",
"windows-sys 0.52.0",
"windows-sys 0.61.2",
]
[[package]]
name = "rustls"
version = "0.23.43"
version = "0.23.46"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0283386ce02abc0151e1761d08802dfe86c173b0b494af5cbc086574e453da06"
checksum = "48e13bd8c0e9365c43cfa5c9e8f9ad49d3c8444926c9aac819e0e4dc503c8fdf"
dependencies = [
"log",
"once_cell",
@ -3411,7 +3411,7 @@ dependencies = [
"security-framework",
"security-framework-sys",
"webpki-root-certs",
"windows-sys 0.52.0",
"windows-sys 0.61.2",
]
[[package]]
@ -3422,9 +3422,9 @@ checksum = "eec689c0bc40ff2458a5977b6619cb718087084a18e02a131c599b62d05e1a5f"
[[package]]
name = "rustls-webpki"
version = "0.103.15"
version = "0.103.16"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f3c3cf1d8b1e7d4927e2d154c3fcb02979afb9939629c62cd9048d4f07b60ac2"
checksum = "4443b1b6d39d7c663139942cc4558262562d2c84123bb6282ef177009ca8b281"
dependencies = [
"ring",
"rustls-pki-types",
@ -3937,7 +3937,7 @@ dependencies = [
"getrandom 0.3.4",
"once_cell",
"rustix",
"windows-sys 0.52.0",
"windows-sys 0.61.2",
]
[[package]]
@ -4430,18 +4430,18 @@ dependencies = [
[[package]]
name = "webpki-root-certs"
version = "1.0.9"
version = "1.0.10"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b96554aa2acc8ccdb7e1c9a58a7a68dd5d13bccc69cd124cb09406db612a1c9b"
checksum = "58ec80e73fd8baf57bf0d9615554c75348bda990d6d5bbeab964dd068319fecb"
dependencies = [
"rustls-pki-types",
]
[[package]]
name = "webpki-roots"
version = "1.0.9"
version = "1.0.10"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7dcd9d09a39985f5344844e66b0c530a33843579125f23e21e9f0f220850f22a"
checksum = "1c1c8e20c8a38fc7d65abfe74eb7280e4aa667e8eec8bc84996d2874810748d9"
dependencies = [
"rustls-pki-types",
]
@ -4621,7 +4621,7 @@ version = "0.1.11"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c2a7b1c03c876122aa43f3020e6c3c3ee5c05081c9a00739faf7503aeba10d22"
dependencies = [
"windows-sys 0.52.0",
"windows-sys 0.61.2",
]
[[package]]