mirror of
https://github.com/neondatabase/neon.git
synced 2025-12-26 23:59:58 +00:00
update rustls (#7048)
## Summary of changes Update rustls from 0.21 to 0.22. reqwest/tonic/aws-smithy still use rustls 0.21. no upgrade route available yet.
This commit is contained in:
293
Cargo.lock
generated
293
Cargo.lock
generated
@@ -241,7 +241,7 @@ checksum = "16e62a023e7c117e27523144c5d2459f4397fcc3cab0085af8e2224f643a0193"
|
|||||||
dependencies = [
|
dependencies = [
|
||||||
"proc-macro2",
|
"proc-macro2",
|
||||||
"quote",
|
"quote",
|
||||||
"syn 2.0.32",
|
"syn 2.0.52",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
@@ -252,7 +252,7 @@ checksum = "b9ccdd8f2a161be9bd5c023df56f1b2a0bd1d83872ae53b71a84a12c9bf6e842"
|
|||||||
dependencies = [
|
dependencies = [
|
||||||
"proc-macro2",
|
"proc-macro2",
|
||||||
"quote",
|
"quote",
|
||||||
"syn 2.0.32",
|
"syn 2.0.52",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
@@ -626,7 +626,7 @@ dependencies = [
|
|||||||
"once_cell",
|
"once_cell",
|
||||||
"pin-project-lite",
|
"pin-project-lite",
|
||||||
"pin-utils",
|
"pin-utils",
|
||||||
"rustls",
|
"rustls 0.21.9",
|
||||||
"tokio",
|
"tokio",
|
||||||
"tracing",
|
"tracing",
|
||||||
]
|
]
|
||||||
@@ -907,6 +907,16 @@ version = "1.6.0"
|
|||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "8c3c1a368f70d6cf7302d78f8f7093da241fb8e8807c05cc9e51a125895a6d5b"
|
checksum = "8c3c1a368f70d6cf7302d78f8f7093da241fb8e8807c05cc9e51a125895a6d5b"
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "bcder"
|
||||||
|
version = "0.7.4"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "c627747a6774aab38beb35990d88309481378558875a41da1a4b2e373c906ef0"
|
||||||
|
dependencies = [
|
||||||
|
"bytes",
|
||||||
|
"smallvec",
|
||||||
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "bincode"
|
name = "bincode"
|
||||||
version = "1.3.3"
|
version = "1.3.3"
|
||||||
@@ -935,7 +945,7 @@ dependencies = [
|
|||||||
"regex",
|
"regex",
|
||||||
"rustc-hash",
|
"rustc-hash",
|
||||||
"shlex",
|
"shlex",
|
||||||
"syn 2.0.32",
|
"syn 2.0.52",
|
||||||
"which",
|
"which",
|
||||||
]
|
]
|
||||||
|
|
||||||
@@ -986,9 +996,9 @@ checksum = "14c189c53d098945499cdfa7ecc63567cf3886b3332b312a5b4585d8d3a6a610"
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "bytes"
|
name = "bytes"
|
||||||
version = "1.4.0"
|
version = "1.5.0"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "89b2fd2a0dcf38d7971e2194b6b6eebab45ae01067456a7fd93d5547a61b70be"
|
checksum = "a2bd12c1caf447e69cd4528f47f94d203fd2582878ecb9e9465484c4148a8223"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"serde",
|
"serde",
|
||||||
]
|
]
|
||||||
@@ -1149,7 +1159,7 @@ dependencies = [
|
|||||||
"heck",
|
"heck",
|
||||||
"proc-macro2",
|
"proc-macro2",
|
||||||
"quote",
|
"quote",
|
||||||
"syn 2.0.32",
|
"syn 2.0.52",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
@@ -1574,7 +1584,7 @@ dependencies = [
|
|||||||
"proc-macro2",
|
"proc-macro2",
|
||||||
"quote",
|
"quote",
|
||||||
"strsim",
|
"strsim",
|
||||||
"syn 2.0.32",
|
"syn 2.0.52",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
@@ -1585,7 +1595,7 @@ checksum = "29a358ff9f12ec09c3e61fef9b5a9902623a695a46a917b07f269bff1445611a"
|
|||||||
dependencies = [
|
dependencies = [
|
||||||
"darling_core",
|
"darling_core",
|
||||||
"quote",
|
"quote",
|
||||||
"syn 2.0.32",
|
"syn 2.0.52",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
@@ -1627,6 +1637,16 @@ dependencies = [
|
|||||||
"zeroize",
|
"zeroize",
|
||||||
]
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "der"
|
||||||
|
version = "0.7.8"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "fffa369a668c8af7dbf8b5e56c9f744fbd399949ed171606040001947de40b1c"
|
||||||
|
dependencies = [
|
||||||
|
"const-oid",
|
||||||
|
"zeroize",
|
||||||
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "der-parser"
|
name = "der-parser"
|
||||||
version = "8.2.0"
|
version = "8.2.0"
|
||||||
@@ -1681,7 +1701,7 @@ dependencies = [
|
|||||||
"diesel_table_macro_syntax",
|
"diesel_table_macro_syntax",
|
||||||
"proc-macro2",
|
"proc-macro2",
|
||||||
"quote",
|
"quote",
|
||||||
"syn 2.0.32",
|
"syn 2.0.52",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
@@ -1701,7 +1721,7 @@ version = "0.1.0"
|
|||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "fc5557efc453706fed5e4fa85006fe9817c224c3f480a34c7e5959fd700921c5"
|
checksum = "fc5557efc453706fed5e4fa85006fe9817c224c3f480a34c7e5959fd700921c5"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"syn 2.0.32",
|
"syn 2.0.52",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
@@ -1723,7 +1743,7 @@ checksum = "487585f4d0c6655fe74905e2504d8ad6908e4db67f744eb140876906c2f3175d"
|
|||||||
dependencies = [
|
dependencies = [
|
||||||
"proc-macro2",
|
"proc-macro2",
|
||||||
"quote",
|
"quote",
|
||||||
"syn 2.0.32",
|
"syn 2.0.52",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
@@ -1747,10 +1767,10 @@ version = "0.14.8"
|
|||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "413301934810f597c1d19ca71c8710e99a3f1ba28a0d2ebc01551a2daeea3c5c"
|
checksum = "413301934810f597c1d19ca71c8710e99a3f1ba28a0d2ebc01551a2daeea3c5c"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"der",
|
"der 0.6.1",
|
||||||
"elliptic-curve",
|
"elliptic-curve",
|
||||||
"rfc6979",
|
"rfc6979",
|
||||||
"signature",
|
"signature 1.6.4",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
@@ -1767,7 +1787,7 @@ checksum = "e7bb888ab5300a19b8e5bceef25ac745ad065f3c9f7efc6de1b91958110891d3"
|
|||||||
dependencies = [
|
dependencies = [
|
||||||
"base16ct",
|
"base16ct",
|
||||||
"crypto-bigint 0.4.9",
|
"crypto-bigint 0.4.9",
|
||||||
"der",
|
"der 0.6.1",
|
||||||
"digest",
|
"digest",
|
||||||
"ff",
|
"ff",
|
||||||
"generic-array",
|
"generic-array",
|
||||||
@@ -1827,7 +1847,7 @@ dependencies = [
|
|||||||
"darling",
|
"darling",
|
||||||
"proc-macro2",
|
"proc-macro2",
|
||||||
"quote",
|
"quote",
|
||||||
"syn 2.0.32",
|
"syn 2.0.52",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
@@ -2087,7 +2107,7 @@ checksum = "87750cf4b7a4c0625b1529e4c543c2182106e4dedc60a2a6455e00d212c489ac"
|
|||||||
dependencies = [
|
dependencies = [
|
||||||
"proc-macro2",
|
"proc-macro2",
|
||||||
"quote",
|
"quote",
|
||||||
"syn 2.0.32",
|
"syn 2.0.52",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
@@ -2470,10 +2490,10 @@ dependencies = [
|
|||||||
"http 0.2.9",
|
"http 0.2.9",
|
||||||
"hyper",
|
"hyper",
|
||||||
"log",
|
"log",
|
||||||
"rustls",
|
"rustls 0.21.9",
|
||||||
"rustls-native-certs",
|
"rustls-native-certs",
|
||||||
"tokio",
|
"tokio",
|
||||||
"tokio-rustls",
|
"tokio-rustls 0.24.0",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
@@ -2711,7 +2731,7 @@ checksum = "5c7ea04a7c5c055c175f189b6dc6ba036fd62306b58c66c9f6389036c503a3f4"
|
|||||||
dependencies = [
|
dependencies = [
|
||||||
"base64 0.21.1",
|
"base64 0.21.1",
|
||||||
"js-sys",
|
"js-sys",
|
||||||
"pem 3.0.3",
|
"pem",
|
||||||
"ring 0.17.6",
|
"ring 0.17.6",
|
||||||
"serde",
|
"serde",
|
||||||
"serde_json",
|
"serde_json",
|
||||||
@@ -3234,7 +3254,7 @@ checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c"
|
|||||||
dependencies = [
|
dependencies = [
|
||||||
"proc-macro2",
|
"proc-macro2",
|
||||||
"quote",
|
"quote",
|
||||||
"syn 2.0.32",
|
"syn 2.0.52",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
@@ -3716,7 +3736,7 @@ dependencies = [
|
|||||||
"parquet",
|
"parquet",
|
||||||
"proc-macro2",
|
"proc-macro2",
|
||||||
"quote",
|
"quote",
|
||||||
"syn 2.0.32",
|
"syn 2.0.52",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
@@ -3754,16 +3774,6 @@ version = "0.1.2"
|
|||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "19b17cddbe7ec3f8bc800887bab5e717348c95ea2ca0b1bf0837fb964dc67099"
|
checksum = "19b17cddbe7ec3f8bc800887bab5e717348c95ea2ca0b1bf0837fb964dc67099"
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "pem"
|
|
||||||
version = "2.0.1"
|
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
||||||
checksum = "6b13fe415cdf3c8e44518e18a7c95a13431d9bdf6d15367d82b23c377fdd441a"
|
|
||||||
dependencies = [
|
|
||||||
"base64 0.21.1",
|
|
||||||
"serde",
|
|
||||||
]
|
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "pem"
|
name = "pem"
|
||||||
version = "3.0.3"
|
version = "3.0.3"
|
||||||
@@ -3825,7 +3835,7 @@ checksum = "39407670928234ebc5e6e580247dd567ad73a3578460c5990f9503df207e8f07"
|
|||||||
dependencies = [
|
dependencies = [
|
||||||
"proc-macro2",
|
"proc-macro2",
|
||||||
"quote",
|
"quote",
|
||||||
"syn 2.0.32",
|
"syn 2.0.52",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
@@ -3846,8 +3856,8 @@ version = "0.9.0"
|
|||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "9eca2c590a5f85da82668fa685c09ce2888b9430e83299debf1f34b65fd4a4ba"
|
checksum = "9eca2c590a5f85da82668fa685c09ce2888b9430e83299debf1f34b65fd4a4ba"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"der",
|
"der 0.6.1",
|
||||||
"spki",
|
"spki 0.6.0",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
@@ -3946,14 +3956,14 @@ dependencies = [
|
|||||||
"futures",
|
"futures",
|
||||||
"once_cell",
|
"once_cell",
|
||||||
"pq_proto",
|
"pq_proto",
|
||||||
"rustls",
|
"rustls 0.22.2",
|
||||||
"rustls-pemfile",
|
"rustls-pemfile 2.1.1",
|
||||||
"serde",
|
"serde",
|
||||||
"thiserror",
|
"thiserror",
|
||||||
"tokio",
|
"tokio",
|
||||||
"tokio-postgres",
|
"tokio-postgres",
|
||||||
"tokio-postgres-rustls",
|
"tokio-postgres-rustls",
|
||||||
"tokio-rustls",
|
"tokio-rustls 0.25.0",
|
||||||
"tracing",
|
"tracing",
|
||||||
"workspace_hack",
|
"workspace_hack",
|
||||||
]
|
]
|
||||||
@@ -4042,7 +4052,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
|
|||||||
checksum = "3b69d39aab54d069e7f2fe8cb970493e7834601ca2d8c65fd7bbd183578080d1"
|
checksum = "3b69d39aab54d069e7f2fe8cb970493e7834601ca2d8c65fd7bbd183578080d1"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"proc-macro2",
|
"proc-macro2",
|
||||||
"syn 2.0.32",
|
"syn 2.0.52",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
@@ -4053,9 +4063,9 @@ checksum = "dc375e1527247fe1a97d8b7156678dfe7c1af2fc075c9a4db3690ecd2a148068"
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "proc-macro2"
|
name = "proc-macro2"
|
||||||
version = "1.0.66"
|
version = "1.0.78"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "18fb31db3f9bddb2ea821cde30a9f70117e3f119938b5ee630b7403aa6e2ead9"
|
checksum = "e2422ad645d89c99f8f3e6b88a9fdeca7fabeac836b1002371c4367c8f984aae"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"unicode-ident",
|
"unicode-ident",
|
||||||
]
|
]
|
||||||
@@ -4202,8 +4212,8 @@ dependencies = [
|
|||||||
"routerify",
|
"routerify",
|
||||||
"rstest",
|
"rstest",
|
||||||
"rustc-hash",
|
"rustc-hash",
|
||||||
"rustls",
|
"rustls 0.22.2",
|
||||||
"rustls-pemfile",
|
"rustls-pemfile 2.1.1",
|
||||||
"scopeguard",
|
"scopeguard",
|
||||||
"serde",
|
"serde",
|
||||||
"serde_json",
|
"serde_json",
|
||||||
@@ -4219,7 +4229,7 @@ dependencies = [
|
|||||||
"tokio",
|
"tokio",
|
||||||
"tokio-postgres",
|
"tokio-postgres",
|
||||||
"tokio-postgres-rustls",
|
"tokio-postgres-rustls",
|
||||||
"tokio-rustls",
|
"tokio-rustls 0.25.0",
|
||||||
"tokio-util",
|
"tokio-util",
|
||||||
"tracing",
|
"tracing",
|
||||||
"tracing-opentelemetry",
|
"tracing-opentelemetry",
|
||||||
@@ -4247,9 +4257,9 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "quote"
|
name = "quote"
|
||||||
version = "1.0.32"
|
version = "1.0.35"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "50f3b39ccfb720540debaa0164757101c08ecb8d326b15358ce76a62c7e85965"
|
checksum = "291ec9ab5efd934aaf503a6466c5d5251535d108ee747472c3977cc5acc868ef"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"proc-macro2",
|
"proc-macro2",
|
||||||
]
|
]
|
||||||
@@ -4370,12 +4380,12 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "rcgen"
|
name = "rcgen"
|
||||||
version = "0.11.1"
|
version = "0.12.1"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "4954fbc00dcd4d8282c987710e50ba513d351400dbdd00e803a05172a90d8976"
|
checksum = "48406db8ac1f3cbc7dcdb56ec355343817958a356ff430259bb07baf7607e1e1"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"pem 2.0.1",
|
"pem",
|
||||||
"ring 0.16.20",
|
"ring 0.17.6",
|
||||||
"time",
|
"time",
|
||||||
"yasna",
|
"yasna",
|
||||||
]
|
]
|
||||||
@@ -4393,15 +4403,15 @@ dependencies = [
|
|||||||
"itoa",
|
"itoa",
|
||||||
"percent-encoding",
|
"percent-encoding",
|
||||||
"pin-project-lite",
|
"pin-project-lite",
|
||||||
"rustls",
|
"rustls 0.21.9",
|
||||||
"rustls-native-certs",
|
"rustls-native-certs",
|
||||||
"rustls-pemfile",
|
"rustls-pemfile 1.0.2",
|
||||||
"rustls-webpki 0.101.7",
|
"rustls-webpki 0.101.7",
|
||||||
"ryu",
|
"ryu",
|
||||||
"sha1_smol",
|
"sha1_smol",
|
||||||
"socket2 0.4.9",
|
"socket2 0.4.9",
|
||||||
"tokio",
|
"tokio",
|
||||||
"tokio-rustls",
|
"tokio-rustls 0.24.0",
|
||||||
"tokio-util",
|
"tokio-util",
|
||||||
"url",
|
"url",
|
||||||
]
|
]
|
||||||
@@ -4547,14 +4557,14 @@ dependencies = [
|
|||||||
"once_cell",
|
"once_cell",
|
||||||
"percent-encoding",
|
"percent-encoding",
|
||||||
"pin-project-lite",
|
"pin-project-lite",
|
||||||
"rustls",
|
"rustls 0.21.9",
|
||||||
"rustls-pemfile",
|
"rustls-pemfile 1.0.2",
|
||||||
"serde",
|
"serde",
|
||||||
"serde_json",
|
"serde_json",
|
||||||
"serde_urlencoded",
|
"serde_urlencoded",
|
||||||
"tokio",
|
"tokio",
|
||||||
"tokio-native-tls",
|
"tokio-native-tls",
|
||||||
"tokio-rustls",
|
"tokio-rustls 0.24.0",
|
||||||
"tokio-util",
|
"tokio-util",
|
||||||
"tower-service",
|
"tower-service",
|
||||||
"url",
|
"url",
|
||||||
@@ -4720,7 +4730,7 @@ dependencies = [
|
|||||||
"regex",
|
"regex",
|
||||||
"relative-path",
|
"relative-path",
|
||||||
"rustc_version",
|
"rustc_version",
|
||||||
"syn 2.0.32",
|
"syn 2.0.52",
|
||||||
"unicode-ident",
|
"unicode-ident",
|
||||||
]
|
]
|
||||||
|
|
||||||
@@ -4804,6 +4814,20 @@ dependencies = [
|
|||||||
"sct",
|
"sct",
|
||||||
]
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "rustls"
|
||||||
|
version = "0.22.2"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "e87c9956bd9807afa1f77e0f7594af32566e830e088a5576d27c5b6f30f49d41"
|
||||||
|
dependencies = [
|
||||||
|
"log",
|
||||||
|
"ring 0.17.6",
|
||||||
|
"rustls-pki-types",
|
||||||
|
"rustls-webpki 0.102.2",
|
||||||
|
"subtle",
|
||||||
|
"zeroize",
|
||||||
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "rustls-native-certs"
|
name = "rustls-native-certs"
|
||||||
version = "0.6.2"
|
version = "0.6.2"
|
||||||
@@ -4811,7 +4835,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
|
|||||||
checksum = "0167bac7a9f490495f3c33013e7722b53cb087ecbe082fb0c6387c96f634ea50"
|
checksum = "0167bac7a9f490495f3c33013e7722b53cb087ecbe082fb0c6387c96f634ea50"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"openssl-probe",
|
"openssl-probe",
|
||||||
"rustls-pemfile",
|
"rustls-pemfile 1.0.2",
|
||||||
"schannel",
|
"schannel",
|
||||||
"security-framework",
|
"security-framework",
|
||||||
]
|
]
|
||||||
@@ -4825,6 +4849,22 @@ dependencies = [
|
|||||||
"base64 0.21.1",
|
"base64 0.21.1",
|
||||||
]
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "rustls-pemfile"
|
||||||
|
version = "2.1.1"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "f48172685e6ff52a556baa527774f61fcaa884f59daf3375c62a3f1cd2549dab"
|
||||||
|
dependencies = [
|
||||||
|
"base64 0.21.1",
|
||||||
|
"rustls-pki-types",
|
||||||
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "rustls-pki-types"
|
||||||
|
version = "1.3.1"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "5ede67b28608b4c60685c7d54122d4400d90f62b40caee7700e700380a390fa8"
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "rustls-webpki"
|
name = "rustls-webpki"
|
||||||
version = "0.100.2"
|
version = "0.100.2"
|
||||||
@@ -4845,6 +4885,17 @@ dependencies = [
|
|||||||
"untrusted 0.9.0",
|
"untrusted 0.9.0",
|
||||||
]
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "rustls-webpki"
|
||||||
|
version = "0.102.2"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "faaa0a62740bedb9b2ef5afa303da42764c012f743917351dc9a237ea1663610"
|
||||||
|
dependencies = [
|
||||||
|
"ring 0.17.6",
|
||||||
|
"rustls-pki-types",
|
||||||
|
"untrusted 0.9.0",
|
||||||
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "rustversion"
|
name = "rustversion"
|
||||||
version = "1.0.12"
|
version = "1.0.12"
|
||||||
@@ -4887,7 +4938,7 @@ dependencies = [
|
|||||||
"serde_with",
|
"serde_with",
|
||||||
"thiserror",
|
"thiserror",
|
||||||
"tokio",
|
"tokio",
|
||||||
"tokio-rustls",
|
"tokio-rustls 0.25.0",
|
||||||
"tokio-stream",
|
"tokio-stream",
|
||||||
"tracing",
|
"tracing",
|
||||||
"tracing-appender",
|
"tracing-appender",
|
||||||
@@ -5022,7 +5073,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
|
|||||||
checksum = "3be24c1842290c45df0a7bf069e0c268a747ad05a192f2fd7dcfdbc1cba40928"
|
checksum = "3be24c1842290c45df0a7bf069e0c268a747ad05a192f2fd7dcfdbc1cba40928"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"base16ct",
|
"base16ct",
|
||||||
"der",
|
"der 0.6.1",
|
||||||
"generic-array",
|
"generic-array",
|
||||||
"pkcs8",
|
"pkcs8",
|
||||||
"subtle",
|
"subtle",
|
||||||
@@ -5066,7 +5117,7 @@ checksum = "2e95efd0cefa32028cdb9766c96de71d96671072f9fb494dc9fb84c0ef93e52b"
|
|||||||
dependencies = [
|
dependencies = [
|
||||||
"httpdate",
|
"httpdate",
|
||||||
"reqwest",
|
"reqwest",
|
||||||
"rustls",
|
"rustls 0.21.9",
|
||||||
"sentry-backtrace",
|
"sentry-backtrace",
|
||||||
"sentry-contexts",
|
"sentry-contexts",
|
||||||
"sentry-core",
|
"sentry-core",
|
||||||
@@ -5188,7 +5239,7 @@ checksum = "aafe972d60b0b9bee71a91b92fee2d4fb3c9d7e8f6b179aa99f27203d99a4816"
|
|||||||
dependencies = [
|
dependencies = [
|
||||||
"proc-macro2",
|
"proc-macro2",
|
||||||
"quote",
|
"quote",
|
||||||
"syn 2.0.32",
|
"syn 2.0.52",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
@@ -5269,7 +5320,7 @@ dependencies = [
|
|||||||
"darling",
|
"darling",
|
||||||
"proc-macro2",
|
"proc-macro2",
|
||||||
"quote",
|
"quote",
|
||||||
"syn 2.0.32",
|
"syn 2.0.52",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
@@ -5355,6 +5406,15 @@ dependencies = [
|
|||||||
"rand_core 0.6.4",
|
"rand_core 0.6.4",
|
||||||
]
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "signature"
|
||||||
|
version = "2.2.0"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "77549399552de45a898a580c1b41d445bf730df867cc44e6c0233bbc4b8329de"
|
||||||
|
dependencies = [
|
||||||
|
"rand_core 0.6.4",
|
||||||
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "simple_asn1"
|
name = "simple_asn1"
|
||||||
version = "0.6.2"
|
version = "0.6.2"
|
||||||
@@ -5439,7 +5499,17 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
|
|||||||
checksum = "67cf02bbac7a337dc36e4f5a693db6c21e7863f45070f7064577eb4367a3212b"
|
checksum = "67cf02bbac7a337dc36e4f5a693db6c21e7863f45070f7064577eb4367a3212b"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"base64ct",
|
"base64ct",
|
||||||
"der",
|
"der 0.6.1",
|
||||||
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "spki"
|
||||||
|
version = "0.7.3"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "d91ed6c858b01f942cd56b37a94b3e0a1798290327d1236e4d9cf4eaca44d29d"
|
||||||
|
dependencies = [
|
||||||
|
"base64ct",
|
||||||
|
"der 0.7.8",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
@@ -5542,9 +5612,9 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "syn"
|
name = "syn"
|
||||||
version = "2.0.32"
|
version = "2.0.52"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "239814284fd6f1a4ffe4ca893952cdd93c224b6a1571c9a9eadd670295c0c9e2"
|
checksum = "b699d15b36d1f02c3e7c69f8ffef53de37aefae075d8488d4ba1a7788d574a07"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"proc-macro2",
|
"proc-macro2",
|
||||||
"quote",
|
"quote",
|
||||||
@@ -5659,22 +5729,22 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "thiserror"
|
name = "thiserror"
|
||||||
version = "1.0.47"
|
version = "1.0.57"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "97a802ec30afc17eee47b2855fc72e0c4cd62be9b4efe6591edde0ec5bd68d8f"
|
checksum = "1e45bcbe8ed29775f228095caf2cd67af7a4ccf756ebff23a306bf3e8b47b24b"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"thiserror-impl",
|
"thiserror-impl",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "thiserror-impl"
|
name = "thiserror-impl"
|
||||||
version = "1.0.47"
|
version = "1.0.57"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "6bb623b56e39ab7dcd4b1b98bb6c8f8d907ed255b18de254088016b27a8ee19b"
|
checksum = "a953cb265bef375dae3de6663da4d3804eee9682ea80d8e2542529b73c531c81"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"proc-macro2",
|
"proc-macro2",
|
||||||
"quote",
|
"quote",
|
||||||
"syn 2.0.32",
|
"syn 2.0.52",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
@@ -5845,7 +5915,7 @@ checksum = "5b8a1e28f2deaa14e508979454cb3a223b10b938b45af148bc0986de36f1923b"
|
|||||||
dependencies = [
|
dependencies = [
|
||||||
"proc-macro2",
|
"proc-macro2",
|
||||||
"quote",
|
"quote",
|
||||||
"syn 2.0.32",
|
"syn 2.0.52",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
@@ -5883,16 +5953,17 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "tokio-postgres-rustls"
|
name = "tokio-postgres-rustls"
|
||||||
version = "0.10.0"
|
version = "0.11.1"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "dd5831152cb0d3f79ef5523b357319ba154795d64c7078b2daa95a803b54057f"
|
checksum = "0ea13f22eda7127c827983bdaf0d7fff9df21c8817bab02815ac277a21143677"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"futures",
|
"futures",
|
||||||
"ring 0.16.20",
|
"ring 0.17.6",
|
||||||
"rustls",
|
"rustls 0.22.2",
|
||||||
"tokio",
|
"tokio",
|
||||||
"tokio-postgres",
|
"tokio-postgres",
|
||||||
"tokio-rustls",
|
"tokio-rustls 0.25.0",
|
||||||
|
"x509-certificate",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
@@ -5901,7 +5972,18 @@ version = "0.24.0"
|
|||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "e0d409377ff5b1e3ca6437aa86c1eb7d40c134bfec254e44c830defa92669db5"
|
checksum = "e0d409377ff5b1e3ca6437aa86c1eb7d40c134bfec254e44c830defa92669db5"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"rustls",
|
"rustls 0.21.9",
|
||||||
|
"tokio",
|
||||||
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "tokio-rustls"
|
||||||
|
version = "0.25.0"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "775e0c0f0adb3a2f22a00c4745d728b479985fc15ee7ca6a2608388c5569860f"
|
||||||
|
dependencies = [
|
||||||
|
"rustls 0.22.2",
|
||||||
|
"rustls-pki-types",
|
||||||
"tokio",
|
"tokio",
|
||||||
]
|
]
|
||||||
|
|
||||||
@@ -6016,9 +6098,9 @@ dependencies = [
|
|||||||
"pin-project",
|
"pin-project",
|
||||||
"prost",
|
"prost",
|
||||||
"rustls-native-certs",
|
"rustls-native-certs",
|
||||||
"rustls-pemfile",
|
"rustls-pemfile 1.0.2",
|
||||||
"tokio",
|
"tokio",
|
||||||
"tokio-rustls",
|
"tokio-rustls 0.24.0",
|
||||||
"tokio-stream",
|
"tokio-stream",
|
||||||
"tower",
|
"tower",
|
||||||
"tower-layer",
|
"tower-layer",
|
||||||
@@ -6114,7 +6196,7 @@ checksum = "0f57e3ca2a01450b1a921183a9c9cbfda207fd822cef4ccb00a65402cbba7a74"
|
|||||||
dependencies = [
|
dependencies = [
|
||||||
"proc-macro2",
|
"proc-macro2",
|
||||||
"quote",
|
"quote",
|
||||||
"syn 2.0.32",
|
"syn 2.0.52",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
@@ -6330,7 +6412,7 @@ dependencies = [
|
|||||||
"base64 0.21.1",
|
"base64 0.21.1",
|
||||||
"log",
|
"log",
|
||||||
"once_cell",
|
"once_cell",
|
||||||
"rustls",
|
"rustls 0.21.9",
|
||||||
"rustls-webpki 0.100.2",
|
"rustls-webpki 0.100.2",
|
||||||
"url",
|
"url",
|
||||||
"webpki-roots 0.23.1",
|
"webpki-roots 0.23.1",
|
||||||
@@ -6572,7 +6654,7 @@ dependencies = [
|
|||||||
"once_cell",
|
"once_cell",
|
||||||
"proc-macro2",
|
"proc-macro2",
|
||||||
"quote",
|
"quote",
|
||||||
"syn 2.0.32",
|
"syn 2.0.52",
|
||||||
"wasm-bindgen-shared",
|
"wasm-bindgen-shared",
|
||||||
]
|
]
|
||||||
|
|
||||||
@@ -6606,7 +6688,7 @@ checksum = "e128beba882dd1eb6200e1dc92ae6c5dbaa4311aa7bb211ca035779e5efc39f8"
|
|||||||
dependencies = [
|
dependencies = [
|
||||||
"proc-macro2",
|
"proc-macro2",
|
||||||
"quote",
|
"quote",
|
||||||
"syn 2.0.32",
|
"syn 2.0.52",
|
||||||
"wasm-bindgen-backend",
|
"wasm-bindgen-backend",
|
||||||
"wasm-bindgen-shared",
|
"wasm-bindgen-shared",
|
||||||
]
|
]
|
||||||
@@ -6939,19 +7021,18 @@ dependencies = [
|
|||||||
"regex-automata 0.4.3",
|
"regex-automata 0.4.3",
|
||||||
"regex-syntax 0.8.2",
|
"regex-syntax 0.8.2",
|
||||||
"reqwest",
|
"reqwest",
|
||||||
"ring 0.16.20",
|
"rustls 0.21.9",
|
||||||
"rustls",
|
|
||||||
"scopeguard",
|
"scopeguard",
|
||||||
"serde",
|
"serde",
|
||||||
"serde_json",
|
"serde_json",
|
||||||
"smallvec",
|
"smallvec",
|
||||||
"subtle",
|
"subtle",
|
||||||
"syn 1.0.109",
|
"syn 1.0.109",
|
||||||
"syn 2.0.32",
|
"syn 2.0.52",
|
||||||
"time",
|
"time",
|
||||||
"time-macros",
|
"time-macros",
|
||||||
"tokio",
|
"tokio",
|
||||||
"tokio-rustls",
|
"tokio-rustls 0.24.0",
|
||||||
"tokio-util",
|
"tokio-util",
|
||||||
"toml_datetime",
|
"toml_datetime",
|
||||||
"toml_edit",
|
"toml_edit",
|
||||||
@@ -6962,11 +7043,31 @@ dependencies = [
|
|||||||
"tungstenite",
|
"tungstenite",
|
||||||
"url",
|
"url",
|
||||||
"uuid",
|
"uuid",
|
||||||
|
"zeroize",
|
||||||
"zstd",
|
"zstd",
|
||||||
"zstd-safe",
|
"zstd-safe",
|
||||||
"zstd-sys",
|
"zstd-sys",
|
||||||
]
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "x509-certificate"
|
||||||
|
version = "0.23.1"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "66534846dec7a11d7c50a74b7cdb208b9a581cad890b7866430d438455847c85"
|
||||||
|
dependencies = [
|
||||||
|
"bcder",
|
||||||
|
"bytes",
|
||||||
|
"chrono",
|
||||||
|
"der 0.7.8",
|
||||||
|
"hex",
|
||||||
|
"pem",
|
||||||
|
"ring 0.17.6",
|
||||||
|
"signature 2.2.0",
|
||||||
|
"spki 0.7.3",
|
||||||
|
"thiserror",
|
||||||
|
"zeroize",
|
||||||
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "x509-parser"
|
name = "x509-parser"
|
||||||
version = "0.15.0"
|
version = "0.15.0"
|
||||||
@@ -7025,7 +7126,7 @@ checksum = "b3c129550b3e6de3fd0ba67ba5c81818f9805e58b8d7fee80a3a59d2c9fc601a"
|
|||||||
dependencies = [
|
dependencies = [
|
||||||
"proc-macro2",
|
"proc-macro2",
|
||||||
"quote",
|
"quote",
|
||||||
"syn 2.0.32",
|
"syn 2.0.52",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
@@ -7033,6 +7134,20 @@ name = "zeroize"
|
|||||||
version = "1.6.0"
|
version = "1.6.0"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "2a0956f1ba7c7909bfb66c2e9e4124ab6f6482560f6628b5aaeba39207c9aad9"
|
checksum = "2a0956f1ba7c7909bfb66c2e9e4124ab6f6482560f6628b5aaeba39207c9aad9"
|
||||||
|
dependencies = [
|
||||||
|
"zeroize_derive",
|
||||||
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "zeroize_derive"
|
||||||
|
version = "1.4.2"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "ce36e65b0d2999d2aafac989fb249189a141aee1f53c612c1f37d72631959f69"
|
||||||
|
dependencies = [
|
||||||
|
"proc-macro2",
|
||||||
|
"quote",
|
||||||
|
"syn 2.0.52",
|
||||||
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "zstd"
|
name = "zstd"
|
||||||
|
|||||||
10
Cargo.toml
10
Cargo.toml
@@ -129,8 +129,8 @@ reqwest-retry = "0.2.2"
|
|||||||
routerify = "3"
|
routerify = "3"
|
||||||
rpds = "0.13"
|
rpds = "0.13"
|
||||||
rustc-hash = "1.1.0"
|
rustc-hash = "1.1.0"
|
||||||
rustls = "0.21"
|
rustls = "0.22"
|
||||||
rustls-pemfile = "1"
|
rustls-pemfile = "2"
|
||||||
rustls-split = "0.3"
|
rustls-split = "0.3"
|
||||||
scopeguard = "1.1"
|
scopeguard = "1.1"
|
||||||
sysinfo = "0.29.2"
|
sysinfo = "0.29.2"
|
||||||
@@ -159,8 +159,8 @@ tikv-jemalloc-ctl = "0.5"
|
|||||||
tokio = { version = "1.17", features = ["macros"] }
|
tokio = { version = "1.17", features = ["macros"] }
|
||||||
tokio-epoll-uring = { git = "https://github.com/neondatabase/tokio-epoll-uring.git" , branch = "main" }
|
tokio-epoll-uring = { git = "https://github.com/neondatabase/tokio-epoll-uring.git" , branch = "main" }
|
||||||
tokio-io-timeout = "1.2.0"
|
tokio-io-timeout = "1.2.0"
|
||||||
tokio-postgres-rustls = "0.10.0"
|
tokio-postgres-rustls = "0.11.0"
|
||||||
tokio-rustls = "0.24"
|
tokio-rustls = "0.25"
|
||||||
tokio-stream = "0.1"
|
tokio-stream = "0.1"
|
||||||
tokio-tar = "0.3"
|
tokio-tar = "0.3"
|
||||||
tokio-util = { version = "0.7.10", features = ["io", "rt"] }
|
tokio-util = { version = "0.7.10", features = ["io", "rt"] }
|
||||||
@@ -219,7 +219,7 @@ workspace_hack = { version = "0.1", path = "./workspace_hack/" }
|
|||||||
|
|
||||||
## Build dependencies
|
## Build dependencies
|
||||||
criterion = "0.5.1"
|
criterion = "0.5.1"
|
||||||
rcgen = "0.11"
|
rcgen = "0.12"
|
||||||
rstest = "0.18"
|
rstest = "0.18"
|
||||||
camino-tempfile = "1.0.2"
|
camino-tempfile = "1.0.2"
|
||||||
tonic-build = "0.9"
|
tonic-build = "0.9"
|
||||||
|
|||||||
@@ -72,14 +72,19 @@ async fn simple_select() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static KEY: Lazy<rustls::PrivateKey> = Lazy::new(|| {
|
static KEY: Lazy<rustls::pki_types::PrivateKeyDer<'static>> = Lazy::new(|| {
|
||||||
let mut cursor = Cursor::new(include_bytes!("key.pem"));
|
let mut cursor = Cursor::new(include_bytes!("key.pem"));
|
||||||
rustls::PrivateKey(rustls_pemfile::rsa_private_keys(&mut cursor).unwrap()[0].clone())
|
let key = rustls_pemfile::rsa_private_keys(&mut cursor)
|
||||||
|
.next()
|
||||||
|
.unwrap()
|
||||||
|
.unwrap();
|
||||||
|
rustls::pki_types::PrivateKeyDer::Pkcs1(key)
|
||||||
});
|
});
|
||||||
|
|
||||||
static CERT: Lazy<rustls::Certificate> = Lazy::new(|| {
|
static CERT: Lazy<rustls::pki_types::CertificateDer<'static>> = Lazy::new(|| {
|
||||||
let mut cursor = Cursor::new(include_bytes!("cert.pem"));
|
let mut cursor = Cursor::new(include_bytes!("cert.pem"));
|
||||||
rustls::Certificate(rustls_pemfile::certs(&mut cursor).unwrap()[0].clone())
|
let cert = rustls_pemfile::certs(&mut cursor).next().unwrap().unwrap();
|
||||||
|
cert
|
||||||
});
|
});
|
||||||
|
|
||||||
// test that basic select with ssl works
|
// test that basic select with ssl works
|
||||||
@@ -88,9 +93,8 @@ async fn simple_select_ssl() {
|
|||||||
let (client_sock, server_sock) = make_tcp_pair().await;
|
let (client_sock, server_sock) = make_tcp_pair().await;
|
||||||
|
|
||||||
let server_cfg = rustls::ServerConfig::builder()
|
let server_cfg = rustls::ServerConfig::builder()
|
||||||
.with_safe_defaults()
|
|
||||||
.with_no_client_auth()
|
.with_no_client_auth()
|
||||||
.with_single_cert(vec![CERT.clone()], KEY.clone())
|
.with_single_cert(vec![CERT.clone()], KEY.clone_key())
|
||||||
.unwrap();
|
.unwrap();
|
||||||
let tls_config = Some(Arc::new(server_cfg));
|
let tls_config = Some(Arc::new(server_cfg));
|
||||||
let pgbackend =
|
let pgbackend =
|
||||||
@@ -102,10 +106,9 @@ async fn simple_select_ssl() {
|
|||||||
});
|
});
|
||||||
|
|
||||||
let client_cfg = rustls::ClientConfig::builder()
|
let client_cfg = rustls::ClientConfig::builder()
|
||||||
.with_safe_defaults()
|
|
||||||
.with_root_certificates({
|
.with_root_certificates({
|
||||||
let mut store = rustls::RootCertStore::empty();
|
let mut store = rustls::RootCertStore::empty();
|
||||||
store.add(&CERT).unwrap();
|
store.add(CERT.clone()).unwrap();
|
||||||
store
|
store
|
||||||
})
|
})
|
||||||
.with_no_client_auth();
|
.with_no_client_auth();
|
||||||
|
|||||||
@@ -10,6 +10,7 @@ use itertools::Itertools;
|
|||||||
use proxy::config::TlsServerEndPoint;
|
use proxy::config::TlsServerEndPoint;
|
||||||
use proxy::context::RequestMonitoring;
|
use proxy::context::RequestMonitoring;
|
||||||
use proxy::proxy::run_until_cancelled;
|
use proxy::proxy::run_until_cancelled;
|
||||||
|
use rustls::pki_types::PrivateKeyDer;
|
||||||
use tokio::net::TcpListener;
|
use tokio::net::TcpListener;
|
||||||
|
|
||||||
use anyhow::{anyhow, bail, ensure, Context};
|
use anyhow::{anyhow, bail, ensure, Context};
|
||||||
@@ -76,37 +77,40 @@ async fn main() -> anyhow::Result<()> {
|
|||||||
(Some(key_path), Some(cert_path)) => {
|
(Some(key_path), Some(cert_path)) => {
|
||||||
let key = {
|
let key = {
|
||||||
let key_bytes = std::fs::read(key_path).context("TLS key file")?;
|
let key_bytes = std::fs::read(key_path).context("TLS key file")?;
|
||||||
let mut keys = rustls_pemfile::pkcs8_private_keys(&mut &key_bytes[..])
|
|
||||||
.context(format!("Failed to read TLS keys at '{key_path}'"))?;
|
let mut keys =
|
||||||
|
rustls_pemfile::pkcs8_private_keys(&mut &key_bytes[..]).collect_vec();
|
||||||
|
|
||||||
ensure!(keys.len() == 1, "keys.len() = {} (should be 1)", keys.len());
|
ensure!(keys.len() == 1, "keys.len() = {} (should be 1)", keys.len());
|
||||||
keys.pop().map(rustls::PrivateKey).unwrap()
|
PrivateKeyDer::Pkcs8(
|
||||||
|
keys.pop()
|
||||||
|
.unwrap()
|
||||||
|
.context(format!("Failed to read TLS keys at '{key_path}'"))?,
|
||||||
|
)
|
||||||
};
|
};
|
||||||
|
|
||||||
let cert_chain_bytes = std::fs::read(cert_path)
|
let cert_chain_bytes = std::fs::read(cert_path)
|
||||||
.context(format!("Failed to read TLS cert file at '{cert_path}.'"))?;
|
.context(format!("Failed to read TLS cert file at '{cert_path}.'"))?;
|
||||||
|
|
||||||
let cert_chain = {
|
let cert_chain: Vec<_> = {
|
||||||
rustls_pemfile::certs(&mut &cert_chain_bytes[..])
|
rustls_pemfile::certs(&mut &cert_chain_bytes[..])
|
||||||
.context(format!(
|
.try_collect()
|
||||||
"Failed to read TLS certificate chain from bytes from file at '{cert_path}'."
|
.with_context(|| {
|
||||||
))?
|
format!("Failed to read TLS certificate chain from bytes from file at '{cert_path}'.")
|
||||||
.into_iter()
|
})?
|
||||||
.map(rustls::Certificate)
|
|
||||||
.collect_vec()
|
|
||||||
};
|
};
|
||||||
|
|
||||||
// needed for channel bindings
|
// needed for channel bindings
|
||||||
let first_cert = cert_chain.first().context("missing certificate")?;
|
let first_cert = cert_chain.first().context("missing certificate")?;
|
||||||
let tls_server_end_point = TlsServerEndPoint::new(first_cert)?;
|
let tls_server_end_point = TlsServerEndPoint::new(first_cert)?;
|
||||||
|
|
||||||
let tls_config = rustls::ServerConfig::builder()
|
let tls_config = rustls::ServerConfig::builder_with_protocol_versions(&[
|
||||||
.with_safe_default_cipher_suites()
|
&rustls::version::TLS13,
|
||||||
.with_safe_default_kx_groups()
|
&rustls::version::TLS12,
|
||||||
.with_protocol_versions(&[&rustls::version::TLS13, &rustls::version::TLS12])?
|
])
|
||||||
.with_no_client_auth()
|
.with_no_client_auth()
|
||||||
.with_single_cert(cert_chain, key)?
|
.with_single_cert(cert_chain, key)?
|
||||||
.into();
|
.into();
|
||||||
|
|
||||||
(tls_config, tls_server_end_point)
|
(tls_config, tls_server_end_point)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,6 +1,10 @@
|
|||||||
use crate::{auth, rate_limiter::RateBucketInfo, serverless::GlobalConnPoolOptions};
|
use crate::{auth, rate_limiter::RateBucketInfo, serverless::GlobalConnPoolOptions};
|
||||||
use anyhow::{bail, ensure, Context, Ok};
|
use anyhow::{bail, ensure, Context, Ok};
|
||||||
use rustls::{sign, Certificate, PrivateKey};
|
use itertools::Itertools;
|
||||||
|
use rustls::{
|
||||||
|
crypto::ring::sign,
|
||||||
|
pki_types::{CertificateDer, PrivateKeyDer},
|
||||||
|
};
|
||||||
use sha2::{Digest, Sha256};
|
use sha2::{Digest, Sha256};
|
||||||
use std::{
|
use std::{
|
||||||
collections::{HashMap, HashSet},
|
collections::{HashMap, HashSet},
|
||||||
@@ -88,14 +92,14 @@ pub fn configure_tls(
|
|||||||
|
|
||||||
let cert_resolver = Arc::new(cert_resolver);
|
let cert_resolver = Arc::new(cert_resolver);
|
||||||
|
|
||||||
let config = rustls::ServerConfig::builder()
|
// allow TLS 1.2 to be compatible with older client libraries
|
||||||
.with_safe_default_cipher_suites()
|
let config = rustls::ServerConfig::builder_with_protocol_versions(&[
|
||||||
.with_safe_default_kx_groups()
|
&rustls::version::TLS13,
|
||||||
// allow TLS 1.2 to be compatible with older client libraries
|
&rustls::version::TLS12,
|
||||||
.with_protocol_versions(&[&rustls::version::TLS13, &rustls::version::TLS12])?
|
])
|
||||||
.with_no_client_auth()
|
.with_no_client_auth()
|
||||||
.with_cert_resolver(cert_resolver.clone())
|
.with_cert_resolver(cert_resolver.clone())
|
||||||
.into();
|
.into();
|
||||||
|
|
||||||
Ok(TlsConfig {
|
Ok(TlsConfig {
|
||||||
config,
|
config,
|
||||||
@@ -133,14 +137,14 @@ pub enum TlsServerEndPoint {
|
|||||||
}
|
}
|
||||||
|
|
||||||
impl TlsServerEndPoint {
|
impl TlsServerEndPoint {
|
||||||
pub fn new(cert: &Certificate) -> anyhow::Result<Self> {
|
pub fn new(cert: &CertificateDer) -> anyhow::Result<Self> {
|
||||||
let sha256_oids = [
|
let sha256_oids = [
|
||||||
// I'm explicitly not adding MD5 or SHA1 here... They're bad.
|
// I'm explicitly not adding MD5 or SHA1 here... They're bad.
|
||||||
oid_registry::OID_SIG_ECDSA_WITH_SHA256,
|
oid_registry::OID_SIG_ECDSA_WITH_SHA256,
|
||||||
oid_registry::OID_PKCS1_SHA256WITHRSA,
|
oid_registry::OID_PKCS1_SHA256WITHRSA,
|
||||||
];
|
];
|
||||||
|
|
||||||
let pem = x509_parser::parse_x509_certificate(&cert.0)
|
let pem = x509_parser::parse_x509_certificate(cert)
|
||||||
.context("Failed to parse PEM object from cerficiate")?
|
.context("Failed to parse PEM object from cerficiate")?
|
||||||
.1;
|
.1;
|
||||||
|
|
||||||
@@ -150,8 +154,7 @@ impl TlsServerEndPoint {
|
|||||||
let oid = pem.signature_algorithm.oid();
|
let oid = pem.signature_algorithm.oid();
|
||||||
let alg = reg.get(oid);
|
let alg = reg.get(oid);
|
||||||
if sha256_oids.contains(oid) {
|
if sha256_oids.contains(oid) {
|
||||||
let tls_server_end_point: [u8; 32] =
|
let tls_server_end_point: [u8; 32] = Sha256::new().chain_update(cert).finalize().into();
|
||||||
Sha256::new().chain_update(&cert.0).finalize().into();
|
|
||||||
info!(subject = %pem.subject, signature_algorithm = alg.map(|a| a.description()), tls_server_end_point = %base64::encode(tls_server_end_point), "determined channel binding");
|
info!(subject = %pem.subject, signature_algorithm = alg.map(|a| a.description()), tls_server_end_point = %base64::encode(tls_server_end_point), "determined channel binding");
|
||||||
Ok(Self::Sha256(tls_server_end_point))
|
Ok(Self::Sha256(tls_server_end_point))
|
||||||
} else {
|
} else {
|
||||||
@@ -165,7 +168,7 @@ impl TlsServerEndPoint {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#[derive(Default)]
|
#[derive(Default, Debug)]
|
||||||
pub struct CertResolver {
|
pub struct CertResolver {
|
||||||
certs: HashMap<String, (Arc<rustls::sign::CertifiedKey>, TlsServerEndPoint)>,
|
certs: HashMap<String, (Arc<rustls::sign::CertifiedKey>, TlsServerEndPoint)>,
|
||||||
default: Option<(Arc<rustls::sign::CertifiedKey>, TlsServerEndPoint)>,
|
default: Option<(Arc<rustls::sign::CertifiedKey>, TlsServerEndPoint)>,
|
||||||
@@ -185,11 +188,14 @@ impl CertResolver {
|
|||||||
let priv_key = {
|
let priv_key = {
|
||||||
let key_bytes = std::fs::read(key_path)
|
let key_bytes = std::fs::read(key_path)
|
||||||
.context(format!("Failed to read TLS keys at '{key_path}'"))?;
|
.context(format!("Failed to read TLS keys at '{key_path}'"))?;
|
||||||
let mut keys = rustls_pemfile::pkcs8_private_keys(&mut &key_bytes[..])
|
let mut keys = rustls_pemfile::pkcs8_private_keys(&mut &key_bytes[..]).collect_vec();
|
||||||
.context(format!("Failed to parse TLS keys at '{key_path}'"))?;
|
|
||||||
|
|
||||||
ensure!(keys.len() == 1, "keys.len() = {} (should be 1)", keys.len());
|
ensure!(keys.len() == 1, "keys.len() = {} (should be 1)", keys.len());
|
||||||
keys.pop().map(rustls::PrivateKey).unwrap()
|
PrivateKeyDer::Pkcs8(
|
||||||
|
keys.pop()
|
||||||
|
.unwrap()
|
||||||
|
.context(format!("Failed to parse TLS keys at '{key_path}'"))?,
|
||||||
|
)
|
||||||
};
|
};
|
||||||
|
|
||||||
let cert_chain_bytes = std::fs::read(cert_path)
|
let cert_chain_bytes = std::fs::read(cert_path)
|
||||||
@@ -197,14 +203,10 @@ impl CertResolver {
|
|||||||
|
|
||||||
let cert_chain = {
|
let cert_chain = {
|
||||||
rustls_pemfile::certs(&mut &cert_chain_bytes[..])
|
rustls_pemfile::certs(&mut &cert_chain_bytes[..])
|
||||||
|
.try_collect()
|
||||||
.with_context(|| {
|
.with_context(|| {
|
||||||
format!(
|
format!("Failed to read TLS certificate chain from bytes from file at '{cert_path}'.")
|
||||||
"Failed to read TLS certificate chain from bytes from file at '{cert_path}'."
|
|
||||||
)
|
|
||||||
})?
|
})?
|
||||||
.into_iter()
|
|
||||||
.map(rustls::Certificate)
|
|
||||||
.collect()
|
|
||||||
};
|
};
|
||||||
|
|
||||||
self.add_cert(priv_key, cert_chain, is_default)
|
self.add_cert(priv_key, cert_chain, is_default)
|
||||||
@@ -212,15 +214,15 @@ impl CertResolver {
|
|||||||
|
|
||||||
pub fn add_cert(
|
pub fn add_cert(
|
||||||
&mut self,
|
&mut self,
|
||||||
priv_key: PrivateKey,
|
priv_key: PrivateKeyDer<'static>,
|
||||||
cert_chain: Vec<Certificate>,
|
cert_chain: Vec<CertificateDer<'static>>,
|
||||||
is_default: bool,
|
is_default: bool,
|
||||||
) -> anyhow::Result<()> {
|
) -> anyhow::Result<()> {
|
||||||
let key = sign::any_supported_type(&priv_key).context("invalid private key")?;
|
let key = sign::any_supported_type(&priv_key).context("invalid private key")?;
|
||||||
|
|
||||||
let first_cert = &cert_chain[0];
|
let first_cert = &cert_chain[0];
|
||||||
let tls_server_end_point = TlsServerEndPoint::new(first_cert)?;
|
let tls_server_end_point = TlsServerEndPoint::new(first_cert)?;
|
||||||
let pem = x509_parser::parse_x509_certificate(&first_cert.0)
|
let pem = x509_parser::parse_x509_certificate(first_cert)
|
||||||
.context("Failed to parse PEM object from cerficiate")?
|
.context("Failed to parse PEM object from cerficiate")?
|
||||||
.1;
|
.1;
|
||||||
|
|
||||||
|
|||||||
@@ -20,6 +20,7 @@ use crate::{http, sasl, scram};
|
|||||||
use anyhow::{bail, Context};
|
use anyhow::{bail, Context};
|
||||||
use async_trait::async_trait;
|
use async_trait::async_trait;
|
||||||
use rstest::rstest;
|
use rstest::rstest;
|
||||||
|
use rustls::pki_types;
|
||||||
use tokio_postgres::config::SslMode;
|
use tokio_postgres::config::SslMode;
|
||||||
use tokio_postgres::tls::{MakeTlsConnect, NoTls};
|
use tokio_postgres::tls::{MakeTlsConnect, NoTls};
|
||||||
use tokio_postgres_rustls::{MakeRustlsConnect, RustlsStream};
|
use tokio_postgres_rustls::{MakeRustlsConnect, RustlsStream};
|
||||||
@@ -28,7 +29,11 @@ use tokio_postgres_rustls::{MakeRustlsConnect, RustlsStream};
|
|||||||
fn generate_certs(
|
fn generate_certs(
|
||||||
hostname: &str,
|
hostname: &str,
|
||||||
common_name: &str,
|
common_name: &str,
|
||||||
) -> anyhow::Result<(rustls::Certificate, rustls::Certificate, rustls::PrivateKey)> {
|
) -> anyhow::Result<(
|
||||||
|
pki_types::CertificateDer<'static>,
|
||||||
|
pki_types::CertificateDer<'static>,
|
||||||
|
pki_types::PrivateKeyDer<'static>,
|
||||||
|
)> {
|
||||||
let ca = rcgen::Certificate::from_params({
|
let ca = rcgen::Certificate::from_params({
|
||||||
let mut params = rcgen::CertificateParams::default();
|
let mut params = rcgen::CertificateParams::default();
|
||||||
params.is_ca = rcgen::IsCa::Ca(rcgen::BasicConstraints::Unconstrained);
|
params.is_ca = rcgen::IsCa::Ca(rcgen::BasicConstraints::Unconstrained);
|
||||||
@@ -45,9 +50,9 @@ fn generate_certs(
|
|||||||
})?;
|
})?;
|
||||||
|
|
||||||
Ok((
|
Ok((
|
||||||
rustls::Certificate(ca.serialize_der()?),
|
pki_types::CertificateDer::from(ca.serialize_der()?),
|
||||||
rustls::Certificate(cert.serialize_der_with_signer(&ca)?),
|
pki_types::CertificateDer::from(cert.serialize_der_with_signer(&ca)?),
|
||||||
rustls::PrivateKey(cert.serialize_private_key_der()),
|
pki_types::PrivateKeyDer::Pkcs8(cert.serialize_private_key_der().into()),
|
||||||
))
|
))
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -82,9 +87,8 @@ fn generate_tls_config<'a>(
|
|||||||
|
|
||||||
let tls_config = {
|
let tls_config = {
|
||||||
let config = rustls::ServerConfig::builder()
|
let config = rustls::ServerConfig::builder()
|
||||||
.with_safe_defaults()
|
|
||||||
.with_no_client_auth()
|
.with_no_client_auth()
|
||||||
.with_single_cert(vec![cert.clone()], key.clone())?
|
.with_single_cert(vec![cert.clone()], key.clone_key())?
|
||||||
.into();
|
.into();
|
||||||
|
|
||||||
let mut cert_resolver = CertResolver::new();
|
let mut cert_resolver = CertResolver::new();
|
||||||
@@ -101,10 +105,9 @@ fn generate_tls_config<'a>(
|
|||||||
|
|
||||||
let client_config = {
|
let client_config = {
|
||||||
let config = rustls::ClientConfig::builder()
|
let config = rustls::ClientConfig::builder()
|
||||||
.with_safe_defaults()
|
|
||||||
.with_root_certificates({
|
.with_root_certificates({
|
||||||
let mut store = rustls::RootCertStore::empty();
|
let mut store = rustls::RootCertStore::empty();
|
||||||
store.add(&ca)?;
|
store.add(ca)?;
|
||||||
store
|
store
|
||||||
})
|
})
|
||||||
.with_no_client_auth();
|
.with_no_client_auth();
|
||||||
|
|||||||
@@ -60,7 +60,6 @@ regex = { version = "1" }
|
|||||||
regex-automata = { version = "0.4", default-features = false, features = ["dfa-onepass", "hybrid", "meta", "nfa-backtrack", "perf-inline", "perf-literal", "unicode"] }
|
regex-automata = { version = "0.4", default-features = false, features = ["dfa-onepass", "hybrid", "meta", "nfa-backtrack", "perf-inline", "perf-literal", "unicode"] }
|
||||||
regex-syntax = { version = "0.8" }
|
regex-syntax = { version = "0.8" }
|
||||||
reqwest = { version = "0.11", default-features = false, features = ["blocking", "default-tls", "json", "multipart", "rustls-tls", "stream"] }
|
reqwest = { version = "0.11", default-features = false, features = ["blocking", "default-tls", "json", "multipart", "rustls-tls", "stream"] }
|
||||||
ring = { version = "0.16" }
|
|
||||||
rustls = { version = "0.21", features = ["dangerous_configuration"] }
|
rustls = { version = "0.21", features = ["dangerous_configuration"] }
|
||||||
scopeguard = { version = "1" }
|
scopeguard = { version = "1" }
|
||||||
serde = { version = "1", features = ["alloc", "derive"] }
|
serde = { version = "1", features = ["alloc", "derive"] }
|
||||||
@@ -80,6 +79,7 @@ tracing-core = { version = "0.1" }
|
|||||||
tungstenite = { version = "0.20" }
|
tungstenite = { version = "0.20" }
|
||||||
url = { version = "2", features = ["serde"] }
|
url = { version = "2", features = ["serde"] }
|
||||||
uuid = { version = "1", features = ["serde", "v4", "v7"] }
|
uuid = { version = "1", features = ["serde", "v4", "v7"] }
|
||||||
|
zeroize = { version = "1", features = ["derive"] }
|
||||||
zstd = { version = "0.13" }
|
zstd = { version = "0.13" }
|
||||||
zstd-safe = { version = "7", default-features = false, features = ["arrays", "legacy", "std", "zdict_builder"] }
|
zstd-safe = { version = "7", default-features = false, features = ["arrays", "legacy", "std", "zdict_builder"] }
|
||||||
zstd-sys = { version = "2", default-features = false, features = ["legacy", "std", "zdict_builder"] }
|
zstd-sys = { version = "2", default-features = false, features = ["legacy", "std", "zdict_builder"] }
|
||||||
|
|||||||
Reference in New Issue
Block a user