From 3be64f9436b996efb041e26a5ce59975a7ca3a59 Mon Sep 17 00:00:00 2001 From: dishmaker <141624503+dishmaker@users.noreply.github.com> Date: Tue, 25 Aug 2026 22:05:18 +0200 Subject: [PATCH 1/7] refactor: use RsaPublicKeyRef instead of RsaPublicKey from RustCrypto/formats/pkcs1 --- src/encoding.rs | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/encoding.rs b/src/encoding.rs index 086c8c92..9632bb45 100644 --- a/src/encoding.rs +++ b/src/encoding.rs @@ -34,7 +34,7 @@ impl pkcs1::DecodeRsaPrivateKey for RsaPrivateKey { impl pkcs1::DecodeRsaPublicKey for RsaPublicKey { fn from_pkcs1_der(bytes: &[u8]) -> pkcs1::Result { - pkcs1::RsaPublicKey::from_der(bytes)?.try_into() + pkcs1::RsaPublicKeyRef::from_der(bytes)?.try_into() } } @@ -67,10 +67,10 @@ impl TryFrom> for RsaPrivateKey { } } -impl TryFrom> for RsaPublicKey { +impl TryFrom> for RsaPublicKey { type Error = pkcs1::Error; - fn try_from(pkcs1_key: pkcs1::RsaPublicKey<'_>) -> pkcs1::Result { + fn try_from(pkcs1_key: pkcs1::RsaPublicKeyRef<'_>) -> pkcs1::Result { use pkcs1::Error::KeyMalformed; let bits = u32::try_from(pkcs1_key.modulus.as_bytes().len()).map_err(|_| KeyMalformed)? * 8; @@ -140,7 +140,7 @@ impl pkcs1::EncodeRsaPublicKey for RsaPublicKey { let modulus = self.n().to_be_bytes(); let public_exponent = self.e().to_be_bytes(); - Ok(Document::encode_msg(&pkcs1::RsaPublicKey { + Ok(Document::encode_msg(&pkcs1::RsaPublicKeyRef { modulus: pkcs1::UintRef::new(&modulus)?, public_exponent: pkcs1::UintRef::new(&public_exponent)?, })?) @@ -188,7 +188,7 @@ impl TryFrom> for RsaPublicKey { verify_algorithm_id(&spki.algorithm)?; - pkcs1::RsaPublicKey::try_from(spki.subject_public_key.as_bytes().ok_or(KeyMalformed)?) + pkcs1::RsaPublicKeyRef::try_from(spki.subject_public_key.as_bytes().ok_or(KeyMalformed)?) .and_then(TryInto::try_into) .map_err(pkcs1_error_to_spki) } From dc89967d5acf570f35375a9eb9151380fabd2f28 Mon Sep 17 00:00:00 2001 From: dishmaker <141624503+dishmaker@users.noreply.github.com> Date: Tue, 25 Aug 2026 22:14:45 +0200 Subject: [PATCH 2/7] patch Cargo.toml with RustCrypto/formats PR commit rev --- Cargo.toml | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/Cargo.toml b/Cargo.toml index 98df0527..80170008 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -68,3 +68,8 @@ opt-level = 2 [profile.bench] debug = true + + +[patch.crates-io] +# pkcs1: split RsaPublicKey into RsaPublicKeyRef and RsaPublicKeyOwned - #2411 +pkcs1 = { git = "https://github.com/RustCrypto/formats.git", rev = "0072dd7246ce370e7b89047b1389f44b67ab63b7" } From bf83f5541c4260ec7295c92fe6d0f7fe9ae4972a Mon Sep 17 00:00:00 2001 From: dishmaker <141624503+dishmaker@users.noreply.github.com> Date: Sat, 29 Aug 2026 17:30:07 +0200 Subject: [PATCH 3/7] use der UintLike trait: .as_uint_bytes() --- Cargo.toml | 5 +++-- src/encoding.rs | 37 ++++++++++++++++++++----------------- 2 files changed, 23 insertions(+), 19 deletions(-) diff --git a/Cargo.toml b/Cargo.toml index 80170008..d75359d0 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -71,5 +71,6 @@ debug = true [patch.crates-io] -# pkcs1: split RsaPublicKey into RsaPublicKeyRef and RsaPublicKeyOwned - #2411 -pkcs1 = { git = "https://github.com/RustCrypto/formats.git", rev = "0072dd7246ce370e7b89047b1389f44b67ab63b7" } +# pkcs1: split der objects into *Ref and *Owned - #2411 +pkcs1 = { git = "https://github.com/dishmaker/formats.git", rev = "db210a5ca227116471c6970d09afbde352bbce17" } +der = { git = "https://github.com/dishmaker/formats.git", rev = "db210a5ca227116471c6970d09afbde352bbce17" } diff --git a/src/encoding.rs b/src/encoding.rs index 9632bb45..e5cf6869 100644 --- a/src/encoding.rs +++ b/src/encoding.rs @@ -15,6 +15,7 @@ use pkcs8::{ der::{asn1::OctetStringRef, Decode}, Document, EncodePrivateKey, EncodePublicKey, ObjectIdentifier, SecretDocument, }; +use spki::der::asn1::UintLike; use zeroize::Zeroizing; /// ObjectID for the RSA PSS keys @@ -28,7 +29,7 @@ fn uint_from_slice(data: &[u8], bits: u32) -> pkcs1::Result { impl pkcs1::DecodeRsaPrivateKey for RsaPrivateKey { fn from_pkcs1_der(bytes: &[u8]) -> pkcs1::Result { - pkcs1::RsaPrivateKey::from_der(bytes)?.try_into() + pkcs1::RsaPrivateKeyRef::from_der(bytes)?.try_into() } } @@ -38,10 +39,10 @@ impl pkcs1::DecodeRsaPublicKey for RsaPublicKey { } } -impl TryFrom> for RsaPrivateKey { +impl TryFrom> for RsaPrivateKey { type Error = pkcs1::Error; - fn try_from(pkcs1_key: pkcs1::RsaPrivateKey<'_>) -> pkcs1::Result { + fn try_from(pkcs1_key: pkcs1::RsaPrivateKey) -> pkcs1::Result { use pkcs1::Error::KeyMalformed; // Multi-prime RSA keys not currently supported @@ -49,37 +50,39 @@ impl TryFrom> for RsaPrivateKey { return Err(pkcs1::Error::Version); } - let bits = u32::try_from(pkcs1_key.modulus.as_bytes().len()).map_err(|_| KeyMalformed)? * 8; + let bits = + u32::try_from(pkcs1_key.modulus.as_uint_bytes().len()).map_err(|_| KeyMalformed)? * 8; - let n = uint_from_slice(pkcs1_key.modulus.as_bytes(), bits)?; - let bits_e = u32::try_from(pkcs1_key.public_exponent.as_bytes().len()) + let n = uint_from_slice(pkcs1_key.modulus.as_uint_bytes(), bits)?; + let bits_e = u32::try_from(pkcs1_key.public_exponent.as_uint_bytes().len()) .map_err(|_| pkcs1::Error::KeyMalformed)? * 8; - let e = uint_from_slice(pkcs1_key.public_exponent.as_bytes(), bits_e)?; + let e = uint_from_slice(pkcs1_key.public_exponent.as_uint_bytes(), bits_e)?; let e = Option::from(e).ok_or(KeyMalformed)?; - let d = uint_from_slice(pkcs1_key.private_exponent.as_bytes(), bits)?; - let prime1 = uint_from_slice(pkcs1_key.prime1.as_bytes(), bits)?; - let prime2 = uint_from_slice(pkcs1_key.prime2.as_bytes(), bits)?; + let d = uint_from_slice(pkcs1_key.private_exponent.as_uint_bytes(), bits)?; + let prime1 = uint_from_slice(pkcs1_key.prime1.as_uint_bytes(), bits)?; + let prime2 = uint_from_slice(pkcs1_key.prime2.as_uint_bytes(), bits)?; let primes = vec![prime1, prime2]; RsaPrivateKey::from_components(n, e, d, primes).map_err(|_| KeyMalformed) } } -impl TryFrom> for RsaPublicKey { +impl TryFrom> for RsaPublicKey { type Error = pkcs1::Error; - fn try_from(pkcs1_key: pkcs1::RsaPublicKeyRef<'_>) -> pkcs1::Result { + fn try_from(pkcs1_key: pkcs1::RsaPublicKey) -> pkcs1::Result { use pkcs1::Error::KeyMalformed; - let bits = u32::try_from(pkcs1_key.modulus.as_bytes().len()).map_err(|_| KeyMalformed)? * 8; - let n = uint_from_slice(pkcs1_key.modulus.as_bytes(), bits)?; + let bits = + u32::try_from(pkcs1_key.modulus.as_uint_bytes().len()).map_err(|_| KeyMalformed)? * 8; + let n = uint_from_slice(pkcs1_key.modulus.as_uint_bytes(), bits)?; - let bits_e = u32::try_from(pkcs1_key.public_exponent.as_bytes().len()) + let bits_e = u32::try_from(pkcs1_key.public_exponent.as_uint_bytes().len()) .map_err(|_| KeyMalformed)? * 8; - let e = uint_from_slice(pkcs1_key.public_exponent.as_bytes(), bits_e)?; + let e = uint_from_slice(pkcs1_key.public_exponent.as_uint_bytes(), bits_e)?; RsaPublicKey::new(n, e).map_err(|_| KeyMalformed) } @@ -174,7 +177,7 @@ impl TryFrom> for RsaPrivateKey { fn try_from(private_key_info: pkcs8::PrivateKeyInfoRef<'_>) -> pkcs8::Result { verify_algorithm_id(&private_key_info.algorithm)?; - pkcs1::RsaPrivateKey::try_from(private_key_info.private_key) + pkcs1::RsaPrivateKeyRef::try_from(private_key_info.private_key) .and_then(TryInto::try_into) .map_err(pkcs1_error_to_pkcs8) } From c1dd537dcaa7c41f2b964efee6e91a1e5a4b6fa0 Mon Sep 17 00:00:00 2001 From: dishmaker <141624503+dishmaker@users.noreply.github.com> Date: Sat, 29 Aug 2026 20:06:57 +0200 Subject: [PATCH 4/7] use der `AsUintRef` trait --- Cargo.toml | 6 ++++-- src/encoding.rs | 35 ++++++++++++++++++----------------- 2 files changed, 22 insertions(+), 19 deletions(-) diff --git a/Cargo.toml b/Cargo.toml index d75359d0..ad39f2a6 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -72,5 +72,7 @@ debug = true [patch.crates-io] # pkcs1: split der objects into *Ref and *Owned - #2411 -pkcs1 = { git = "https://github.com/dishmaker/formats.git", rev = "db210a5ca227116471c6970d09afbde352bbce17" } -der = { git = "https://github.com/dishmaker/formats.git", rev = "db210a5ca227116471c6970d09afbde352bbce17" } +pkcs1 = { git = "https://github.com/dishmaker/formats.git", rev = "9279a2e6ee2a6757d10d29513c833c665e2220e6" } +pkcs8 = { git = "https://github.com/dishmaker/formats.git", rev = "9279a2e6ee2a6757d10d29513c833c665e2220e6" } +spki = { git = "https://github.com/dishmaker/formats.git", rev = "9279a2e6ee2a6757d10d29513c833c665e2220e6" } +der = { git = "https://github.com/dishmaker/formats.git", rev = "9279a2e6ee2a6757d10d29513c833c665e2220e6" } diff --git a/src/encoding.rs b/src/encoding.rs index e5cf6869..8a32acec 100644 --- a/src/encoding.rs +++ b/src/encoding.rs @@ -12,10 +12,9 @@ use crate::{ use core::convert::{TryFrom, TryInto}; use crypto_bigint::{BoxedUint, NonZero, Resize}; use pkcs8::{ - der::{asn1::OctetStringRef, Decode}, + der::{asn1::AsUintRef, asn1::OctetStringRef, Decode}, Document, EncodePrivateKey, EncodePublicKey, ObjectIdentifier, SecretDocument, }; -use spki::der::asn1::UintLike; use zeroize::Zeroizing; /// ObjectID for the RSA PSS keys @@ -39,7 +38,7 @@ impl pkcs1::DecodeRsaPublicKey for RsaPublicKey { } } -impl TryFrom> for RsaPrivateKey { +impl TryFrom> for RsaPrivateKey { type Error = pkcs1::Error; fn try_from(pkcs1_key: pkcs1::RsaPrivateKey) -> pkcs1::Result { @@ -50,39 +49,41 @@ impl TryFrom> for RsaPrivateKey { return Err(pkcs1::Error::Version); } - let bits = - u32::try_from(pkcs1_key.modulus.as_uint_bytes().len()).map_err(|_| KeyMalformed)? * 8; + let bits = u32::try_from(pkcs1_key.modulus.as_uint_ref().as_bytes().len()) + .map_err(|_| KeyMalformed)? + * 8; - let n = uint_from_slice(pkcs1_key.modulus.as_uint_bytes(), bits)?; - let bits_e = u32::try_from(pkcs1_key.public_exponent.as_uint_bytes().len()) + let n = uint_from_slice(pkcs1_key.modulus.as_uint_ref().as_bytes(), bits)?; + let bits_e = u32::try_from(pkcs1_key.public_exponent.as_uint_ref().as_bytes().len()) .map_err(|_| pkcs1::Error::KeyMalformed)? * 8; - let e = uint_from_slice(pkcs1_key.public_exponent.as_uint_bytes(), bits_e)?; + let e = uint_from_slice(pkcs1_key.public_exponent.as_uint_ref().as_bytes(), bits_e)?; let e = Option::from(e).ok_or(KeyMalformed)?; - let d = uint_from_slice(pkcs1_key.private_exponent.as_uint_bytes(), bits)?; - let prime1 = uint_from_slice(pkcs1_key.prime1.as_uint_bytes(), bits)?; - let prime2 = uint_from_slice(pkcs1_key.prime2.as_uint_bytes(), bits)?; + let d = uint_from_slice(pkcs1_key.private_exponent.as_uint_ref().as_bytes(), bits)?; + let prime1 = uint_from_slice(pkcs1_key.prime1.as_uint_ref().as_bytes(), bits)?; + let prime2 = uint_from_slice(pkcs1_key.prime2.as_uint_ref().as_bytes(), bits)?; let primes = vec![prime1, prime2]; RsaPrivateKey::from_components(n, e, d, primes).map_err(|_| KeyMalformed) } } -impl TryFrom> for RsaPublicKey { +impl TryFrom> for RsaPublicKey { type Error = pkcs1::Error; fn try_from(pkcs1_key: pkcs1::RsaPublicKey) -> pkcs1::Result { use pkcs1::Error::KeyMalformed; - let bits = - u32::try_from(pkcs1_key.modulus.as_uint_bytes().len()).map_err(|_| KeyMalformed)? * 8; - let n = uint_from_slice(pkcs1_key.modulus.as_uint_bytes(), bits)?; + let bits = u32::try_from(pkcs1_key.modulus.as_uint_ref().as_bytes().len()) + .map_err(|_| KeyMalformed)? + * 8; + let n = uint_from_slice(pkcs1_key.modulus.as_uint_ref().as_bytes(), bits)?; - let bits_e = u32::try_from(pkcs1_key.public_exponent.as_uint_bytes().len()) + let bits_e = u32::try_from(pkcs1_key.public_exponent.as_uint_ref().as_bytes().len()) .map_err(|_| KeyMalformed)? * 8; - let e = uint_from_slice(pkcs1_key.public_exponent.as_uint_bytes(), bits_e)?; + let e = uint_from_slice(pkcs1_key.public_exponent.as_uint_ref().as_bytes(), bits_e)?; RsaPublicKey::new(n, e).map_err(|_| KeyMalformed) } From 96c97ec3e8b2bedde44f5954334618bec87a19c3 Mon Sep 17 00:00:00 2001 From: dishmaker <141624503+dishmaker@users.noreply.github.com> Date: Sat, 29 Aug 2026 20:13:53 +0200 Subject: [PATCH 5/7] cargo update with only `pkcs1` + `der` patch --- Cargo.lock | 498 ++++++++++++++++++++--------------------------------- Cargo.toml | 2 - 2 files changed, 187 insertions(+), 313 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index b1a047db..96b8d7cb 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2,11 +2,21 @@ # It is not intended for manual editing. version = 4 +[[package]] +name = "aead" +version = "0.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1973cfbc1a2daf9cf550e74e1f088c28e7f7d8c1e1418fb6c9dc5184b7e84c99" +dependencies = [ + "crypto-common", + "inout", +] + [[package]] name = "aes" -version = "0.9.0" +version = "0.9.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "66bd29a732b644c0431c6140f370d097879203d79b80c94a6747ba0872adaef8" +checksum = "35f0f96ce78e38c3dc6d8948aa8163d06385be74000f3c7a95bf1eef35d3ea32" dependencies = [ "cipher", "cpubits", @@ -14,25 +24,33 @@ dependencies = [ ] [[package]] -name = "aho-corasick" -version = "1.1.4" +name = "aes-gcm" +version = "0.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ddd31a130427c27518df266943a5308ed92d4b226cc639f5a8f1002816174301" +checksum = "7f2b8006a0c83f52b62ba44a97b58bf76fe2f70a329e588f67f89691d93d498f" dependencies = [ - "memchr", + "aead", + "aes", + "cipher", + "ctr", + "ctutils", + "ghash", ] [[package]] -name = "anyhow" -version = "1.0.102" +name = "aho-corasick" +version = "1.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f202df86484c868dbad7eaa557ef785d5c66295e41b460ef922eca0723b842c" +checksum = "c982642fa9e8606056828ee9a8505737230110bb1099153c79efe865c59d12ba" +dependencies = [ + "memchr", +] [[package]] name = "autocfg" -version = "1.5.0" +version = "1.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c08606f8c3cbf4ce6ec8e28fb0014a2c086708fe954eaa885384a6165172e7e8" +checksum = "f2032f911046de80f0a198e0901378627c33f59ea0ac00e363d481118bd70a53" [[package]] name = "base16ct" @@ -63,15 +81,15 @@ checksum = "5e764a1d40d510daf35e07be9eb06e75770908c27d411ee6c92109c9840eaaf7" [[package]] name = "bitflags" -version = "2.11.1" +version = "2.13.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c4512299f36f043ab09a583e57bceb5a5aab7a73db1805848e8fef3c9e8c78b3" +checksum = "b588b76d00fde79687d7646a9b5bdf3cc0f655e0bbd080335a95d7e96f3587da" [[package]] name = "block-buffer" -version = "0.12.0" +version = "0.12.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cdd35008169921d80bc60d3d0ab416eecb028c4cd653352907921d95084790be" +checksum = "d2f6c7dbe95a6ed67ad9f18e57daf93a2f034c524b99fd2b76d18fdfeb6660aa" dependencies = [ "hybrid-array", ] @@ -87,9 +105,9 @@ dependencies = [ [[package]] name = "cbc" -version = "0.2.0" +version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "98db6aeaef0eeef2c1e3ce9a27b739218825dae116076352ac3777076aa22225" +checksum = "ce2dc9ee5f88d11e0beb842c88b33c8a5cf0d1329c4b19494af42b07dbfe8896" dependencies = [ "cipher", ] @@ -102,9 +120,9 @@ checksum = "9330f8b2ff13f34540b44e946ef35111825727b38d33286ef986142615121801" [[package]] name = "chacha20" -version = "0.10.0" +version = "0.10.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6f8d983286843e49675a4b7a2d174efe136dc93a18d69130dd18198a6c167601" +checksum = "65c35e4b699c7e15ccbe7ee35c005e4fc0a278d22238a2857e6ce2dadeda1b06" dependencies = [ "cfg-if", "cpufeatures", @@ -113,9 +131,9 @@ dependencies = [ [[package]] name = "cipher" -version = "0.5.1" +version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e34d8227fe1ba289043aeb13792056ff80fd6de1a9f49137a5f499de8e8c78ea" +checksum = "e8cf2a2c93cd704877c0858356ed03480ff301ee950b43f1cbe4573b088bfa6c" dependencies = [ "block-buffer", "crypto-common", @@ -124,9 +142,9 @@ dependencies = [ [[package]] name = "cmov" -version = "0.5.3" +version = "0.5.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3f88a43d011fc4a6876cb7344703e297c71dda42494fee094d5f7c76bf13f746" +checksum = "0c9ea0ac24bc397ab3c98583a3c9ba74fa56b09a4449bbe172b9b1ddb016027a" [[package]] name = "const-oid" @@ -136,28 +154,28 @@ checksum = "a6ef517f0926dd24a1582492c791b6a4818a4d94e789a334894aa15b0d12f55c" [[package]] name = "cpubits" -version = "0.1.0" +version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5ef0c543070d296ea414df2dd7625d1b24866ce206709d8a4a424f28377f5861" +checksum = "15b85f9c39137c3a891689859392b1bd49812121d0d61c9caf00d46ed5ce06ae" [[package]] name = "cpufeatures" -version = "0.3.0" +version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8b2a41393f66f16b0823bb79094d54ac5fbd34ab292ddafb9a0456ac9f87d201" +checksum = "5ca28b0ae3115b884660db4118d803791fd6756b6e88f39c0f3f7859060d7566" dependencies = [ "libc", ] [[package]] name = "crypto-bigint" -version = "0.7.3" +version = "0.7.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "42a0d26b245348befa0c121944541476763dcc46ede886c88f9d12e1697d27c3" +checksum = "1a52aa3fcda4e6302a9f48734f234d35d4721b96f8fe07d073f07ce9df4f0271" dependencies = [ "cpubits", "ctutils", - "getrandom 0.4.2", + "getrandom 0.4.3", "num-traits", "rand_core 0.10.1", "serdect", @@ -166,26 +184,34 @@ dependencies = [ [[package]] name = "crypto-common" -version = "0.2.1" +version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "77727bb15fa921304124b128af125e7e3b968275d1b108b379190264f4423710" +checksum = "ce6e4c961d6cd6c9a86db418387425e8bdeaf05b3c8bc1411e6dca4c252f1453" dependencies = [ - "getrandom 0.4.2", + "getrandom 0.4.3", "hybrid-array", "rand_core 0.10.1", ] [[package]] name = "crypto-primes" -version = "0.7.0" +version = "0.7.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "21f41f23de7d24cdbda7f0c4d9c0351f99a4ceb258ef30e5c1927af8987ffe5a" +checksum = "3633a51a39c69ebbaa4feaa694bd83d241e4093901c84a0963b19d9bb3f0cf8f" dependencies = [ "crypto-bigint", - "libm", "rand_core 0.10.1", ] +[[package]] +name = "ctr" +version = "0.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "baaca1c4b237092596f64d571e9db6ce4109c4ef9742e27590f1709594461f21" +dependencies = [ + "cipher", +] + [[package]] name = "ctutils" version = "0.4.2" @@ -197,9 +223,8 @@ dependencies = [ [[package]] name = "der" -version = "0.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "71fd89660b2dc699704064e59e9dba0147b903e85319429e131620d022be411b" +version = "0.8.1" +source = "git+https://github.com/dishmaker/formats.git?rev=9279a2e6ee2a6757d10d29513c833c665e2220e6#9279a2e6ee2a6757d10d29513c833c665e2220e6" dependencies = [ "const-oid", "pem-rfc7468", @@ -208,9 +233,9 @@ dependencies = [ [[package]] name = "digest" -version = "0.11.2" +version = "0.11.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4850db49bf08e663084f7fb5c87d202ef91a3907271aff24a94eb97ff039153c" +checksum = "f1dd6dbb5841937940781866fa1281a1ff7bd3bf827091440879f9994983d5c2" dependencies = [ "block-buffer", "const-oid", @@ -236,9 +261,9 @@ dependencies = [ [[package]] name = "fastrand" -version = "2.4.1" +version = "2.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9f1f227452a390804cdb637b74a86990f2a7d7ba4b7d5693aac9b4dd6defd8d6" +checksum = "da7c62ceae207dd37ea5b845da6a0696c799f85e97da1ab5b7910be3c1c80223" [[package]] name = "fnv" @@ -246,46 +271,40 @@ version = "1.0.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" -[[package]] -name = "foldhash" -version = "0.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d9c4f5dac5e15c24eb999c26181a6ca40b39fe946cbe4c263c7209467bc83af2" - [[package]] name = "futures-core" -version = "0.3.32" +version = "0.3.34" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7e3450815272ef58cec6d564423f6e755e25379b217b0bc688e295ba24df6b1d" +checksum = "92d699e522242e69e3003b94ecc1f960f3a5e015aa7c5d7486e65ad01dd94f5e" [[package]] name = "futures-macro" -version = "0.3.32" +version = "0.3.34" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e835b70203e41293343137df5c0664546da5745f82ec9b84d40be8336958447b" +checksum = "9fb9654ba8355388abeb8dcb4fc62f511300867002afc858860463bdd9fe0c44" dependencies = [ "proc-macro2", "quote", - "syn", + "syn 3.0.4", ] [[package]] name = "futures-task" -version = "0.3.32" +version = "0.3.34" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "037711b3d59c33004d3856fbdc83b99d4ff37a24768fa1be9ce3538a1cde4393" +checksum = "cd417de3d1d015fc3bfd2b1ea46dfc7bab72ef86f1cc7cc9c78e728b34a6d1fd" [[package]] name = "futures-timer" -version = "3.0.3" +version = "3.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f288b0a4f20f9a56b5d1da57e2227c661b7b16168e2f72365f57b63326e29b24" +checksum = "af43fadb8a98512d547e37b4e92e0ced13e205c061b87b4623eff01d918d6968" [[package]] name = "futures-util" -version = "0.3.32" +version = "0.3.34" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "389ca41296e6190b48053de0321d02a77f32f8a5d2461dd38762c0593805c6d6" +checksum = "0d50a92467f8ba5dd6e3ee5d4bd04d73ab2e4e1c44474a0674821dfce14b79bc" dependencies = [ "futures-core", "futures-macro", @@ -308,44 +327,36 @@ dependencies = [ [[package]] name = "getrandom" -version = "0.4.2" +version = "0.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0de51e6874e94e7bf76d726fc5d13ba782deca734ff60d5bb2fb2607c7406555" +checksum = "300e883d756b2e4ec94e02791f39b04b522276138852cfc41d9fb7e904106099" dependencies = [ "cfg-if", "libc", "r-efi 6.0.0", "rand_core 0.10.1", - "wasip2", - "wasip3", ] [[package]] -name = "glob" -version = "0.3.3" +name = "ghash" +version = "0.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0cc23270f6e1808e30a928bdc84dea0b9b4136a8bc82338574f23baf47bbd280" - -[[package]] -name = "hashbrown" -version = "0.15.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9229cfe53dfd69f0609a49f65461bd93001ea1ef889cd5529dd176593f5338a1" +checksum = "2eecf2d5dc9b66b732b97707a0210906b1d30523eb773193ab777c0c84b3e8d5" dependencies = [ - "foldhash", + "polyval", ] [[package]] -name = "hashbrown" -version = "0.17.0" +name = "glob" +version = "0.3.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4f467dd6dccf739c208452f8014c75c18bb8301b050ad1cfb27153803edb0f51" +checksum = "e4eba85ea1d0a966a983acd07deee566e67395d2d96b6fb39e62b5a833f1eb0b" [[package]] -name = "heck" -version = "0.5.0" +name = "hashbrown" +version = "0.17.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea" +checksum = "ed5909b6e89a2db4456e54cd5f673791d7eca6732202bbf2a9cc504fe2f9b84a" [[package]] name = "hex" @@ -373,29 +384,21 @@ dependencies = [ [[package]] name = "hybrid-array" -version = "0.4.10" +version = "0.4.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3944cf8cf766b40e2a1a333ee5e9b563f854d5fa49d6a8ca2764e97c6eddb214" +checksum = "707114b52a152fa7bdb290cd7cd5912d9467273b6d74e21b8d81aca1f8533f6b" dependencies = [ "typenum", ] -[[package]] -name = "id-arena" -version = "2.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3d3067d79b975e8844ca9eb072e16b31c3c1c36928edf9c6789548c524d0d954" - [[package]] name = "indexmap" -version = "2.14.0" +version = "2.14.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d466e9454f08e4a911e14806c24e16fba1b4c121d1ea474396f396069cf949d9" +checksum = "07aa2048142242915a31d35844fb311e0e53fcca590c3a0a40dcf1b841fa09eb" dependencies = [ "equivalent", - "hashbrown 0.17.0", - "serde", - "serde_core", + "hashbrown", ] [[package]] @@ -416,31 +419,19 @@ checksum = "8f42a60cbdf9a97f5d2305f08a87dc4e09308d1276d28c869c684d7777685682" [[package]] name = "keccak" -version = "0.2.0" +version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9e24a010dd405bd7ed803e5253182815b41bf2e6a80cc3bfc066658e03a198aa" +checksum = "d8f198d1db720e4940b5a493201d199d9f24f568f8f746bd13706243a2f71598" dependencies = [ "cfg-if", "cpufeatures", ] -[[package]] -name = "leb128fmt" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "09edd9e8b54e49e587e4f6295a7d29c3ea94d469cb40ab8ca70b288248a81db2" - [[package]] name = "libc" -version = "0.2.185" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "52ff2c0fe9bc6cb6b14a0592c2ff4fa9ceb83eea9db979b0487cd054946a2b8f" - -[[package]] -name = "libm" -version = "0.2.16" +version = "0.2.189" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b6d2cec3eae94f9f509c767b45932f1ada8350c4bdb85af2fcab4a3c14807981" +checksum = "3eaf3ede3fee6db1a4c2ee091bf8a8b4dccdc6d17f656fb07896ee72867612f2" [[package]] name = "linux-raw-sys" @@ -448,17 +439,11 @@ version = "0.12.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "32a66949e030da00e8c7d4434b251670a91556f4144941d37452769c25d58a53" -[[package]] -name = "log" -version = "0.4.29" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5e5032e24019045c762d3c0f28f5b6b8bbf38563a65908389bf7978758920897" - [[package]] name = "memchr" -version = "2.8.0" +version = "2.8.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f8ca58f447f06ed17d5fc4043ce1b10dd205e060fb3ce5b979b8ed8e59ff3f79" +checksum = "cf8baf1c55e62ffcace7a9f06f4bd9cd3f0c4beb022d3b367256b91b87513d98" [[package]] name = "num-traits" @@ -503,8 +488,7 @@ checksum = "a89322df9ebe1c1578d689c92318e070967d1042b512afbe49518723f4e6d5cd" [[package]] name = "pkcs1" version = "0.8.0-rc.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "986d2e952779af96ea048f160fd9194e1751b4faea78bcf3ceb456efe008088e" +source = "git+https://github.com/dishmaker/formats.git?rev=9279a2e6ee2a6757d10d29513c833c665e2220e6#9279a2e6ee2a6757d10d29513c833c665e2220e6" dependencies = [ "der", "spki", @@ -512,11 +496,12 @@ dependencies = [ [[package]] name = "pkcs5" -version = "0.8.0" +version = "0.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "279a91971a1d8eb1260a30938eae3be9cb67b472dffecb222fbbbe2fd2dc1453" +checksum = "63d440a804ec8d6fafbb6b84471e013286658d373248927692ab3366686220ca" dependencies = [ "aes", + "aes-gcm", "cbc", "der", "pbkdf2", @@ -539,22 +524,23 @@ dependencies = [ ] [[package]] -name = "ppv-lite86" -version = "0.2.21" +name = "polyval" +version = "0.7.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "85eae3c4ed2f50dcfe72643da4befc30deadb458a9b590d720cde2f2b1e97da9" +checksum = "f0fa31d631f2b2cb2a544d0aa321ce847a94764d701ca2becc411138b93d49cd" dependencies = [ - "zerocopy", + "cpubits", + "cpufeatures", + "universal-hash", ] [[package]] -name = "prettyplease" -version = "0.2.37" +name = "ppv-lite86" +version = "0.2.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "479ca8adacdd7ce8f1fb39ce9ecccbfe93a3f1344b3d0d97f20bc0196208f62b" +checksum = "85eae3c4ed2f50dcfe72643da4befc30deadb458a9b590d720cde2f2b1e97da9" dependencies = [ - "proc-macro2", - "syn", + "zerocopy", ] [[package]] @@ -568,9 +554,9 @@ dependencies = [ [[package]] name = "proc-macro2" -version = "1.0.106" +version = "1.0.107" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8fd00f0bb2e90d81d1044c2b32617f68fcb9fa3bb7640c23e9c748e53fb30934" +checksum = "985e7ec9bb745e6ce6535b544d84d6cd6f7ad8bd711c398938ae983b91a766d9" dependencies = [ "unicode-ident", ] @@ -585,7 +571,7 @@ dependencies = [ "bit-vec", "bitflags", "num-traits", - "rand 0.9.4", + "rand 0.9.5", "rand_chacha", "rand_xorshift", "regex-syntax", @@ -602,9 +588,9 @@ checksum = "a1d01941d82fa2ab50be1e79e6714289dd7cde78eba4c074bc5a4374f650dfe0" [[package]] name = "quote" -version = "1.0.45" +version = "1.0.47" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "41f2619966050689382d2b44f664f4bc593e129785a36d6ee376ddf37259b924" +checksum = "1fbf4db142a473a8d80c26bbf18454ed458bf8d26c8219c331daecfdbd079001" dependencies = [ "proc-macro2", ] @@ -623,9 +609,9 @@ checksum = "f8dcc9c7d52a811697d2151c701e0d08956f92b0e24136cf4cf27b57a6a0d9bf" [[package]] name = "rand" -version = "0.9.4" +version = "0.9.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "44c5af06bb1b7d3216d91932aed5265164bf384dc89cd6ba05cf59a35f5f76ea" +checksum = "b9ef1d0d795eb7d84685bca4f72f3649f064e6641543d3a8c415898726a57b41" dependencies = [ "rand_chacha", "rand_core 0.9.5", @@ -633,12 +619,12 @@ dependencies = [ [[package]] name = "rand" -version = "0.10.1" +version = "0.10.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d2e8e8bcc7961af1fdac401278c6a831614941f6164ee3bf4ce61b7edb162207" +checksum = "c7f5fa3a058cd35567ef9bfa5e75732bee0f9e4c55fa90477bef2dfcdbc4be80" dependencies = [ "chacha20", - "getrandom 0.4.2", + "getrandom 0.4.3", "rand_core 0.10.1", ] @@ -678,9 +664,9 @@ dependencies = [ [[package]] name = "regex" -version = "1.12.3" +version = "1.13.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e10754a14b9137dd7b1e3e5b0493cc9171fdd105e0ab477f51b72e7f3ac0e276" +checksum = "f020237b6c8eed93db2e2cb53c00c60a8e1bc73da7d073199a1180401450218d" dependencies = [ "aho-corasick", "memchr", @@ -690,9 +676,9 @@ dependencies = [ [[package]] name = "regex-automata" -version = "0.4.14" +version = "0.4.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6e1dd4122fc1595e8162618945476892eefca7b88c52820e74af6262213cae8f" +checksum = "ad8553b9b26413251cbf30e620595c7a41b3887f03da04579c0e6b0d6a06b4b2" dependencies = [ "aho-corasick", "memchr", @@ -701,9 +687,9 @@ dependencies = [ [[package]] name = "regex-syntax" -version = "0.8.10" +version = "0.8.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dc897dd8d9e8bd1ed8cdad82b5966c3e0ecae09fb1907d58efaa013543185d0a" +checksum = "d6f6ff9a378485b298a5286656da665ba74413d36db0979633275d2e708145d4" [[package]] name = "relative-path" @@ -726,7 +712,7 @@ dependencies = [ "pkcs1", "pkcs8", "proptest", - "rand 0.10.1", + "rand 0.10.2", "rand_core 0.10.1", "rstest", "serde", @@ -766,7 +752,7 @@ dependencies = [ "regex", "relative-path", "rustc_version", - "syn", + "syn 2.0.119", "unicode-ident", ] @@ -834,9 +820,9 @@ checksum = "8a7852d02fc848982e0c167ef163aaff9cd91dc640ba85e263cb1ce46fae51cd" [[package]] name = "serde" -version = "1.0.228" +version = "1.0.229" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9a8e94ea7f378bd32cbbd37198a4a91436180c5bb472411e48b5ec2e2124ae9e" +checksum = "4148590afebada386688f18773da617792bf2ef03ffc1e4cbd2b1d45b023e0ba" dependencies = [ "serde_core", "serde_derive", @@ -844,29 +830,29 @@ dependencies = [ [[package]] name = "serde_core" -version = "1.0.228" +version = "1.0.229" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "41d385c7d4ca58e59fc732af25c3983b67ac852c1a25000afe1175de458b67ad" +checksum = "67dca2c9c51e58a4791a4b1ed58308b39c64224d349a935ab5039aa360942a48" dependencies = [ "serde_derive", ] [[package]] name = "serde_derive" -version = "1.0.228" +version = "1.0.229" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d540f220d3187173da220f885ab66608367b6574e925011a9353e4badda91d79" +checksum = "e7a5d71263a5a7d47b41f6b3f06ba276f10cc18b0931f1799f710578e2309348" dependencies = [ "proc-macro2", "quote", - "syn", + "syn 3.0.4", ] [[package]] name = "serde_json" -version = "1.0.149" +version = "1.0.151" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "83fc039473c5595ace860d8c4fafa220ff474b3fc6bfdb4293327f1a37e94d86" +checksum = "c841b55ecdae098c80dcae9cf767f6f8a0c2cdb3416bbef72181df4d0fe73f14" dependencies = [ "itoa", "memchr", @@ -886,9 +872,9 @@ dependencies = [ [[package]] name = "serdect" -version = "0.4.2" +version = "0.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9af4a3e75ebd5599b30d4de5768e00b5095d518a79fefc3ecbaf77e665d1ec06" +checksum = "66cf8fedced2fcf12406bcb34223dffb92eaf34908ede12fed414c82b7f00b3e" dependencies = [ "base16ct", "serde", @@ -954,9 +940,20 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.117" +version = "2.0.119" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e665b8803e7b1d2a727f4023456bbbbe74da67099c585258af0ad9c5013b9b99" +checksum = "872831b642d1a07999a962a351ed35b955ea2cfc8f3862091e2a240a84f17297" +dependencies = [ + "proc-macro2", + "quote", + "unicode-ident", +] + +[[package]] +name = "syn" +version = "3.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e6275cddf4610d1775e6d1fe9469b2e77d0f39fd98fb7450901b821e0c53649f" dependencies = [ "proc-macro2", "quote", @@ -970,7 +967,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "32497e9a4c7b38532efcdebeef879707aa9f794296a4f0244f6f69e9bc8574bd" dependencies = [ "fastrand", - "getrandom 0.4.2", + "getrandom 0.4.3", "once_cell", "rustix", "windows-sys", @@ -987,9 +984,9 @@ dependencies = [ [[package]] name = "toml_edit" -version = "0.25.11+spec-1.1.0" +version = "0.25.13+spec-1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b59c4d22ed448339746c59b905d24568fcbb3ab65a500494f7b8c3e97739f2b" +checksum = "6975367e4d2ef766d86af01ffad14b622fecc8d4357a998fbc4deb6e9bacaf9b" dependencies = [ "indexmap", "toml_datetime", @@ -999,18 +996,18 @@ dependencies = [ [[package]] name = "toml_parser" -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 = "a2abe9b86193656635d2411dc43050282ca48aa31c2451210f4202550afb7526" +checksum = "1d38ac1cf9b95face32296c0a3ede1fdc270627c9d9c02a7274dd6d960dc4d56" dependencies = [ "winnow", ] [[package]] name = "typenum" -version = "1.19.0" +version = "1.20.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "562d481066bde0658276a35467c4af00bdc6ee726305698a55b86e61d7ad82bb" +checksum = "b6f5e870be6c3b371b77fe0ee0bafb859fa4964b4404c27de1d380043c4dda20" [[package]] name = "unarray" @@ -1025,10 +1022,14 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e6e4313cd5fcd3dad5cafa179702e2b244f760991f45397d14d4ebf38247da75" [[package]] -name = "unicode-xid" -version = "0.2.6" +name = "universal-hash" +version = "0.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ebc1c04c71510c7f702b52b7c350734c9ff1295c464a03335b00bb84fc54f853" +checksum = "f4987bdc12753382e0bec4a65c50738ffaabc998b9cdd1f952fb5f39b0048a96" +dependencies = [ + "crypto-common", + "ctutils", +] [[package]] name = "wait-timeout" @@ -1041,56 +1042,13 @@ dependencies = [ [[package]] name = "wasip2" -version = "1.0.2+wasi-0.2.9" +version = "1.0.4+wasi-0.2.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9517f9239f02c069db75e65f174b3da828fe5f5b945c4dd26bd25d89c03ebcf5" +checksum = "b67efb37e106e55ce722a510d6b5f9c17f083e5fc79afc2badeb12cc313d9487" dependencies = [ "wit-bindgen", ] -[[package]] -name = "wasip3" -version = "0.4.0+wasi-0.3.0-rc-2026-01-06" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5428f8bf88ea5ddc08faddef2ac4a67e390b88186c703ce6dbd955e1c145aca5" -dependencies = [ - "wit-bindgen", -] - -[[package]] -name = "wasm-encoder" -version = "0.244.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "990065f2fe63003fe337b932cfb5e3b80e0b4d0f5ff650e6985b1048f62c8319" -dependencies = [ - "leb128fmt", - "wasmparser", -] - -[[package]] -name = "wasm-metadata" -version = "0.244.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bb0e353e6a2fbdc176932bbaab493762eb1255a7900fe0fea1a2f96c296cc909" -dependencies = [ - "anyhow", - "indexmap", - "wasm-encoder", - "wasmparser", -] - -[[package]] -name = "wasmparser" -version = "0.244.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "47b807c72e1bac69382b3a6fb3dbe8ea4c0ed87ff5629b8685ae6b9a611028fe" -dependencies = [ - "bitflags", - "hashbrown 0.15.5", - "indexmap", - "semver", -] - [[package]] name = "windows-link" version = "0.2.1" @@ -1108,129 +1066,47 @@ dependencies = [ [[package]] name = "winnow" -version = "1.0.1" +version = "1.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "09dac053f1cd375980747450bfc7250c264eaae0583872e845c0c7cd578872b5" +checksum = "23b97319f7b8343df12cc98938e5c3eb436064524c8d2b4e30a1d3a36eecdf81" dependencies = [ "memchr", ] [[package]] name = "wit-bindgen" -version = "0.51.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d7249219f66ced02969388cf2bb044a09756a083d0fab1e566056b04d9fbcaa5" -dependencies = [ - "wit-bindgen-rust-macro", -] - -[[package]] -name = "wit-bindgen-core" -version = "0.51.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ea61de684c3ea68cb082b7a88508a8b27fcc8b797d738bfc99a82facf1d752dc" -dependencies = [ - "anyhow", - "heck", - "wit-parser", -] - -[[package]] -name = "wit-bindgen-rust" -version = "0.51.0" +version = "0.57.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b7c566e0f4b284dd6561c786d9cb0142da491f46a9fbed79ea69cdad5db17f21" -dependencies = [ - "anyhow", - "heck", - "indexmap", - "prettyplease", - "syn", - "wasm-metadata", - "wit-bindgen-core", - "wit-component", -] - -[[package]] -name = "wit-bindgen-rust-macro" -version = "0.51.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0c0f9bfd77e6a48eccf51359e3ae77140a7f50b1e2ebfe62422d8afdaffab17a" -dependencies = [ - "anyhow", - "prettyplease", - "proc-macro2", - "quote", - "syn", - "wit-bindgen-core", - "wit-bindgen-rust", -] - -[[package]] -name = "wit-component" -version = "0.244.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9d66ea20e9553b30172b5e831994e35fbde2d165325bec84fc43dbf6f4eb9cb2" -dependencies = [ - "anyhow", - "bitflags", - "indexmap", - "log", - "serde", - "serde_derive", - "serde_json", - "wasm-encoder", - "wasm-metadata", - "wasmparser", - "wit-parser", -] - -[[package]] -name = "wit-parser" -version = "0.244.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ecc8ac4bc1dc3381b7f59c34f00b67e18f910c2c0f50015669dde7def656a736" -dependencies = [ - "anyhow", - "id-arena", - "indexmap", - "log", - "semver", - "serde", - "serde_derive", - "serde_json", - "unicode-xid", - "wasmparser", -] +checksum = "1ebf944e87a7c253233ad6766e082e3cd714b5d03812acc24c318f549614536e" [[package]] name = "zerocopy" -version = "0.8.48" +version = "0.8.56" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eed437bf9d6692032087e337407a86f04cd8d6a16a37199ed57949d415bd68e9" +checksum = "556764e583adb45a9f8d413c2a147fa7e8d821e48e12b14fd560b607998b75eb" dependencies = [ "zerocopy-derive", ] [[package]] name = "zerocopy-derive" -version = "0.8.48" +version = "0.8.56" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "70e3cd084b1788766f53af483dd21f93881ff30d7320490ec3ef7526d203bad4" +checksum = "f2ab42fc20575779bd240faa45f94a74256f755c0fa9e89f0ede20d91d0cdfc1" dependencies = [ "proc-macro2", "quote", - "syn", + "syn 2.0.119", ] [[package]] name = "zeroize" -version = "1.8.2" +version = "1.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b97154e67e32c85465826e8bcc1c59429aaaf107c1e4a9e53c8d8ccd5eff88d0" +checksum = "e13c156562582aa81c60cb29407084cdb54c4164760106ab78e6c5b0858cf64e" [[package]] name = "zmij" -version = "1.0.21" +version = "1.0.23" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b8848ee67ecc8aedbaf3e4122217aff892639231befc6a1b58d29fff4c2cabaa" +checksum = "29666d0abbfad1e3dc4dcf6144730dd3a3ab225bbbdac83319345b1b44ccfc1b" diff --git a/Cargo.toml b/Cargo.toml index ad39f2a6..9200d68d 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -73,6 +73,4 @@ debug = true [patch.crates-io] # pkcs1: split der objects into *Ref and *Owned - #2411 pkcs1 = { git = "https://github.com/dishmaker/formats.git", rev = "9279a2e6ee2a6757d10d29513c833c665e2220e6" } -pkcs8 = { git = "https://github.com/dishmaker/formats.git", rev = "9279a2e6ee2a6757d10d29513c833c665e2220e6" } -spki = { git = "https://github.com/dishmaker/formats.git", rev = "9279a2e6ee2a6757d10d29513c833c665e2220e6" } der = { git = "https://github.com/dishmaker/formats.git", rev = "9279a2e6ee2a6757d10d29513c833c665e2220e6" } From 90723951397471c1f025c89d82c25f9721194d58 Mon Sep 17 00:00:00 2001 From: dishmaker <141624503+dishmaker@users.noreply.github.com> Date: Sat, 29 Aug 2026 20:56:09 +0200 Subject: [PATCH 6/7] Cargo.lock: downgrade aes to 0.9.2 --- Cargo.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 96b8d7cb..941d6618 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -14,9 +14,9 @@ dependencies = [ [[package]] name = "aes" -version = "0.9.3" +version = "0.9.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "35f0f96ce78e38c3dc6d8948aa8163d06385be74000f3c7a95bf1eef35d3ea32" +checksum = "f8eb277bec05f56a0e0591f155a484cbd0f4f07ff2905051a48c72f004f7ed58" dependencies = [ "cipher", "cpubits", @@ -967,7 +967,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", From 085778964dccecac9c91f2fd6202a80ea081ea52 Mon Sep 17 00:00:00 2001 From: dishmaker <141624503+dishmaker@users.noreply.github.com> Date: Sun, 30 Aug 2026 00:14:46 +0200 Subject: [PATCH 7/7] bump der, spki, pkcs1 patch to use RsaPssParamsRef, RsaOaepParamsRef --- Cargo.lock | 7 +++---- Cargo.toml | 5 +++-- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 941d6618..d0e01c7a 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -224,7 +224,7 @@ dependencies = [ [[package]] name = "der" version = "0.8.1" -source = "git+https://github.com/dishmaker/formats.git?rev=9279a2e6ee2a6757d10d29513c833c665e2220e6#9279a2e6ee2a6757d10d29513c833c665e2220e6" +source = "git+https://github.com/dishmaker/formats.git?rev=fead111c91c645b45e3526414700165d836a940b#fead111c91c645b45e3526414700165d836a940b" dependencies = [ "const-oid", "pem-rfc7468", @@ -488,7 +488,7 @@ checksum = "a89322df9ebe1c1578d689c92318e070967d1042b512afbe49518723f4e6d5cd" [[package]] name = "pkcs1" version = "0.8.0-rc.4" -source = "git+https://github.com/dishmaker/formats.git?rev=9279a2e6ee2a6757d10d29513c833c665e2220e6#9279a2e6ee2a6757d10d29513c833c665e2220e6" +source = "git+https://github.com/dishmaker/formats.git?rev=fead111c91c645b45e3526414700165d836a940b#fead111c91c645b45e3526414700165d836a940b" dependencies = [ "der", "spki", @@ -931,8 +931,7 @@ checksum = "0c790de23124f9ab44544d7ac05d60440adc586479ce501c1d6d7da3cd8c9cf5" [[package]] name = "spki" version = "0.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1d9efca8738c78ee9484207732f728b1ef517bbb1833d6fc0879ca898a522f6f" +source = "git+https://github.com/dishmaker/formats.git?rev=fead111c91c645b45e3526414700165d836a940b#fead111c91c645b45e3526414700165d836a940b" dependencies = [ "base64ct", "der", diff --git a/Cargo.toml b/Cargo.toml index 9200d68d..fa8f957b 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -72,5 +72,6 @@ debug = true [patch.crates-io] # pkcs1: split der objects into *Ref and *Owned - #2411 -pkcs1 = { git = "https://github.com/dishmaker/formats.git", rev = "9279a2e6ee2a6757d10d29513c833c665e2220e6" } -der = { git = "https://github.com/dishmaker/formats.git", rev = "9279a2e6ee2a6757d10d29513c833c665e2220e6" } +pkcs1 = { git = "https://github.com/dishmaker/formats.git", rev = "fead111c91c645b45e3526414700165d836a940b" } +spki = { git = "https://github.com/dishmaker/formats.git", rev = "fead111c91c645b45e3526414700165d836a940b" } +der = { git = "https://github.com/dishmaker/formats.git", rev = "fead111c91c645b45e3526414700165d836a940b" }