From af016f0a80a2d34c78009e0e00fdcc24e42b4ea0 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 19 Aug 2026 17:19:55 +0000 Subject: [PATCH] chore(deps): bump pkcs8 from 0.10.2 to 0.11.0 (#11246) Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Jasper Hugo Co-authored-by: Douwe Osinga --- Cargo.lock | 99 +++++++++++++++++------- crates/goose-providers/Cargo.toml | 7 +- crates/goose-providers/src/api_client.rs | 18 +++-- 3 files changed, 84 insertions(+), 40 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 36d1ceb82..052bf498c 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2427,8 +2427,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "961b955a666e25ee5a1091d219128d6e6401e3dab84efb1a2bf6b4035d797b39" dependencies = [ "crmf", - "der", - "spki", + "der 0.7.10", + "spki 0.7.3", "x509-cert", ] @@ -2439,8 +2439,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7b77c319abfd5219629c45c34c89ba945ed3c5e49fcde9d16b6c3885f118a730" dependencies = [ "const-oid 0.9.6", - "der", - "spki", + "der 0.7.10", + "spki 0.7.3", "x509-cert", ] @@ -2756,8 +2756,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "36fe21b96d5b87f5de4b5b7202ec41c00110ac817ce6728fe75fb2fe5962ed92" dependencies = [ "cms", - "der", - "spki", + "der 0.7.10", + "spki 0.7.3", "x509-cert", ] @@ -3525,6 +3525,16 @@ dependencies = [ "zeroize", ] +[[package]] +name = "der" +version = "0.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a69dedd701da44b0536442edf09c81a64b0ab97a7a4a5e3d1971f00027cbc63d" +dependencies = [ + "const-oid 0.10.2", + "zeroize", +] + [[package]] name = "der-parser" version = "10.0.0" @@ -3835,12 +3845,12 @@ version = "0.16.9" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ee27f32b5c5292967d2d4a9d7f1e0b0aed2c15daded5a60300e4abb9d8020bca" dependencies = [ - "der", + "der 0.7.10", "digest 0.10.7", "elliptic-curve", "rfc6979", "signature", - "spki", + "spki 0.7.3", ] [[package]] @@ -3858,7 +3868,7 @@ version = "2.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "115531babc129696a58c64a4fef0a8bf9e9698629fb97e9e40767d235cfbcd53" dependencies = [ - "pkcs8", + "pkcs8 0.10.2", "signature", ] @@ -3899,9 +3909,9 @@ dependencies = [ "group", "hkdf 0.12.4", "pem-rfc7468", - "pkcs8", + "pkcs8 0.10.2", "rand_core 0.6.4", - "sec1", + "sec1 0.7.3", "subtle", "zeroize", ] @@ -5223,11 +5233,10 @@ dependencies = [ "goose-provider-types", "include_dir", "pem 4.0.0", - "pkcs1", - "pkcs8", + "pkcs8 0.11.0", "reqwest 0.13.4", "rmcp 3.1.2", - "sec1", + "sec1 0.8.1", "serde", "serde_json", "tempfile", @@ -8269,9 +8278,9 @@ version = "0.7.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c8ffb9f10fa047879315e6625af03c164b16962a5368d724ed16323b68ace47f" dependencies = [ - "der", - "pkcs8", - "spki", + "der 0.7.10", + "pkcs8 0.10.2", + "spki 0.7.3", ] [[package]] @@ -8280,8 +8289,18 @@ version = "0.10.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f950b2377845cebe5cf8b5165cb3cc1a5e0fa5cfa3e1f7f55707d8fd82e0a7b7" dependencies = [ - "der", - "spki", + "der 0.7.10", + "spki 0.7.3", +] + +[[package]] +name = "pkcs8" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "451913da69c775a56034ea8d9003d27ee8948e12443eae7c038ba100a4f21cb7" +dependencies = [ + "der 0.8.1", + "spki 0.8.0", ] [[package]] @@ -9236,10 +9255,10 @@ dependencies = [ "num-integer", "num-traits", "pkcs1", - "pkcs8", + "pkcs8 0.10.2", "rand_core 0.6.4", "signature", - "spki", + "spki 0.7.3", "subtle", "zeroize", ] @@ -9694,13 +9713,23 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d3e97a565f76233a6003f9f5c54be1d9c5bdfa3eccfb189469f11ec4901c47dc" dependencies = [ "base16ct", - "der", + "der 0.7.10", "generic-array", - "pkcs8", + "pkcs8 0.10.2", "subtle", "zeroize", ] +[[package]] +name = "sec1" +version = "0.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d56d437c2f19203ce5f7122e507831de96f3d2d4d3be5af44a0b0a09d8a80e4d" +dependencies = [ + "der 0.8.1", + "zeroize", +] + [[package]] name = "secp256k1" version = "0.29.1" @@ -10121,14 +10150,14 @@ dependencies = [ "aws-lc-rs", "base64 0.22.1", "const-oid 0.9.6", - "der", + "der 0.7.10", "digest 0.10.7", "pem 3.0.6", "rand_core 0.9.5", "sha2 0.10.9", "signature", "sigstore-types", - "spki", + "spki 0.7.3", "thiserror 2.0.20", "tracing", "x509-cert", @@ -10195,7 +10224,7 @@ dependencies = [ "cmpv2", "cms", "const-oid 0.9.6", - "der", + "der 0.7.10", "hex", "jiff", "rand 0.9.4", @@ -10421,7 +10450,17 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d91ed6c858b01f942cd56b37a94b3e0a1798290327d1236e4d9cf4eaca44d29d" dependencies = [ "base64ct", - "der", + "der 0.7.10", +] + +[[package]] +name = "spki" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1d9efca8738c78ee9484207732f728b1ef517bbb1833d6fc0879ca898a522f6f" +dependencies = [ + "base64ct", + "der 0.8.1", ] [[package]] @@ -13741,10 +13780,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1301e935010a701ae5f8655edc0ad17c44bad3ac5ce8c39185f75453b720ae94" dependencies = [ "const-oid 0.9.6", - "der", + "der 0.7.10", "sha1 0.10.6", "signature", - "spki", + "spki 0.7.3", "tls_codec", ] @@ -13775,7 +13814,7 @@ checksum = "f5ceece934a21607055b7ac5c25adb56a2ff559804b10705dc674d1d838c15e1" dependencies = [ "cmpv2", "cms", - "der", + "der 0.7.10", ] [[package]] diff --git a/crates/goose-providers/Cargo.toml b/crates/goose-providers/Cargo.toml index b88d2685d..e233b3476 100644 --- a/crates/goose-providers/Cargo.toml +++ b/crates/goose-providers/Cargo.toml @@ -23,7 +23,6 @@ rustls-tls = [ ] native-tls = [ "dep:pem", - "dep:pkcs1", "dep:pkcs8", "dep:sec1", "reqwest/native-tls", @@ -49,10 +48,8 @@ tokio-util = { workspace = true, features = ["compat"] } url = { workspace = true } urlencoding = { workspace = true } pem = { version = "4.0.0", default-features = false, features = ["std"], optional = true } -pkcs1 = { version = "0.7.5", default-features = false, features = ["pkcs8", "std"], optional = true } -# v0.10 matches the der/const-oid series used by sec1 v0.7 and pkcs1 v0.7; upgrading to v0.11 causes type mismatches across those crates. -pkcs8 = { version = "0.10", default-features = false, features = ["alloc", "std"], optional = true } -sec1 = { version = "0.7", default-features = false, features = ["der", "pkcs8", "std"], optional = true } +pkcs8 = { version = "0.11", default-features = false, features = ["alloc", "std"], optional = true } +sec1 = { version = "0.8", default-features = false, features = ["der", "std"], optional = true } include_dir = { workspace = true } [dev-dependencies] diff --git a/crates/goose-providers/src/api_client.rs b/crates/goose-providers/src/api_client.rs index 20d8000cc..39e3bd19d 100644 --- a/crates/goose-providers/src/api_client.rs +++ b/crates/goose-providers/src/api_client.rs @@ -157,9 +157,15 @@ impl Default for TlsConfig { /// /// Note: the rustls code path (`Identity::from_pem`) accepts all formats natively, /// so this conversion is only needed for native-tls. +#[cfg(feature = "native-tls")] +const RSA_ALGORITHM_ID: pkcs8::AlgorithmIdentifierRef<'static> = pkcs8::AlgorithmIdentifierRef { + oid: pkcs8::ObjectIdentifier::new_unwrap("1.2.840.113549.1.1.1"), + parameters: Some(pkcs8::der::asn1::AnyRef::NULL), +}; + #[cfg(feature = "native-tls")] fn convert_key_to_pkcs8_pem(key_pem_str: &str) -> Result { - use pkcs8::der::{Decode, Encode}; + use pkcs8::der::{asn1::OctetStringRef, Decode, Encode}; let parsed = pem::parse(key_pem_str).map_err(|e| anyhow::anyhow!("Failed to parse PEM key: {}", e))?; @@ -167,7 +173,8 @@ fn convert_key_to_pkcs8_pem(key_pem_str: &str) -> Result { match parsed.tag() { "PRIVATE KEY" => Ok(key_pem_str.to_string()), "RSA PRIVATE KEY" => { - let info = pkcs8::PrivateKeyInfo::new(pkcs1::ALGORITHM_ID, parsed.contents()); + let private_key = OctetStringRef::new(parsed.contents())?; + let info = pkcs8::PrivateKeyInfoRef::new(RSA_ALGORITHM_ID, private_key); let der_bytes = info .to_der() .map_err(|e| anyhow::anyhow!("Failed to encode PKCS#8: {}", e))?; @@ -189,7 +196,8 @@ fn convert_key_to_pkcs8_pem(key_pem_str: &str) -> Result { oid: sec1::ALGORITHM_OID, parameters: Some((&curve_oid).into()), }; - let info = pkcs8::PrivateKeyInfo::new(algorithm, parsed.contents()); + let private_key = OctetStringRef::new(parsed.contents())?; + let info = pkcs8::PrivateKeyInfoRef::new(algorithm, private_key); let der_bytes = info .to_der() .map_err(|e| anyhow::anyhow!("Failed to encode PKCS#8: {}", e))?; @@ -666,7 +674,7 @@ ShGoCNbfNS+COlPMRAujyDlATZcLs9p4tA== let re_parsed = pem::parse(&result).unwrap(); assert_eq!(re_parsed.tag(), "PRIVATE KEY"); use pkcs8::der::Decode; - pkcs8::PrivateKeyInfo::from_der(re_parsed.contents()).unwrap(); + pkcs8::PrivateKeyInfoRef::from_der(re_parsed.contents()).unwrap(); } #[test] @@ -679,7 +687,7 @@ ShGoCNbfNS+COlPMRAujyDlATZcLs9p4tA== let re_parsed = pem::parse(&result).unwrap(); assert_eq!(re_parsed.tag(), "PRIVATE KEY"); use pkcs8::der::Decode; - pkcs8::PrivateKeyInfo::from_der(re_parsed.contents()).unwrap(); + pkcs8::PrivateKeyInfoRef::from_der(re_parsed.contents()).unwrap(); } #[test]