From a928601f31fe71b32a786d43b6646bce36544c45 Mon Sep 17 00:00:00 2001 From: Yuki Okushi Date: Sun, 21 Jun 2026 15:49:28 +0900 Subject: [PATCH] chore: update `rcgen` to 0.14 (#4113) --- Cargo.lock | 151 ++++++++++++++++++++++++++++- actix-http/Cargo.toml | 2 +- actix-http/examples/tls_rustls.rs | 4 +- actix-http/examples/ws.rs | 4 +- actix-http/tests/test_openssl.rs | 4 +- actix-http/tests/test_rustls.rs | 4 +- actix-web/Cargo.toml | 2 +- actix-web/tests/test_httpserver.rs | 4 +- actix-web/tests/test_server.rs | 8 +- awc/Cargo.toml | 2 +- awc/tests/test_connector.rs | 4 +- awc/tests/test_rustls_client.rs | 4 +- awc/tests/test_ssl_client.rs | 4 +- 13 files changed, 169 insertions(+), 28 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 3f3905a4b..66d6fb11b 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -534,6 +534,45 @@ version = "1.0.102" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7f202df86484c868dbad7eaa557ef785d5c66295e41b460ef922eca0723b842c" +[[package]] +name = "asn1-rs" +version = "0.7.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b7f43a50ac4fdca5df8e885c21b835997f0a1cdee65494a6847694a98652d9d8" +dependencies = [ + "asn1-rs-derive", + "asn1-rs-impl", + "displaydoc", + "nom", + "num-traits", + "rusticata-macros", + "thiserror 2.0.18", + "time", +] + +[[package]] +name = "asn1-rs-derive" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3109e49b1e4909e9db6515a30c633684d68cdeaa252f215214cb4fa1a5bfee2c" +dependencies = [ + "proc-macro2", + "quote", + "syn", + "synstructure", +] + +[[package]] +name = "asn1-rs-impl" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7b18050c2cd6fe86c3a76584ef5e0baf286d038cda203eb6223df2cc413565f7" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "assert_matches" version = "1.5.0" @@ -662,6 +701,15 @@ version = "0.22.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "72b3254f16251a8381aa12e40e3c4d2f0199f8c6508fbecb9d91f575e0fbb8c6" +[[package]] +name = "bit-vec" +version = "0.9.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b71798fca2c1fe1086445a7258a4bc81e6e49dcd24c8d0dd9a1e57395b603f51" +dependencies = [ + "serde", +] + [[package]] name = "bitflags" version = "1.3.2" @@ -1138,6 +1186,20 @@ version = "2.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d7a1e2f27636f116493b8b860f5546edb47c8d8f8ea73e1d2a20be88e28d1fea" +[[package]] +name = "der-parser" +version = "10.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "07da5016415d5a3c4dd39b11ed26f915f52fc4e0dc197d87908bc916e51bc1a6" +dependencies = [ + "asn1-rs", + "displaydoc", + "nom", + "num-bigint", + "num-traits", + "rusticata-macros", +] + [[package]] name = "deranged" version = "0.5.8" @@ -2008,6 +2070,12 @@ version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d4345964bb142484797b161f473a503a434de77149dd8c7427788c6e13379388" +[[package]] +name = "lazy_static" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bbd2bcb4c963f2ddae06a2efc7e9f3591312473c50c6685e1f298068316e66fe" + [[package]] name = "leb128fmt" version = "0.1.0" @@ -2086,6 +2154,12 @@ dependencies = [ "unicase", ] +[[package]] +name = "minimal-lexical" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a" + [[package]] name = "miniz_oxide" version = "0.8.9" @@ -2148,12 +2222,41 @@ version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "27b02d87554356db9e9a873add8782d4ea6e3e58ea071a9adb9a2e8ddb884a8b" +[[package]] +name = "nom" +version = "7.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d273983c5a657a70a3e8f2a01329822f3b8c8172b73826411a55751e404a0a4a" +dependencies = [ + "memchr", + "minimal-lexical", +] + +[[package]] +name = "num-bigint" +version = "0.4.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a5e44f723f1133c9deac646763579fdb3ac745e418f2a7af9cd0c431da1f20b9" +dependencies = [ + "num-integer", + "num-traits", +] + [[package]] name = "num-conv" version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "521739c6d2bac4aa25192232afe6841231376b2b26d4d9fae5ecf8ca5772e441" +[[package]] +name = "num-integer" +version = "0.1.46" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7969661fd2958a5cb096e56c8e1ad0444ac2bbcd0061bd28660485a44879858f" +dependencies = [ + "num-traits", +] + [[package]] name = "num-traits" version = "0.2.19" @@ -2173,6 +2276,15 @@ dependencies = [ "libc", ] +[[package]] +name = "oid-registry" +version = "0.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "12f40cff3dde1b6087cc5d5f5d4d65712f34016a03ed60e9c08dcc392736b5b7" +dependencies = [ + "asn1-rs", +] + [[package]] name = "once_cell" version = "1.21.4" @@ -2524,14 +2636,15 @@ dependencies = [ [[package]] name = "rcgen" -version = "0.13.2" +version = "0.14.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "75e669e5202259b5314d1ea5397316ad400819437857b90861765f24c4cf80a2" +checksum = "57f6d249aad744e274e682777a50283a225a32705394ee6d5fcc01efa25e4055" dependencies = [ "pem", "ring 0.17.14", "rustls-pki-types", "time", + "x509-parser", "yasna", ] @@ -2623,6 +2736,15 @@ dependencies = [ "semver", ] +[[package]] +name = "rusticata-macros" +version = "4.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "faf0c4a6ece9950b9abdb62b1cfcf2a68b3b67a10ba445b3bb85be2a293d0632" +dependencies = [ + "nom", +] + [[package]] name = "rustix" version = "1.1.4" @@ -3974,11 +4096,30 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1ffae5123b2d3fc086436f8834ae3ab053a283cfac8fe0a0b8eaae044768a4c4" [[package]] -name = "yasna" -version = "0.5.2" +name = "x509-parser" +version = "0.18.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e17bb3549cc1321ae1296b9cdc2698e2b6cb1992adfa19a8c72e5b7a738f44cd" +checksum = "d43b0f71ce057da06bc0851b23ee24f3f86190b07203dd8f567d0b706a185202" dependencies = [ + "asn1-rs", + "data-encoding", + "der-parser", + "lazy_static", + "nom", + "oid-registry", + "ring 0.17.14", + "rusticata-macros", + "thiserror 2.0.18", + "time", +] + +[[package]] +name = "yasna" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b5f6765e852b9b4dc8e2a76843e4d64d1cea8e79bcde0b6901aea8e7c7f08282" +dependencies = [ + "bit-vec", "time", ] diff --git a/actix-http/Cargo.toml b/actix-http/Cargo.toml index 502768f29..bd6a726de 100644 --- a/actix-http/Cargo.toml +++ b/actix-http/Cargo.toml @@ -148,7 +148,7 @@ env_logger = "0.11" futures-util = { version = "0.3.17", default-features = false, features = ["alloc"] } memchr = "2.4" once_cell = "1.21" -rcgen = "0.13" +rcgen = "0.14" regex = "1.3" rustls-pki-types = "1.13.1" rustversion = "1" diff --git a/actix-http/examples/tls_rustls.rs b/actix-http/examples/tls_rustls.rs index a1db91b12..fcfd8d96b 100644 --- a/actix-http/examples/tls_rustls.rs +++ b/actix-http/examples/tls_rustls.rs @@ -43,11 +43,11 @@ async fn main() -> io::Result<()> { } fn rustls_config() -> rustls::ServerConfig { - let rcgen::CertifiedKey { cert, key_pair } = + let rcgen::CertifiedKey { cert, signing_key } = rcgen::generate_simple_self_signed(["localhost".to_owned()]).unwrap(); let cert_chain = vec![cert.der().clone()]; let key_der = rustls_pki_types::PrivateKeyDer::Pkcs8( - rustls_pki_types::PrivatePkcs8KeyDer::from(key_pair.serialize_der()), + rustls_pki_types::PrivatePkcs8KeyDer::from(signing_key.serialize_der()), ); let mut config = rustls::ServerConfig::builder() diff --git a/actix-http/examples/ws.rs b/actix-http/examples/ws.rs index 9750a1a2a..6a6f609b0 100644 --- a/actix-http/examples/ws.rs +++ b/actix-http/examples/ws.rs @@ -82,11 +82,11 @@ impl Stream for Heartbeat { } fn tls_config() -> rustls::ServerConfig { - let rcgen::CertifiedKey { cert, key_pair } = + let rcgen::CertifiedKey { cert, signing_key } = rcgen::generate_simple_self_signed(["localhost".to_owned()]).unwrap(); let cert_chain = vec![cert.der().clone()]; let key_der = rustls_pki_types::PrivateKeyDer::Pkcs8( - rustls_pki_types::PrivatePkcs8KeyDer::from(key_pair.serialize_der()), + rustls_pki_types::PrivatePkcs8KeyDer::from(signing_key.serialize_der()), ); let mut config = rustls::ServerConfig::builder() diff --git a/actix-http/tests/test_openssl.rs b/actix-http/tests/test_openssl.rs index 977e8b6cb..f6d040761 100644 --- a/actix-http/tests/test_openssl.rs +++ b/actix-http/tests/test_openssl.rs @@ -42,10 +42,10 @@ where } fn tls_config() -> SslAcceptor { - let rcgen::CertifiedKey { cert, key_pair } = + let rcgen::CertifiedKey { cert, signing_key } = rcgen::generate_simple_self_signed(["localhost".to_owned()]).unwrap(); let cert_file = cert.pem(); - let key_file = key_pair.serialize_pem(); + let key_file = signing_key.serialize_pem(); let cert = X509::from_pem(cert_file.as_bytes()).unwrap(); let key = PKey::private_key_from_pem(key_file.as_bytes()).unwrap(); diff --git a/actix-http/tests/test_rustls.rs b/actix-http/tests/test_rustls.rs index d29e0cbd0..b0f459e19 100644 --- a/actix-http/tests/test_rustls.rs +++ b/actix-http/tests/test_rustls.rs @@ -54,10 +54,10 @@ where } fn tls_config_with_alpn(protocols: &[&[u8]]) -> RustlsServerConfig { - let rcgen::CertifiedKey { cert, key_pair } = + let rcgen::CertifiedKey { cert, signing_key } = rcgen::generate_simple_self_signed(["localhost".to_owned()]).unwrap(); let cert_chain = vec![cert.der().clone()]; - let key_der = PrivateKeyDer::Pkcs8(PrivatePkcs8KeyDer::from(key_pair.serialize_der())); + let key_der = PrivateKeyDer::Pkcs8(PrivatePkcs8KeyDer::from(signing_key.serialize_der())); let mut config = RustlsServerConfig::builder() .with_no_client_auth() diff --git a/actix-web/Cargo.toml b/actix-web/Cargo.toml index c51d0d703..9cc91bc14 100644 --- a/actix-web/Cargo.toml +++ b/actix-web/Cargo.toml @@ -181,7 +181,7 @@ env_logger = "0.11" flate2 = "1.0.13" futures-util = { version = "0.3.17", default-features = false, features = ["std"] } rand = "0.10.1" -rcgen = "0.13" +rcgen = "0.14" rustls-pki-types = "1.13.1" serde = { version = "1", features = ["derive"] } static_assertions = "1" diff --git a/actix-web/tests/test_httpserver.rs b/actix-web/tests/test_httpserver.rs index 403b66d83..f1f40c945 100644 --- a/actix-web/tests/test_httpserver.rs +++ b/actix-web/tests/test_httpserver.rs @@ -157,10 +157,10 @@ fn ssl_acceptor() -> openssl::ssl::SslAcceptorBuilder { x509::X509, }; - let rcgen::CertifiedKey { cert, key_pair } = + let rcgen::CertifiedKey { cert, signing_key } = rcgen::generate_simple_self_signed(["localhost".to_owned()]).unwrap(); let cert_file = cert.pem(); - let key_file = key_pair.serialize_pem(); + let key_file = signing_key.serialize_pem(); let cert = X509::from_pem(cert_file.as_bytes()).unwrap(); let key = PKey::private_key_from_pem(key_file.as_bytes()).unwrap(); diff --git a/actix-web/tests/test_server.rs b/actix-web/tests/test_server.rs index 343b7f104..321114b3c 100644 --- a/actix-web/tests/test_server.rs +++ b/actix-web/tests/test_server.rs @@ -34,10 +34,10 @@ const STR: &str = const_str::repeat!(S, 100); #[cfg(feature = "openssl")] fn openssl_config() -> SslAcceptor { - let rcgen::CertifiedKey { cert, key_pair } = + let rcgen::CertifiedKey { cert, signing_key } = rcgen::generate_simple_self_signed(["localhost".to_owned()]).unwrap(); let cert_file = cert.pem(); - let key_file = key_pair.serialize_pem(); + let key_file = signing_key.serialize_pem(); let cert = X509::from_pem(cert_file.as_bytes()).unwrap(); let key = PKey::private_key_from_pem(key_file.as_bytes()).unwrap(); @@ -694,10 +694,10 @@ mod plus_rustls { use super::*; fn tls_config() -> RustlsServerConfig { - let rcgen::CertifiedKey { cert, key_pair } = + let rcgen::CertifiedKey { cert, signing_key } = rcgen::generate_simple_self_signed(["localhost".to_owned()]).unwrap(); let cert_chain = vec![cert.der().clone()]; - let key_der = PrivateKeyDer::Pkcs8(PrivatePkcs8KeyDer::from(key_pair.serialize_der())); + let key_der = PrivateKeyDer::Pkcs8(PrivatePkcs8KeyDer::from(signing_key.serialize_der())); RustlsServerConfig::builder() .with_no_client_auth() diff --git a/awc/Cargo.toml b/awc/Cargo.toml index 230a11dfe..a27345165 100644 --- a/awc/Cargo.toml +++ b/awc/Cargo.toml @@ -148,7 +148,7 @@ env_logger = "0.11" flate2 = "1.0.13" futures-util = { version = "0.3.17", default-features = false } static_assertions = "1.1" -rcgen = "0.13" +rcgen = "0.14" rustls-pki-types = "1.13.1" tokio = { version = "1.38.2", features = ["rt-multi-thread", "macros"] } zstd = "0.13" diff --git a/awc/tests/test_connector.rs b/awc/tests/test_connector.rs index a8b7e98c1..c12c48403 100644 --- a/awc/tests/test_connector.rs +++ b/awc/tests/test_connector.rs @@ -13,10 +13,10 @@ use openssl::{ }; fn tls_config() -> SslAcceptor { - let rcgen::CertifiedKey { cert, key_pair } = + let rcgen::CertifiedKey { cert, signing_key } = rcgen::generate_simple_self_signed(["localhost".to_owned()]).unwrap(); let cert_file = cert.pem(); - let key_file = key_pair.serialize_pem(); + let key_file = signing_key.serialize_pem(); let cert = X509::from_pem(cert_file.as_bytes()).unwrap(); let key = PKey::private_key_from_pem(key_file.as_bytes()).unwrap(); diff --git a/awc/tests/test_rustls_client.rs b/awc/tests/test_rustls_client.rs index 9ce6bd31f..bf3b55b6e 100644 --- a/awc/tests/test_rustls_client.rs +++ b/awc/tests/test_rustls_client.rs @@ -17,10 +17,10 @@ use rustls::{pki_types::ServerName, ClientConfig, ServerConfig}; use rustls_pki_types::{CertificateDer, PrivateKeyDer, PrivatePkcs8KeyDer}; fn tls_config() -> ServerConfig { - let rcgen::CertifiedKey { cert, key_pair } = + let rcgen::CertifiedKey { cert, signing_key } = rcgen::generate_simple_self_signed(["localhost".to_owned()]).unwrap(); let cert_chain = vec![cert.der().clone()]; - let key_der = PrivateKeyDer::Pkcs8(PrivatePkcs8KeyDer::from(key_pair.serialize_der())); + let key_der = PrivateKeyDer::Pkcs8(PrivatePkcs8KeyDer::from(signing_key.serialize_der())); ServerConfig::builder() .with_no_client_auth() diff --git a/awc/tests/test_ssl_client.rs b/awc/tests/test_ssl_client.rs index 85fb756f4..93722be9a 100644 --- a/awc/tests/test_ssl_client.rs +++ b/awc/tests/test_ssl_client.rs @@ -27,10 +27,10 @@ use openssl::{ }; fn tls_config() -> SslAcceptor { - let rcgen::CertifiedKey { cert, key_pair } = + let rcgen::CertifiedKey { cert, signing_key } = rcgen::generate_simple_self_signed(["localhost".to_owned()]).unwrap(); let cert_file = cert.pem(); - let key_file = key_pair.serialize_pem(); + let key_file = signing_key.serialize_pem(); let cert = X509::from_pem(cert_file.as_bytes()).unwrap(); let key = PKey::private_key_from_pem(key_file.as_bytes()).unwrap();