forked from mirrors/gecko-dev
Bug 1899706 - Neqo v0.7.9, r=necko-reviewers,valentin
Differential Revision: https://phabricator.services.mozilla.com/D212097
This commit is contained in:
parent
abacc75696
commit
a70dd94993
29 changed files with 187 additions and 110 deletions
|
|
@ -90,9 +90,9 @@ git = "https://github.com/mozilla/mp4parse-rust"
|
|||
rev = "a138e40ec1c603615873e524b5b22e11c0ec4820"
|
||||
replace-with = "vendored-sources"
|
||||
|
||||
[source."git+https://github.com/mozilla/neqo?tag=v0.7.8"]
|
||||
[source."git+https://github.com/mozilla/neqo?tag=v0.7.9"]
|
||||
git = "https://github.com/mozilla/neqo"
|
||||
tag = "v0.7.8"
|
||||
tag = "v0.7.9"
|
||||
replace-with = "vendored-sources"
|
||||
|
||||
[source."git+https://github.com/seanmonstar/warp?rev=9d081461ae1167eb321585ce424f4fef6cf0092b"]
|
||||
|
|
|
|||
24
Cargo.lock
generated
24
Cargo.lock
generated
|
|
@ -3939,8 +3939,8 @@ dependencies = [
|
|||
|
||||
[[package]]
|
||||
name = "neqo-bin"
|
||||
version = "0.7.8"
|
||||
source = "git+https://github.com/mozilla/neqo?tag=v0.7.8#a71e43dacf8fae41e5aa30cf95b2e826f63a7466"
|
||||
version = "0.7.9"
|
||||
source = "git+https://github.com/mozilla/neqo?tag=v0.7.9#121fe683ae4b39a5b694f671abfd397cbd9b4322"
|
||||
dependencies = [
|
||||
"clap",
|
||||
"clap-verbosity-flag",
|
||||
|
|
@ -3961,8 +3961,8 @@ dependencies = [
|
|||
|
||||
[[package]]
|
||||
name = "neqo-common"
|
||||
version = "0.7.8"
|
||||
source = "git+https://github.com/mozilla/neqo?tag=v0.7.8#a71e43dacf8fae41e5aa30cf95b2e826f63a7466"
|
||||
version = "0.7.9"
|
||||
source = "git+https://github.com/mozilla/neqo?tag=v0.7.9#121fe683ae4b39a5b694f671abfd397cbd9b4322"
|
||||
dependencies = [
|
||||
"enum-map",
|
||||
"env_logger",
|
||||
|
|
@ -3974,8 +3974,8 @@ dependencies = [
|
|||
|
||||
[[package]]
|
||||
name = "neqo-crypto"
|
||||
version = "0.7.8"
|
||||
source = "git+https://github.com/mozilla/neqo?tag=v0.7.8#a71e43dacf8fae41e5aa30cf95b2e826f63a7466"
|
||||
version = "0.7.9"
|
||||
source = "git+https://github.com/mozilla/neqo?tag=v0.7.9#121fe683ae4b39a5b694f671abfd397cbd9b4322"
|
||||
dependencies = [
|
||||
"bindgen 0.69.4",
|
||||
"log",
|
||||
|
|
@ -3989,8 +3989,8 @@ dependencies = [
|
|||
|
||||
[[package]]
|
||||
name = "neqo-http3"
|
||||
version = "0.7.8"
|
||||
source = "git+https://github.com/mozilla/neqo?tag=v0.7.8#a71e43dacf8fae41e5aa30cf95b2e826f63a7466"
|
||||
version = "0.7.9"
|
||||
source = "git+https://github.com/mozilla/neqo?tag=v0.7.9#121fe683ae4b39a5b694f671abfd397cbd9b4322"
|
||||
dependencies = [
|
||||
"enumset",
|
||||
"log",
|
||||
|
|
@ -4006,8 +4006,8 @@ dependencies = [
|
|||
|
||||
[[package]]
|
||||
name = "neqo-qpack"
|
||||
version = "0.7.8"
|
||||
source = "git+https://github.com/mozilla/neqo?tag=v0.7.8#a71e43dacf8fae41e5aa30cf95b2e826f63a7466"
|
||||
version = "0.7.9"
|
||||
source = "git+https://github.com/mozilla/neqo?tag=v0.7.9#121fe683ae4b39a5b694f671abfd397cbd9b4322"
|
||||
dependencies = [
|
||||
"log",
|
||||
"neqo-common",
|
||||
|
|
@ -4019,8 +4019,8 @@ dependencies = [
|
|||
|
||||
[[package]]
|
||||
name = "neqo-transport"
|
||||
version = "0.7.8"
|
||||
source = "git+https://github.com/mozilla/neqo?tag=v0.7.8#a71e43dacf8fae41e5aa30cf95b2e826f63a7466"
|
||||
version = "0.7.9"
|
||||
source = "git+https://github.com/mozilla/neqo?tag=v0.7.9#121fe683ae4b39a5b694f671abfd397cbd9b4322"
|
||||
dependencies = [
|
||||
"enum-map",
|
||||
"indexmap 2.2.6",
|
||||
|
|
|
|||
|
|
@ -9,10 +9,10 @@ license = "MPL-2.0"
|
|||
name = "neqo_glue"
|
||||
|
||||
[dependencies]
|
||||
neqo-http3 = { tag = "v0.7.8", git = "https://github.com/mozilla/neqo" }
|
||||
neqo-transport = { tag = "v0.7.8", git = "https://github.com/mozilla/neqo" }
|
||||
neqo-common = { tag = "v0.7.8", git = "https://github.com/mozilla/neqo" }
|
||||
neqo-qpack = { tag = "v0.7.8", git = "https://github.com/mozilla/neqo" }
|
||||
neqo-http3 = { tag = "v0.7.9", git = "https://github.com/mozilla/neqo" }
|
||||
neqo-transport = { tag = "v0.7.9", git = "https://github.com/mozilla/neqo" }
|
||||
neqo-common = { tag = "v0.7.9", git = "https://github.com/mozilla/neqo" }
|
||||
neqo-qpack = { tag = "v0.7.9", git = "https://github.com/mozilla/neqo" }
|
||||
nserror = { path = "../../../xpcom/rust/nserror" }
|
||||
nsstring = { path = "../../../xpcom/rust/nsstring" }
|
||||
xpcom = { path = "../../../xpcom/rust/xpcom" }
|
||||
|
|
@ -27,7 +27,7 @@ uuid = { version = "1.0", features = ["v4"] }
|
|||
winapi = {version = "0.3", features = ["ws2def"] }
|
||||
|
||||
[dependencies.neqo-crypto]
|
||||
tag = "v0.7.8"
|
||||
tag = "v0.7.9"
|
||||
git = "https://github.com/mozilla/neqo"
|
||||
default-features = false
|
||||
features = ["gecko"]
|
||||
|
|
|
|||
|
|
@ -6,11 +6,11 @@ edition = "2018"
|
|||
license = "MPL-2.0"
|
||||
|
||||
[dependencies]
|
||||
neqo-bin = { tag = "v0.7.8", git = "https://github.com/mozilla/neqo" }
|
||||
neqo-transport = { tag = "v0.7.8", git = "https://github.com/mozilla/neqo" }
|
||||
neqo-common = { tag = "v0.7.8", git = "https://github.com/mozilla/neqo" }
|
||||
neqo-http3 = { tag = "v0.7.8", git = "https://github.com/mozilla/neqo" }
|
||||
neqo-qpack = { tag = "v0.7.8", git = "https://github.com/mozilla/neqo" }
|
||||
neqo-bin = { tag = "v0.7.9", git = "https://github.com/mozilla/neqo" }
|
||||
neqo-transport = { tag = "v0.7.9", git = "https://github.com/mozilla/neqo" }
|
||||
neqo-common = { tag = "v0.7.9", git = "https://github.com/mozilla/neqo" }
|
||||
neqo-http3 = { tag = "v0.7.9", git = "https://github.com/mozilla/neqo" }
|
||||
neqo-qpack = { tag = "v0.7.9", git = "https://github.com/mozilla/neqo" }
|
||||
log = "0.4.0"
|
||||
base64 = "0.21"
|
||||
cfg-if = "1.0"
|
||||
|
|
@ -20,7 +20,7 @@ tokio = { version = "1", features = ["rt-multi-thread"] }
|
|||
mozilla-central-workspace-hack = { version = "0.1", features = ["http3server"], optional = true }
|
||||
|
||||
[dependencies.neqo-crypto]
|
||||
tag = "v0.7.8"
|
||||
tag = "v0.7.9"
|
||||
git = "https://github.com/mozilla/neqo"
|
||||
default-features = false
|
||||
features = ["gecko"]
|
||||
|
|
|
|||
|
|
@ -1 +1 @@
|
|||
{"files":{"Cargo.toml":"a5c6890e9bcc19edef2f6722a17a0e8a88d102de83ffc0878f19054e730d6061","benches/main.rs":"0835db58b265c529dcde6b208942b60e932ac0665e7f303cf60406ff9994dd45","src/bin/client.rs":"db77efd75dc0745b6dd983ab8fa3bc8f5f9111967f0d90d23cb19140a940246d","src/bin/server.rs":"2f7ab3c7a98117bd162e6fd07abef1d21791d1bb240db3aae61afa6ff72df83a","src/client/http09.rs":"b13eda497821c932f60a45af304e4d3769d76588edfe6f940ba6b8f87dc7f96c","src/client/http3.rs":"66a15d176b98528277c2158b4e6df2e52715312180222ad279809868b7aa0d2a","src/client/mod.rs":"bef0d7874dd6de84e3320d877ab098889037da1fe3610d82365f9e66c73d939c","src/lib.rs":"77d01388ea8bf076dca5b67c8003622868a0d37af5bbf9deb50d41c971eb579b","src/server/http09.rs":"64a318ee47ea9c2f8454e0ef809f50aaffadf5c3505086b0aa2d42c6957ef637","src/server/http3.rs":"dc9f71f964574fae7e83c49184df8cd76f9c1c019ca8592941acf093b9393efc","src/server/mod.rs":"eeabaed415b7c9eebc9b3bae255963c1c3407ae5ef30abefc29e7d26f649219a","src/udp.rs":"d914b6cf1dda149202c0499182f646f38244376903ee109c829de58c1a12132c"},"package":null}
|
||||
{"files":{"Cargo.toml":"8147570152018b0e613e3745cf0f48ceabc1977047d16744a9e88ea55b1dd431","benches/main.rs":"0835db58b265c529dcde6b208942b60e932ac0665e7f303cf60406ff9994dd45","src/bin/client.rs":"db77efd75dc0745b6dd983ab8fa3bc8f5f9111967f0d90d23cb19140a940246d","src/bin/server.rs":"2f7ab3c7a98117bd162e6fd07abef1d21791d1bb240db3aae61afa6ff72df83a","src/client/http09.rs":"b13eda497821c932f60a45af304e4d3769d76588edfe6f940ba6b8f87dc7f96c","src/client/http3.rs":"66a15d176b98528277c2158b4e6df2e52715312180222ad279809868b7aa0d2a","src/client/mod.rs":"bef0d7874dd6de84e3320d877ab098889037da1fe3610d82365f9e66c73d939c","src/lib.rs":"77d01388ea8bf076dca5b67c8003622868a0d37af5bbf9deb50d41c971eb579b","src/server/http09.rs":"e1834ae7ae15e00c25c07a4ff522a0efe8f6a97996983a2c35a4cbe4a746128d","src/server/http3.rs":"dc9f71f964574fae7e83c49184df8cd76f9c1c019ca8592941acf093b9393efc","src/server/mod.rs":"eeabaed415b7c9eebc9b3bae255963c1c3407ae5ef30abefc29e7d26f649219a","src/udp.rs":"d914b6cf1dda149202c0499182f646f38244376903ee109c829de58c1a12132c"},"package":null}
|
||||
2
third_party/rust/neqo-bin/Cargo.toml
vendored
2
third_party/rust/neqo-bin/Cargo.toml
vendored
|
|
@ -13,7 +13,7 @@
|
|||
edition = "2021"
|
||||
rust-version = "1.76.0"
|
||||
name = "neqo-bin"
|
||||
version = "0.7.8"
|
||||
version = "0.7.9"
|
||||
authors = ["The Neqo Authors <necko@mozilla.com>"]
|
||||
description = "A basic QUIC HTTP/0.9 and HTTP/3 client and server."
|
||||
homepage = "https://github.com/mozilla/neqo/"
|
||||
|
|
|
|||
16
third_party/rust/neqo-bin/src/server/http09.rs
vendored
16
third_party/rust/neqo-bin/src/server/http09.rs
vendored
|
|
@ -28,6 +28,7 @@ pub struct HttpServer {
|
|||
write_state: HashMap<StreamId, HttpStreamState>,
|
||||
read_state: HashMap<StreamId, Vec<u8>>,
|
||||
is_qns_test: bool,
|
||||
regex: Regex,
|
||||
}
|
||||
|
||||
impl HttpServer {
|
||||
|
|
@ -60,11 +61,17 @@ impl HttpServer {
|
|||
qinfo!("ECHConfigList: {}", hex(cfg));
|
||||
}
|
||||
|
||||
let is_qns_test = args.shared.qns_test.is_some();
|
||||
Ok(Self {
|
||||
server,
|
||||
write_state: HashMap::new(),
|
||||
read_state: HashMap::new(),
|
||||
is_qns_test: args.shared.qns_test.is_some(),
|
||||
is_qns_test,
|
||||
regex: if is_qns_test {
|
||||
Regex::new(r"GET +/(\S+)(?:\r)?\n").unwrap()
|
||||
} else {
|
||||
Regex::new(r"GET +/(\d+)(?:\r)?\n").unwrap()
|
||||
},
|
||||
})
|
||||
}
|
||||
|
||||
|
|
@ -144,12 +151,7 @@ impl HttpServer {
|
|||
return;
|
||||
};
|
||||
|
||||
let re = if self.is_qns_test {
|
||||
Regex::new(r"GET +/(\S+)(?:\r)?\n").unwrap()
|
||||
} else {
|
||||
Regex::new(r"GET +/(\d+)(?:\r)?\n").unwrap()
|
||||
};
|
||||
let m = re.captures(msg);
|
||||
let m = self.regex.captures(msg);
|
||||
let Some(path) = m.and_then(|m| m.get(1)) else {
|
||||
self.save_partial(stream_id, buf, conn);
|
||||
return;
|
||||
|
|
|
|||
|
|
@ -1 +1 @@
|
|||
{"files":{"Cargo.toml":"490c66f6904d559ed4be60b5fea594b565da346eda98e884b54809f741bcc08d","build.rs":"306b2f909a25ae38daf5404a4e128d2a94e8975b70870864c2a71cafec9717c7","src/codec.rs":"fd239f75d374db6ff744211344c82bcd19ecf753e07410e1fe37732bbb81dfe9","src/datagram.rs":"56b4c1001c6bfb9394e4b3f968e2e17f55db774510ea576b91e127a6b32300d0","src/event.rs":"106ca6c4afb107fa49a1bc72f5eb4ae95f4baa1ba19736aa38c8ba973774c160","src/fuzz.rs":"1ca74a34bdc97fedecf8a63c4a13cc487d1b2212398fb76f67792c822002138d","src/header.rs":"467b947f78bfe354d8bb51e8df0c2be69e75a45e2be688d81f0d268aa77c89ef","src/hrtime.rs":"112dc758e65301b8a7a508b125d3d61063180d432bffaec566a050d4f907ab18","src/incrdecoder.rs":"577c32b9ace51f2daaf940be6d0c391c4f55cd42ef6848c68c1ffc970d8c57b5","src/lib.rs":"a8efb2d2c098575ad28069d9da1be450784adf1fecb9e4a9cf30928e70092e49","src/log.rs":"6ed99e15707c4256ae793011ed2f4b33aa81fed70205aaf5f8d3cd11ad451cf0","src/qlog.rs":"9b081f32bf158fd340300693acc97fe0554b617ae664eba86e4d3572e2b1e16e","src/tos.rs":"087cd9b12a2510f05605e755d85c07179817c22670fe1b5d6db987357f77b38e","tests/log.rs":"a11e21fb570258ca93bb40e3923817d381e1e605accbc3aed1df5a0a9918b41d"},"package":null}
|
||||
{"files":{"Cargo.toml":"444cb61aa7dc0c89b6c60574f3bf4661ec74c1cf88ddb87bba3ad98c5a84b932","build.rs":"306b2f909a25ae38daf5404a4e128d2a94e8975b70870864c2a71cafec9717c7","src/codec.rs":"fd239f75d374db6ff744211344c82bcd19ecf753e07410e1fe37732bbb81dfe9","src/datagram.rs":"56b4c1001c6bfb9394e4b3f968e2e17f55db774510ea576b91e127a6b32300d0","src/event.rs":"106ca6c4afb107fa49a1bc72f5eb4ae95f4baa1ba19736aa38c8ba973774c160","src/fuzz.rs":"1ca74a34bdc97fedecf8a63c4a13cc487d1b2212398fb76f67792c822002138d","src/header.rs":"467b947f78bfe354d8bb51e8df0c2be69e75a45e2be688d81f0d268aa77c89ef","src/hrtime.rs":"112dc758e65301b8a7a508b125d3d61063180d432bffaec566a050d4f907ab18","src/incrdecoder.rs":"577c32b9ace51f2daaf940be6d0c391c4f55cd42ef6848c68c1ffc970d8c57b5","src/lib.rs":"a8efb2d2c098575ad28069d9da1be450784adf1fecb9e4a9cf30928e70092e49","src/log.rs":"6ed99e15707c4256ae793011ed2f4b33aa81fed70205aaf5f8d3cd11ad451cf0","src/qlog.rs":"9b081f32bf158fd340300693acc97fe0554b617ae664eba86e4d3572e2b1e16e","src/tos.rs":"087cd9b12a2510f05605e755d85c07179817c22670fe1b5d6db987357f77b38e","tests/log.rs":"a11e21fb570258ca93bb40e3923817d381e1e605accbc3aed1df5a0a9918b41d"},"package":null}
|
||||
2
third_party/rust/neqo-common/Cargo.toml
vendored
2
third_party/rust/neqo-common/Cargo.toml
vendored
|
|
@ -13,7 +13,7 @@
|
|||
edition = "2021"
|
||||
rust-version = "1.76.0"
|
||||
name = "neqo-common"
|
||||
version = "0.7.8"
|
||||
version = "0.7.9"
|
||||
authors = ["The Neqo Authors <necko@mozilla.com>"]
|
||||
homepage = "https://github.com/mozilla/neqo/"
|
||||
license = "MIT OR Apache-2.0"
|
||||
|
|
|
|||
|
|
@ -1 +1 @@
|
|||
{"files":{"Cargo.toml":"b60660030f363cac327ddfafc4259a210e4c91ee7a39aec90fef354dbdde7250","bindings/bindings.toml":"29ec7a8ef3d5f1e4a632003e2d36c270e1caf12fd3fcf108a22d1893b90a41a6","bindings/nspr_err.h":"2d5205d017b536c2d838bcf9bc4ec79f96dd50e7bb9b73892328781f1ee6629d","bindings/nspr_error.h":"e41c03c77b8c22046f8618832c9569fbcc7b26d8b9bbc35eea7168f35e346889","bindings/nspr_io.h":"085b289849ef0e77f88512a27b4d9bdc28252bd4d39c6a17303204e46ef45f72","bindings/nspr_time.h":"2e637fd338a5cf0fd3fb0070a47f474a34c2a7f4447f31b6875f5a9928d0a261","bindings/nss_ciphers.h":"95ec6344a607558b3c5ba8510f463b6295f3a2fb3f538a01410531045a5f62d1","bindings/nss_init.h":"ef49045063782fb612aff459172cc6a89340f15005808608ade5320ca9974310","bindings/nss_p11.h":"0b81e64fe6db49b2ecff94edd850be111ef99ec11220e88ceb1c67be90143a78","bindings/nss_secerr.h":"713e8368bdae5159af7893cfa517dabfe5103cede051dee9c9557c850a2defc6","bindings/nss_ssl.h":"af222fb957b989e392e762fa2125c82608a0053aff4fb97e556691646c88c335","bindings/nss_sslerr.h":"24b97f092183d8486f774cdaef5030d0249221c78343570d83a4ee5b594210ae","bindings/nss_sslopt.h":"b7807eb7abdad14db6ad7bc51048a46b065a0ea65a4508c95a12ce90e59d1eea","build.rs":"6c3e94359395cce5cb29bc0063ff930ffcd7edd50c040cb459acce6c80aa4ef4","min_version.txt":"7e98f86c69cddb4f65cf96a6de1f4297e3ce224a4c4628609e29042b6c4dcfb9","src/aead.rs":"fc42bc20b84d2e5ccfd56271ae2d2db082e55586ea2926470c102da177f22296","src/aead_null.rs":"3a553f21126c9ca0116c2be81e5a777011b33c159fd88c4f384614bbdb06bb2e","src/agent.rs":"0ef7b488480d12c01a122050e82809bc784443ef6277d75fce21d706fbf5eaaf","src/agentio.rs":"415f70b95312d3ee6d74ba6f28094246101ab6d535aa9df880c38d8bb5a9279e","src/auth.rs":"ced1a18f691894984244088020ea25dc1ee678603317f0c7dfc8b8842fa750b4","src/cert.rs":"8942cb3ce25a61f92b6ffc30fb286052ed6f56eeda3be12fd46ea76ceba6c1cf","src/constants.rs":"f5c779db128a8b0607841ca18c376971017eb327e102e5e6959a7d8effe4b3a6","src/ech.rs":"9d322fcc01c0886f1dfe9bb6273cb9f88a746452ac9a802761b1816a05930c1f","src/err.rs":"ae979f334604aba89640c4491262641910033f0bd790d58671f649f5039b291c","src/exp.rs":"cec59d61fc95914f9703d2fb6490a8507af993c9db710dde894f2f8fd38123c7","src/ext.rs":"cbf7d9f5ecabf4b8c9efd6c334637ab1596ec5266d38ab8d2d6ceae305283deb","src/hkdf.rs":"ef32f20e30a9bd7f094199536d19c87c4231b7fbbe4a9c54c70e84ca9c6575be","src/hp.rs":"644f1bed67f1c6189a67c8d02ab3358aaa7f63af4b913dd7395becbc01a84291","src/lib.rs":"6b2d0eb2c55f6351d673d3a3e5fc5adac8d1030c67dae9af4c79552de0f57455","src/min_version.rs":"89b7ef6f9d2301db4f689f4d963b58375d577f705b92003a804048441e00cfd1","src/p11.rs":"704c5f164c4f195c8051c5bf1e69a912c34b613a8cf6bed5f577dc5674eea34e","src/prio.rs":"e5e169296c0ac69919c59fb6c1f8bd6bf079452eaa13d75da0edd41d435d3f6f","src/replay.rs":"96b7af8eff9e14313e79303092018b12e8834f780c96b8e247c497fdc680c696","src/result.rs":"0587cbb6aace71a7f9765ef7c01dcd9f73a49dcc6331e1d8fe4de2aef6ca65b6","src/secrets.rs":"4ffaa66f25df47dadf042063bff5953effa7bf2f4920cafe827757d6a659cb58","src/selfencrypt.rs":"b7cc1c896c7661c37461fc3a8bcbfdf2589433b907fa5f968ae4f6907704b441","src/ssl.rs":"c83baa5518b81dd06f2e4072ea3c2d666ccdeb8b1ff6e3746eea9f1af47023a6","src/time.rs":"c71a01ff8aa2c0e97fb16ad620df4ed6b7cc1819ff93f46634e2f1c9551627ec","tests/aead.rs":"e36ae77802df1ea6d17cfd1bd2178a3706089577d6fd1554ca86e748b8b235b9","tests/agent.rs":"824735f88e487a3748200844e9481e81a72163ad74d82faa9aa16594d9b9bb25","tests/ext.rs":"1b047d23d9b224ad06eb65d8f3a7b351e263774e404c79bbcbe8f43790e29c18","tests/handshake.rs":"e892a2839b31414be16e96cdf3b1a65978716094700c1a4989229f7edbf578a0","tests/hkdf.rs":"1d2098dc8398395864baf13e4886cfd1da6d36118727c3b264f457ee3da6b048","tests/hp.rs":"b24fec53771c169be788772532d2617a5349196cf87d6444dc74214f7c73e92c","tests/init.rs":"616313cb38eac44b8c71a1d23a52a7d7b4c7c07d4c20dc9ea6600c3317f92613","tests/selfencrypt.rs":"8d10840b41629bf449a6b3a551377315e8a05ca26c6b041548748196652c5909"},"package":null}
|
||||
{"files":{"Cargo.toml":"fa915d4cac0a051c77107dd6f74514915fe2924fe3eecaad10e995062767fbbb","bindings/bindings.toml":"56921b753535f899b8095df3e8af04b1dc2213c4808dfb39734a3c554454d01d","bindings/nspr_err.h":"2d5205d017b536c2d838bcf9bc4ec79f96dd50e7bb9b73892328781f1ee6629d","bindings/nspr_error.h":"e41c03c77b8c22046f8618832c9569fbcc7b26d8b9bbc35eea7168f35e346889","bindings/nspr_io.h":"085b289849ef0e77f88512a27b4d9bdc28252bd4d39c6a17303204e46ef45f72","bindings/nspr_time.h":"2e637fd338a5cf0fd3fb0070a47f474a34c2a7f4447f31b6875f5a9928d0a261","bindings/nss_ciphers.h":"95ec6344a607558b3c5ba8510f463b6295f3a2fb3f538a01410531045a5f62d1","bindings/nss_init.h":"ef49045063782fb612aff459172cc6a89340f15005808608ade5320ca9974310","bindings/nss_p11.h":"0b81e64fe6db49b2ecff94edd850be111ef99ec11220e88ceb1c67be90143a78","bindings/nss_secerr.h":"713e8368bdae5159af7893cfa517dabfe5103cede051dee9c9557c850a2defc6","bindings/nss_ssl.h":"af222fb957b989e392e762fa2125c82608a0053aff4fb97e556691646c88c335","bindings/nss_sslerr.h":"24b97f092183d8486f774cdaef5030d0249221c78343570d83a4ee5b594210ae","bindings/nss_sslopt.h":"b7807eb7abdad14db6ad7bc51048a46b065a0ea65a4508c95a12ce90e59d1eea","build.rs":"6c3e94359395cce5cb29bc0063ff930ffcd7edd50c040cb459acce6c80aa4ef4","min_version.txt":"7e98f86c69cddb4f65cf96a6de1f4297e3ce224a4c4628609e29042b6c4dcfb9","src/aead.rs":"fc42bc20b84d2e5ccfd56271ae2d2db082e55586ea2926470c102da177f22296","src/aead_null.rs":"3a553f21126c9ca0116c2be81e5a777011b33c159fd88c4f384614bbdb06bb2e","src/agent.rs":"0ef7b488480d12c01a122050e82809bc784443ef6277d75fce21d706fbf5eaaf","src/agentio.rs":"415f70b95312d3ee6d74ba6f28094246101ab6d535aa9df880c38d8bb5a9279e","src/auth.rs":"ced1a18f691894984244088020ea25dc1ee678603317f0c7dfc8b8842fa750b4","src/cert.rs":"8942cb3ce25a61f92b6ffc30fb286052ed6f56eeda3be12fd46ea76ceba6c1cf","src/constants.rs":"f5c779db128a8b0607841ca18c376971017eb327e102e5e6959a7d8effe4b3a6","src/ech.rs":"9d322fcc01c0886f1dfe9bb6273cb9f88a746452ac9a802761b1816a05930c1f","src/err.rs":"ae979f334604aba89640c4491262641910033f0bd790d58671f649f5039b291c","src/exp.rs":"cec59d61fc95914f9703d2fb6490a8507af993c9db710dde894f2f8fd38123c7","src/ext.rs":"cbf7d9f5ecabf4b8c9efd6c334637ab1596ec5266d38ab8d2d6ceae305283deb","src/hkdf.rs":"ef32f20e30a9bd7f094199536d19c87c4231b7fbbe4a9c54c70e84ca9c6575be","src/hp.rs":"644f1bed67f1c6189a67c8d02ab3358aaa7f63af4b913dd7395becbc01a84291","src/lib.rs":"1f2c171e76f353c99cebe66f9812d3021ab2914eb015fed6a07409b7cfa426e6","src/min_version.rs":"89b7ef6f9d2301db4f689f4d963b58375d577f705b92003a804048441e00cfd1","src/p11.rs":"704c5f164c4f195c8051c5bf1e69a912c34b613a8cf6bed5f577dc5674eea34e","src/prio.rs":"e5e169296c0ac69919c59fb6c1f8bd6bf079452eaa13d75da0edd41d435d3f6f","src/replay.rs":"96b7af8eff9e14313e79303092018b12e8834f780c96b8e247c497fdc680c696","src/result.rs":"0587cbb6aace71a7f9765ef7c01dcd9f73a49dcc6331e1d8fe4de2aef6ca65b6","src/secrets.rs":"4ffaa66f25df47dadf042063bff5953effa7bf2f4920cafe827757d6a659cb58","src/selfencrypt.rs":"b7cc1c896c7661c37461fc3a8bcbfdf2589433b907fa5f968ae4f6907704b441","src/ssl.rs":"c83baa5518b81dd06f2e4072ea3c2d666ccdeb8b1ff6e3746eea9f1af47023a6","src/time.rs":"c71a01ff8aa2c0e97fb16ad620df4ed6b7cc1819ff93f46634e2f1c9551627ec","tests/aead.rs":"e36ae77802df1ea6d17cfd1bd2178a3706089577d6fd1554ca86e748b8b235b9","tests/agent.rs":"824735f88e487a3748200844e9481e81a72163ad74d82faa9aa16594d9b9bb25","tests/ext.rs":"1b047d23d9b224ad06eb65d8f3a7b351e263774e404c79bbcbe8f43790e29c18","tests/handshake.rs":"e892a2839b31414be16e96cdf3b1a65978716094700c1a4989229f7edbf578a0","tests/hkdf.rs":"1d2098dc8398395864baf13e4886cfd1da6d36118727c3b264f457ee3da6b048","tests/hp.rs":"b24fec53771c169be788772532d2617a5349196cf87d6444dc74214f7c73e92c","tests/init.rs":"616313cb38eac44b8c71a1d23a52a7d7b4c7c07d4c20dc9ea6600c3317f92613","tests/selfencrypt.rs":"8d10840b41629bf449a6b3a551377315e8a05ca26c6b041548748196652c5909"},"package":null}
|
||||
2
third_party/rust/neqo-crypto/Cargo.toml
vendored
2
third_party/rust/neqo-crypto/Cargo.toml
vendored
|
|
@ -13,7 +13,7 @@
|
|||
edition = "2021"
|
||||
rust-version = "1.76.0"
|
||||
name = "neqo-crypto"
|
||||
version = "0.7.8"
|
||||
version = "0.7.9"
|
||||
authors = ["The Neqo Authors <necko@mozilla.com>"]
|
||||
homepage = "https://github.com/mozilla/neqo/"
|
||||
license = "MIT OR Apache-2.0"
|
||||
|
|
|
|||
|
|
@ -153,6 +153,7 @@ functions = [
|
|||
"CERT_DestroyCertificate",
|
||||
"CERT_DestroyCertList",
|
||||
"CERT_GetCertificateDer",
|
||||
"NSS_SetAlgorithmPolicy",
|
||||
"PK11_CipherOp",
|
||||
"PK11_CreateContextBySymKey",
|
||||
"PK11_DestroyContext",
|
||||
|
|
@ -208,6 +209,7 @@ variables = [
|
|||
"CKM_EC_KEY_PAIR_GEN",
|
||||
"CKM_HKDF_DERIVE",
|
||||
"CKM_INVALID_MECHANISM",
|
||||
"NSS_USE_ALG_IN_SSL_KX",
|
||||
"PK11_ATTR_INSENSITIVE",
|
||||
"PK11_ATTR_PRIVATE",
|
||||
"PK11_ATTR_PUBLIC",
|
||||
|
|
|
|||
14
third_party/rust/neqo-crypto/src/lib.rs
vendored
14
third_party/rust/neqo-crypto/src/lib.rs
vendored
|
|
@ -122,6 +122,13 @@ pub fn init() -> Res<()> {
|
|||
|
||||
secstatus_to_res(unsafe { nss::NSS_NoDB_Init(null()) })?;
|
||||
secstatus_to_res(unsafe { nss::NSS_SetDomesticPolicy() })?;
|
||||
secstatus_to_res(unsafe {
|
||||
p11::NSS_SetAlgorithmPolicy(
|
||||
p11::SECOidTag::SEC_OID_XYBER768D00,
|
||||
p11::NSS_USE_ALG_IN_SSL_KX,
|
||||
0,
|
||||
)
|
||||
})?;
|
||||
|
||||
Ok(NssLoaded::NoDb)
|
||||
});
|
||||
|
|
@ -170,6 +177,13 @@ pub fn init_db<P: Into<PathBuf>>(dir: P) -> Res<()> {
|
|||
})?;
|
||||
|
||||
secstatus_to_res(unsafe { nss::NSS_SetDomesticPolicy() })?;
|
||||
secstatus_to_res(unsafe {
|
||||
p11::NSS_SetAlgorithmPolicy(
|
||||
p11::SECOidTag::SEC_OID_XYBER768D00,
|
||||
p11::NSS_USE_ALG_IN_SSL_KX,
|
||||
0,
|
||||
)
|
||||
})?;
|
||||
secstatus_to_res(unsafe {
|
||||
ssl::SSL_ConfigServerSessionIDCache(1024, 0, 0, dircstr.as_ptr())
|
||||
})?;
|
||||
|
|
|
|||
|
|
@ -1 +1 @@
|
|||
{"files":{"Cargo.toml":"d47fc19b1c133e6edceba68b8926573d1699698daa2df07d8f9f1a17b026abda","src/buffered_send_stream.rs":"0e8ad3f443a33e213d55ba26a1ff266692c9087a1627c9b3d10c5025dee550ac","src/client_events.rs":"77fedca72ce54956eaba3fb7103085d196a631b764662584ea2629224c5c234e","src/conn_params.rs":"224a8ea6ef632930a7788a1cabf47ce69ad41bd4bc8dcf3053fbd998fdb38e82","src/connection.rs":"f5f49dd72170f7e42c180b738ff8bddae92fd0c71acc5a08736e298bf53483e7","src/connection_client.rs":"0e578d714c04d1f21319b72a6d3be0e3f3440b8234d2e1bd2b5889dd2b51d88a","src/connection_server.rs":"de5a6cb42b8c4dc08fb1f626f681b45cd22435892b11e6053b61a5401490db94","src/control_stream_local.rs":"ae52e3286f1686ca1265e7de841392addd42616db02799bb967a59feb6039cb5","src/control_stream_remote.rs":"59eb4041e366d92f9f294e8446755caa5e91fd943bba7b79b726698ba13be248","src/features/extended_connect/mod.rs":"3b02f6b18627f3855465a81b1d9b285e6f13839e75a8a6db648ed9082908d7f0","src/features/extended_connect/tests/mod.rs":"fd6aee37243713e80fc526552f21f0222338cec9890409b6575a2a637b17ec1f","src/features/extended_connect/tests/webtransport/datagrams.rs":"4c85a90afb753ce588e3fdeb773669bc49c013aebc28912340359eb01b74fd70","src/features/extended_connect/tests/webtransport/mod.rs":"cdb8de335293249525c73b52b49b44752425eaf0183182b4102d89494a5e5a52","src/features/extended_connect/tests/webtransport/negotiation.rs":"a8940b99e21a6b29fef2fc32f3dce05d12de8b09079dfdc0502c13e4582dbdb6","src/features/extended_connect/tests/webtransport/sessions.rs":"de3d836f666c2bec31e70b33bdc2669572cabbe17df2225db7282613a224a364","src/features/extended_connect/tests/webtransport/streams.rs":"8b3c34cac1b2171252a4bb53d420ac2098549a20309c327bf56e2e9ba9e33538","src/features/extended_connect/webtransport_session.rs":"239d92c06fbc5f6226078bb411a803f57b555dea0077349d49d7f57671cf2eab","src/features/extended_connect/webtransport_streams.rs":"5d7507aaf6a819d266fbea9b7a415c8324329df0f6936d9045b73e17a5b844ee","src/features/mod.rs":"925aae4427ad82e4d019354802b223d53db5e5585d4a940f5417a24a9503d7ee","src/frames/hframe.rs":"56c36ac597504f28c73cf2370acd82104f8c7a7b9ffc0f6d222378abc524482d","src/frames/mod.rs":"7d0a46ca147336d14781edb8dbee8b03c2e4bcd6646f5473a9d93d31fe73fecb","src/frames/reader.rs":"e07ee9de74bc499c10afcda592fefd9a7eef3381c045aa14f6596d67313546ca","src/frames/tests/hframe.rs":"01ec74eb3eb25d95042aa0263f9267f89535e6b7b8c1161fab4ba9ee5352d4a7","src/frames/tests/mod.rs":"0610609b316767a6a022837d32ee0452e37ea296fde37e51bec87e7c77e923a3","src/frames/tests/reader.rs":"2bfadc7afbc41bff9f5f930b31550259a8a92484d35f6c5d8dd8fd9acfb88f5b","src/frames/tests/wtframe.rs":"589ebe1e62ce4da63b37b7d22cde7ba572ddbf29336fdcdbbcd0a745f79dacd8","src/frames/wtframe.rs":"1d9d0256ace2ba7262343ed035df795f21a4d45065792d3fd45b3391b6916b2f","src/headers_checks.rs":"be0f0109298dcc3a40350b7c0950076ddfe20617d195b305e3ffc8582557ab18","src/lib.rs":"4f908a021222bcc79b9d569bc3759a493379a20b47dfa228fddf51600bf6e446","src/priority.rs":"f3b77c208962e44a4e2d13138c6998b703d40e7bcf8f73ea84d8ef5b556e0aee","src/push_controller.rs":"13bccf2834ae19109504cf695a5948c3b2d03fd101bc032a92bb77a033423854","src/qlog.rs":"2debd75c7ea103c95ff79e44412f1408c3e496e324976100c55d5a833912b6c3","src/qpack_decoder_receiver.rs":"c927dfc3e58c71d282210ba79280f6f03e789733bc3bedc247e68bab516b9e9e","src/qpack_encoder_receiver.rs":"d0ac03cc111b6e1c555a8654d3234116f2b135b5b040edac23cefe2d640beba9","src/recv_message.rs":"7ac8d4057ba53874e4edfc62cd25ad5d3f0b10aaac5bf6e156103c3bc44e18cc","src/request_target.rs":"6041a69a0a74969ec08bc164509c055e9bad99f53bbeb16c0aa17d108dd68b8c","src/send_message.rs":"a16496e00a8ee9a69f20d97cf75c01230039eb8261b6b917d82238a42cb99bbe","src/server.rs":"ad477c0792a1e75d982215f4ad35a2dcb6dc82fc817093026670b675dd15dd21","src/server_connection_events.rs":"12d353ca6301467f6d475dde3b789951a5716c89ddd7dbf1383efef8082361f3","src/server_events.rs":"d7c845355a74ddee42047dc65fe394ef3a7625702beac3be75830002f4940f21","src/settings.rs":"476b154b5eea4c8d69a4a790fee3e527cef4d375df1cfb5eed04ec56406fe15a","src/stream_type_reader.rs":"7a7226b7911d69f7e00ec4987c2a32a5e8a33463203398cbee1e6645d2691478","tests/httpconn.rs":"a7137c37fe1003c9a3ba057b10cad4d8de1441100a24bad128345cfed69fb5b7","tests/priority.rs":"364754507873298612ad12e8d1d106d26d993712142d0be4cbf056da5338854c","tests/send_message.rs":"b5435045b16429d9e626ea94a8f10e2937e1a5a878af0035763a4f5ec09bf53c","tests/webtransport.rs":"25794305017ff58e57dc3c3b9b078e5bfc1814ea82a521b7b7156228e613c092"},"package":null}
|
||||
{"files":{"Cargo.toml":"b2c055251c5dcf2682152a328999042295463202d011ed2a43491ad3b15f8654","src/buffered_send_stream.rs":"0e8ad3f443a33e213d55ba26a1ff266692c9087a1627c9b3d10c5025dee550ac","src/client_events.rs":"77fedca72ce54956eaba3fb7103085d196a631b764662584ea2629224c5c234e","src/conn_params.rs":"224a8ea6ef632930a7788a1cabf47ce69ad41bd4bc8dcf3053fbd998fdb38e82","src/connection.rs":"f5f49dd72170f7e42c180b738ff8bddae92fd0c71acc5a08736e298bf53483e7","src/connection_client.rs":"eb623c56641414b89b91387cc8ca4ed1544565fa44301577dc90ee5ad8b392b0","src/connection_server.rs":"de5a6cb42b8c4dc08fb1f626f681b45cd22435892b11e6053b61a5401490db94","src/control_stream_local.rs":"ae52e3286f1686ca1265e7de841392addd42616db02799bb967a59feb6039cb5","src/control_stream_remote.rs":"59eb4041e366d92f9f294e8446755caa5e91fd943bba7b79b726698ba13be248","src/features/extended_connect/mod.rs":"3b02f6b18627f3855465a81b1d9b285e6f13839e75a8a6db648ed9082908d7f0","src/features/extended_connect/tests/mod.rs":"fd6aee37243713e80fc526552f21f0222338cec9890409b6575a2a637b17ec1f","src/features/extended_connect/tests/webtransport/datagrams.rs":"4c85a90afb753ce588e3fdeb773669bc49c013aebc28912340359eb01b74fd70","src/features/extended_connect/tests/webtransport/mod.rs":"cdb8de335293249525c73b52b49b44752425eaf0183182b4102d89494a5e5a52","src/features/extended_connect/tests/webtransport/negotiation.rs":"a8940b99e21a6b29fef2fc32f3dce05d12de8b09079dfdc0502c13e4582dbdb6","src/features/extended_connect/tests/webtransport/sessions.rs":"de3d836f666c2bec31e70b33bdc2669572cabbe17df2225db7282613a224a364","src/features/extended_connect/tests/webtransport/streams.rs":"8b3c34cac1b2171252a4bb53d420ac2098549a20309c327bf56e2e9ba9e33538","src/features/extended_connect/webtransport_session.rs":"198391dfe008732840d7050a6e5fcc1f52ec2a2b28641e392ca9ad7d8ddd97af","src/features/extended_connect/webtransport_streams.rs":"5d7507aaf6a819d266fbea9b7a415c8324329df0f6936d9045b73e17a5b844ee","src/features/mod.rs":"925aae4427ad82e4d019354802b223d53db5e5585d4a940f5417a24a9503d7ee","src/frames/hframe.rs":"56c36ac597504f28c73cf2370acd82104f8c7a7b9ffc0f6d222378abc524482d","src/frames/mod.rs":"7d0a46ca147336d14781edb8dbee8b03c2e4bcd6646f5473a9d93d31fe73fecb","src/frames/reader.rs":"e07ee9de74bc499c10afcda592fefd9a7eef3381c045aa14f6596d67313546ca","src/frames/tests/hframe.rs":"01ec74eb3eb25d95042aa0263f9267f89535e6b7b8c1161fab4ba9ee5352d4a7","src/frames/tests/mod.rs":"0610609b316767a6a022837d32ee0452e37ea296fde37e51bec87e7c77e923a3","src/frames/tests/reader.rs":"2bfadc7afbc41bff9f5f930b31550259a8a92484d35f6c5d8dd8fd9acfb88f5b","src/frames/tests/wtframe.rs":"589ebe1e62ce4da63b37b7d22cde7ba572ddbf29336fdcdbbcd0a745f79dacd8","src/frames/wtframe.rs":"1d9d0256ace2ba7262343ed035df795f21a4d45065792d3fd45b3391b6916b2f","src/headers_checks.rs":"be0f0109298dcc3a40350b7c0950076ddfe20617d195b305e3ffc8582557ab18","src/lib.rs":"4f908a021222bcc79b9d569bc3759a493379a20b47dfa228fddf51600bf6e446","src/priority.rs":"f3b77c208962e44a4e2d13138c6998b703d40e7bcf8f73ea84d8ef5b556e0aee","src/push_controller.rs":"13bccf2834ae19109504cf695a5948c3b2d03fd101bc032a92bb77a033423854","src/qlog.rs":"2debd75c7ea103c95ff79e44412f1408c3e496e324976100c55d5a833912b6c3","src/qpack_decoder_receiver.rs":"c927dfc3e58c71d282210ba79280f6f03e789733bc3bedc247e68bab516b9e9e","src/qpack_encoder_receiver.rs":"d0ac03cc111b6e1c555a8654d3234116f2b135b5b040edac23cefe2d640beba9","src/recv_message.rs":"7ac8d4057ba53874e4edfc62cd25ad5d3f0b10aaac5bf6e156103c3bc44e18cc","src/request_target.rs":"6041a69a0a74969ec08bc164509c055e9bad99f53bbeb16c0aa17d108dd68b8c","src/send_message.rs":"a16496e00a8ee9a69f20d97cf75c01230039eb8261b6b917d82238a42cb99bbe","src/server.rs":"ad477c0792a1e75d982215f4ad35a2dcb6dc82fc817093026670b675dd15dd21","src/server_connection_events.rs":"12d353ca6301467f6d475dde3b789951a5716c89ddd7dbf1383efef8082361f3","src/server_events.rs":"d7c845355a74ddee42047dc65fe394ef3a7625702beac3be75830002f4940f21","src/settings.rs":"476b154b5eea4c8d69a4a790fee3e527cef4d375df1cfb5eed04ec56406fe15a","src/stream_type_reader.rs":"7a7226b7911d69f7e00ec4987c2a32a5e8a33463203398cbee1e6645d2691478","tests/httpconn.rs":"a7137c37fe1003c9a3ba057b10cad4d8de1441100a24bad128345cfed69fb5b7","tests/priority.rs":"364754507873298612ad12e8d1d106d26d993712142d0be4cbf056da5338854c","tests/send_message.rs":"b5435045b16429d9e626ea94a8f10e2937e1a5a878af0035763a4f5ec09bf53c","tests/webtransport.rs":"25794305017ff58e57dc3c3b9b078e5bfc1814ea82a521b7b7156228e613c092"},"package":null}
|
||||
2
third_party/rust/neqo-http3/Cargo.toml
vendored
2
third_party/rust/neqo-http3/Cargo.toml
vendored
|
|
@ -13,7 +13,7 @@
|
|||
edition = "2021"
|
||||
rust-version = "1.76.0"
|
||||
name = "neqo-http3"
|
||||
version = "0.7.8"
|
||||
version = "0.7.9"
|
||||
authors = ["The Neqo Authors <necko@mozilla.com>"]
|
||||
homepage = "https://github.com/mozilla/neqo/"
|
||||
license = "MIT OR Apache-2.0"
|
||||
|
|
|
|||
|
|
@ -2620,7 +2620,7 @@ mod tests {
|
|||
force_idle(&mut client, &mut server);
|
||||
|
||||
let idle_timeout = ConnectionParameters::default().get_idle_timeout();
|
||||
assert_eq!(client.process_output(now()).callback(), idle_timeout / 2);
|
||||
assert_eq!(client.process_output(now()).callback(), idle_timeout);
|
||||
}
|
||||
|
||||
// Helper function: read response when a server sends HTTP_RESPONSE_2.
|
||||
|
|
@ -5115,7 +5115,7 @@ mod tests {
|
|||
assert!(!fin);
|
||||
|
||||
force_idle(&mut client, &mut server);
|
||||
assert_eq!(client.process_output(now()).callback(), idle_timeout / 2);
|
||||
assert_eq!(client.process_output(now()).callback(), idle_timeout);
|
||||
}
|
||||
|
||||
#[test]
|
||||
|
|
|
|||
|
|
@ -50,7 +50,7 @@ pub(crate) struct WebTransportSession {
|
|||
|
||||
impl ::std::fmt::Display for WebTransportSession {
|
||||
fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
|
||||
write!(f, "WebTransportSession session={}", self.session_id,)
|
||||
write!(f, "WebTransportSession session={}", self.session_id)
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -1 +1 @@
|
|||
{"files":{"Cargo.toml":"16d6744a4e1e31fe689e9a74b37a5cda826d88aece3253700ef50dbb6ac18527","src/decoder.rs":"0675444129e074e9d5d56f0d45d2eaed614c85e22cfe9f2d28cdee912c15b420","src/decoder_instructions.rs":"d991d70e51f079bc5b30d3982fd0176edfa9bb7ba14c17a20ec3eea878c56206","src/encoder.rs":"84649cbee81e050f55d7ea691ac871e072741abd8bbf96303eb2e98aa8ee0aea","src/encoder_instructions.rs":"86e3abbd9cf94332041326ac6cf806ed64623e3fd38dbc0385b1f63c37e73fd9","src/header_block.rs":"3925476df69b90d950594faadc5cb24c374d46de8c75a374a235f0d27323a7d8","src/huffman.rs":"71ec740426eee0abb6205104e504f5b97f525a76c4a5f5827b78034d28ce1876","src/huffman_decode_helper.rs":"9ce470e318b3664f58aa109bed483ab15bfd9e0b17d261ea2b609668a42a9d80","src/huffman_table.rs":"06fea766a6276ac56c7ee0326faed800a742c15fda1f33bf2513e6cc6a5e6d27","src/lib.rs":"fd673630b5ed64197851c9a9758685096d3c0aa04f4994290733a38057004ee6","src/prefix.rs":"fb4a9acbcf6fd3178f4474404cd3d3b131abca934f69fe14a9d744bc7e636dc5","src/qlog.rs":"e320007ea8309546b26f9c0019ab8722da80dbd38fa976233fd8ae19a0af637c","src/qpack_send_buf.rs":"755af90fe077b1bcca34a1a2a1bdce5ce601ea490b2ca3f1313e0107d13e67e2","src/reader.rs":"1581261741a0922b147a6975cc8b1a3503846f6dbfdb771d254760c298996982","src/static_table.rs":"fda9d5c6f38f94b0bf92d3afdf8432dce6e27e189736596e16727090c77b78ec","src/stats.rs":"624dfa3b40858c304097bb0ce5b1be1bb4d7916b1abfc222f1aa705907009730","src/table.rs":"ddf055a228bed575d640d9a06e19e1e9fd98a48e393a7d326f8254438fb94889"},"package":null}
|
||||
{"files":{"Cargo.toml":"d139f2aa85c79512562bff7b664376089365cecd68b8ec9a6a4aa4b9495aa42d","src/decoder.rs":"0675444129e074e9d5d56f0d45d2eaed614c85e22cfe9f2d28cdee912c15b420","src/decoder_instructions.rs":"d991d70e51f079bc5b30d3982fd0176edfa9bb7ba14c17a20ec3eea878c56206","src/encoder.rs":"84649cbee81e050f55d7ea691ac871e072741abd8bbf96303eb2e98aa8ee0aea","src/encoder_instructions.rs":"86e3abbd9cf94332041326ac6cf806ed64623e3fd38dbc0385b1f63c37e73fd9","src/header_block.rs":"3925476df69b90d950594faadc5cb24c374d46de8c75a374a235f0d27323a7d8","src/huffman.rs":"71ec740426eee0abb6205104e504f5b97f525a76c4a5f5827b78034d28ce1876","src/huffman_decode_helper.rs":"9ce470e318b3664f58aa109bed483ab15bfd9e0b17d261ea2b609668a42a9d80","src/huffman_table.rs":"06fea766a6276ac56c7ee0326faed800a742c15fda1f33bf2513e6cc6a5e6d27","src/lib.rs":"fd673630b5ed64197851c9a9758685096d3c0aa04f4994290733a38057004ee6","src/prefix.rs":"fb4a9acbcf6fd3178f4474404cd3d3b131abca934f69fe14a9d744bc7e636dc5","src/qlog.rs":"e320007ea8309546b26f9c0019ab8722da80dbd38fa976233fd8ae19a0af637c","src/qpack_send_buf.rs":"755af90fe077b1bcca34a1a2a1bdce5ce601ea490b2ca3f1313e0107d13e67e2","src/reader.rs":"1581261741a0922b147a6975cc8b1a3503846f6dbfdb771d254760c298996982","src/static_table.rs":"fda9d5c6f38f94b0bf92d3afdf8432dce6e27e189736596e16727090c77b78ec","src/stats.rs":"624dfa3b40858c304097bb0ce5b1be1bb4d7916b1abfc222f1aa705907009730","src/table.rs":"ddf055a228bed575d640d9a06e19e1e9fd98a48e393a7d326f8254438fb94889"},"package":null}
|
||||
2
third_party/rust/neqo-qpack/Cargo.toml
vendored
2
third_party/rust/neqo-qpack/Cargo.toml
vendored
|
|
@ -13,7 +13,7 @@
|
|||
edition = "2021"
|
||||
rust-version = "1.76.0"
|
||||
name = "neqo-qpack"
|
||||
version = "0.7.8"
|
||||
version = "0.7.9"
|
||||
authors = ["The Neqo Authors <necko@mozilla.com>"]
|
||||
homepage = "https://github.com/mozilla/neqo/"
|
||||
license = "MIT OR Apache-2.0"
|
||||
|
|
|
|||
File diff suppressed because one or more lines are too long
2
third_party/rust/neqo-transport/Cargo.toml
vendored
2
third_party/rust/neqo-transport/Cargo.toml
vendored
|
|
@ -13,7 +13,7 @@
|
|||
edition = "2021"
|
||||
rust-version = "1.76.0"
|
||||
name = "neqo-transport"
|
||||
version = "0.7.8"
|
||||
version = "0.7.9"
|
||||
authors = ["The Neqo Authors <necko@mozilla.com>"]
|
||||
homepage = "https://github.com/mozilla/neqo/"
|
||||
license = "MIT OR Apache-2.0"
|
||||
|
|
|
|||
|
|
@ -46,23 +46,18 @@ impl IdleTimeout {
|
|||
self.timeout = min(self.timeout, peer_timeout);
|
||||
}
|
||||
|
||||
pub fn expiry(&self, now: Instant, pto: Duration, keep_alive: bool) -> Instant {
|
||||
let start = match self.state {
|
||||
fn start(&self, now: Instant) -> Instant {
|
||||
match self.state {
|
||||
IdleTimeoutState::Init => now,
|
||||
IdleTimeoutState::PacketReceived(t) | IdleTimeoutState::AckElicitingPacketSent(t) => t,
|
||||
};
|
||||
let delay = if keep_alive && !self.keep_alive_outstanding {
|
||||
// For a keep-alive timer, wait for half the timeout interval, but be sure
|
||||
// not to wait too little or we will send many unnecessary probes.
|
||||
max(self.timeout / 2, pto)
|
||||
} else {
|
||||
max(self.timeout, pto * 3)
|
||||
};
|
||||
qtrace!(
|
||||
"IdleTimeout::expiry@{now:?} pto={pto:?}, ka={keep_alive} => {t:?}",
|
||||
t = start + delay
|
||||
);
|
||||
start + delay
|
||||
}
|
||||
}
|
||||
|
||||
pub fn expiry(&self, now: Instant, pto: Duration) -> Instant {
|
||||
let delay = max(self.timeout, pto * 3);
|
||||
let t = self.start(now) + delay;
|
||||
qtrace!("IdleTimeout::expiry@{now:?} pto={pto:?} => {t:?}");
|
||||
t
|
||||
}
|
||||
|
||||
pub fn on_packet_sent(&mut self, now: Instant) {
|
||||
|
|
@ -92,7 +87,13 @@ impl IdleTimeout {
|
|||
}
|
||||
|
||||
pub fn expired(&self, now: Instant, pto: Duration) -> bool {
|
||||
now >= self.expiry(now, pto, false)
|
||||
now >= self.expiry(now, pto)
|
||||
}
|
||||
|
||||
fn keep_alive_timeout(&self, now: Instant, pto: Duration) -> Instant {
|
||||
// For a keep-alive timer, wait for half the timeout interval, but be sure
|
||||
// not to wait too little or we will send many unnecessary probes.
|
||||
self.start(now) + max(self.timeout / 2, pto)
|
||||
}
|
||||
|
||||
pub fn send_keep_alive(
|
||||
|
|
@ -101,7 +102,7 @@ impl IdleTimeout {
|
|||
pto: Duration,
|
||||
tokens: &mut Vec<RecoveryToken>,
|
||||
) -> bool {
|
||||
if !self.keep_alive_outstanding && now >= self.expiry(now, pto, true) {
|
||||
if !self.keep_alive_outstanding && now >= self.keep_alive_timeout(now, pto) {
|
||||
self.keep_alive_outstanding = true;
|
||||
tokens.push(RecoveryToken::KeepAlive);
|
||||
true
|
||||
|
|
|
|||
|
|
@ -1029,8 +1029,7 @@ impl Connection {
|
|||
let rtt = path.rtt();
|
||||
let pto = rtt.pto(PacketNumberSpace::ApplicationData);
|
||||
|
||||
let keep_alive = self.streams.need_keep_alive();
|
||||
let idle_time = self.idle_timeout.expiry(now, pto, keep_alive);
|
||||
let idle_time = self.idle_timeout.expiry(now, pto);
|
||||
qtrace!([self], "Idle/keepalive timer {:?}", idle_time);
|
||||
delays.push(idle_time);
|
||||
|
||||
|
|
|
|||
|
|
@ -415,9 +415,8 @@ fn keep_alive_initiator() {
|
|||
let stream = create_stream_idle(&mut server, &mut client);
|
||||
let mut now = now();
|
||||
|
||||
// Marking the stream for keep-alive changes the idle timeout.
|
||||
server.stream_keep_alive(stream, true).unwrap();
|
||||
assert_idle(&mut server, now, default_timeout() / 2);
|
||||
assert_idle(&mut server, now, default_timeout());
|
||||
|
||||
// Wait that long and the server should send a PING frame.
|
||||
now += default_timeout() / 2;
|
||||
|
|
@ -431,8 +430,8 @@ fn keep_alive_initiator() {
|
|||
let out = server.process(out.as_ref(), now).dgram();
|
||||
assert!(client.process(out.as_ref(), now).dgram().is_none());
|
||||
|
||||
// Check that there will be next keep-alive ping after default_timeout() / 2.
|
||||
assert_idle(&mut server, now, default_timeout() / 2);
|
||||
// Check that there will be next keep-alive ping after default_timeout().
|
||||
assert_idle(&mut server, now, default_timeout());
|
||||
now += default_timeout() / 2;
|
||||
let pings_before2 = server.stats().frame_tx.ping;
|
||||
let ping = server.process_output(now).dgram();
|
||||
|
|
@ -449,9 +448,8 @@ fn keep_alive_lost() {
|
|||
let stream = create_stream_idle(&mut server, &mut client);
|
||||
let mut now = now();
|
||||
|
||||
// Marking the stream for keep-alive changes the idle timeout.
|
||||
server.stream_keep_alive(stream, true).unwrap();
|
||||
assert_idle(&mut server, now, default_timeout() / 2);
|
||||
assert_idle(&mut server, now, default_timeout());
|
||||
|
||||
// Wait that long and the server should send a PING frame.
|
||||
now += default_timeout() / 2;
|
||||
|
|
@ -480,7 +478,7 @@ fn keep_alive_lost() {
|
|||
// return some small timeout for the recovry although it does not have
|
||||
// any outstanding data. Therefore we call it after AT_LEAST_PTO.
|
||||
now += AT_LEAST_PTO;
|
||||
assert_idle(&mut server, now, default_timeout() / 2 - AT_LEAST_PTO);
|
||||
assert_idle(&mut server, now, default_timeout() - AT_LEAST_PTO);
|
||||
}
|
||||
|
||||
/// The other peer can also keep it alive.
|
||||
|
|
@ -492,9 +490,8 @@ fn keep_alive_responder() {
|
|||
let stream = create_stream_idle(&mut server, &mut client);
|
||||
let mut now = now();
|
||||
|
||||
// Marking the stream for keep-alive changes the idle timeout.
|
||||
client.stream_keep_alive(stream, true).unwrap();
|
||||
assert_idle(&mut client, now, default_timeout() / 2);
|
||||
assert_idle(&mut client, now, default_timeout());
|
||||
|
||||
// Wait that long and the client should send a PING frame.
|
||||
now += default_timeout() / 2;
|
||||
|
|
@ -513,7 +510,7 @@ fn keep_alive_unmark() {
|
|||
let stream = create_stream_idle(&mut client, &mut server);
|
||||
|
||||
client.stream_keep_alive(stream, true).unwrap();
|
||||
assert_idle(&mut client, now(), default_timeout() / 2);
|
||||
assert_idle(&mut client, now(), default_timeout());
|
||||
|
||||
client.stream_keep_alive(stream, false).unwrap();
|
||||
assert_idle(&mut client, now(), default_timeout());
|
||||
|
|
@ -543,11 +540,11 @@ fn keep_alive_close() {
|
|||
let stream = create_stream_idle(&mut client, &mut server);
|
||||
|
||||
client.stream_keep_alive(stream, true).unwrap();
|
||||
assert_idle(&mut client, now(), default_timeout() / 2);
|
||||
assert_idle(&mut client, now(), default_timeout());
|
||||
|
||||
client.stream_close_send(stream).unwrap();
|
||||
transfer_force_idle(&mut client, &mut server);
|
||||
assert_idle(&mut client, now(), default_timeout() / 2);
|
||||
assert_idle(&mut client, now(), default_timeout());
|
||||
|
||||
server.stream_close_send(stream).unwrap();
|
||||
transfer_force_idle(&mut server, &mut client);
|
||||
|
|
@ -564,11 +561,11 @@ fn keep_alive_reset() {
|
|||
let stream = create_stream_idle(&mut client, &mut server);
|
||||
|
||||
client.stream_keep_alive(stream, true).unwrap();
|
||||
assert_idle(&mut client, now(), default_timeout() / 2);
|
||||
assert_idle(&mut client, now(), default_timeout());
|
||||
|
||||
client.stream_close_send(stream).unwrap();
|
||||
transfer_force_idle(&mut client, &mut server);
|
||||
assert_idle(&mut client, now(), default_timeout() / 2);
|
||||
assert_idle(&mut client, now(), default_timeout());
|
||||
|
||||
server.stream_reset_send(stream, 0).unwrap();
|
||||
transfer_force_idle(&mut server, &mut client);
|
||||
|
|
@ -590,7 +587,7 @@ fn keep_alive_stop_sending() {
|
|||
let stream = create_stream_idle(&mut client, &mut server);
|
||||
|
||||
client.stream_keep_alive(stream, true).unwrap();
|
||||
assert_idle(&mut client, now(), default_timeout() / 2);
|
||||
assert_idle(&mut client, now(), default_timeout());
|
||||
|
||||
client.stream_close_send(stream).unwrap();
|
||||
client.stream_stop_sending(stream, 0).unwrap();
|
||||
|
|
@ -614,14 +611,14 @@ fn keep_alive_multiple_stop() {
|
|||
let stream = create_stream_idle(&mut client, &mut server);
|
||||
|
||||
client.stream_keep_alive(stream, true).unwrap();
|
||||
assert_idle(&mut client, now(), default_timeout() / 2);
|
||||
assert_idle(&mut client, now(), default_timeout());
|
||||
|
||||
let other = client.stream_create(StreamType::BiDi).unwrap();
|
||||
client.stream_keep_alive(other, true).unwrap();
|
||||
assert_idle(&mut client, now(), default_timeout() / 2);
|
||||
assert_idle(&mut client, now(), default_timeout());
|
||||
|
||||
client.stream_keep_alive(stream, false).unwrap();
|
||||
assert_idle(&mut client, now(), default_timeout() / 2);
|
||||
assert_idle(&mut client, now(), default_timeout());
|
||||
|
||||
client.stream_keep_alive(other, false).unwrap();
|
||||
assert_idle(&mut client, now(), default_timeout());
|
||||
|
|
@ -692,9 +689,8 @@ fn keep_alive_with_ack_eliciting_packet_lost() {
|
|||
|
||||
// Create a stream.
|
||||
let stream = client.stream_create(StreamType::BiDi).unwrap();
|
||||
// Marking the stream for keep-alive changes the idle timeout.
|
||||
client.stream_keep_alive(stream, true).unwrap();
|
||||
assert_idle(&mut client, now, IDLE_TIMEOUT / 2);
|
||||
assert_idle(&mut client, now, IDLE_TIMEOUT);
|
||||
|
||||
// Send data on the stream that will be lost.
|
||||
_ = client.stream_send(stream, DEFAULT_STREAM_DATA).unwrap();
|
||||
|
|
@ -709,13 +705,11 @@ fn keep_alive_with_ack_eliciting_packet_lost() {
|
|||
let retransmit = client.process_output(now).dgram();
|
||||
assert!(retransmit.is_some());
|
||||
|
||||
// The next callback should be for an idle PING.
|
||||
assert_eq!(
|
||||
client.process_output(now).callback(),
|
||||
IDLE_TIMEOUT / 2 - pto
|
||||
);
|
||||
// The timeout is the twice the PTO, because we've already sent one probe.
|
||||
assert_eq!(client.process_output(now).callback(), pto * 2);
|
||||
|
||||
// Wait that long and the client should send a PING frame.
|
||||
// Wait for half the idle timeout (less the PTO we've already waited)
|
||||
// so that we get a keep-alive.
|
||||
now += IDLE_TIMEOUT / 2 - pto;
|
||||
let pings_before = client.stats().frame_tx.ping;
|
||||
let ping = client.process_output(now).dgram();
|
||||
|
|
@ -742,3 +736,25 @@ fn keep_alive_with_ack_eliciting_packet_lost() {
|
|||
assert!(matches!(out, Output::None));
|
||||
assert!(matches!(client.state(), State::Closed(_)));
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn keep_alive_with_unresponsive_server() {
|
||||
let mut client = default_client();
|
||||
let mut server = default_server();
|
||||
connect(&mut client, &mut server);
|
||||
|
||||
let mut now = now();
|
||||
let client_stream = client.stream_create(StreamType::BiDi).unwrap();
|
||||
client.stream_keep_alive(client_stream, true).unwrap();
|
||||
|
||||
for _ in 0..100 {
|
||||
if client.stream_send(client_stream, &[0x0; 500]).is_err() {
|
||||
break;
|
||||
}
|
||||
if let Output::Callback(t) = client.process_output(now) {
|
||||
now += t;
|
||||
}
|
||||
}
|
||||
// Connection should be closed due to idle timeout.
|
||||
assert!(matches!(client.state(), State::Closed(_)));
|
||||
}
|
||||
|
|
|
|||
|
|
@ -43,7 +43,7 @@ fn server_receive_unknown_first_packet() {
|
|||
unknown_version_packet.resize(MIN_INITIAL_PACKET_SIZE, 0x0);
|
||||
|
||||
assert_eq!(
|
||||
server.process(Some(&datagram(unknown_version_packet,)), now(),),
|
||||
server.process(Some(&datagram(unknown_version_packet)), now()),
|
||||
Output::None
|
||||
);
|
||||
|
||||
|
|
|
|||
28
third_party/rust/neqo-transport/src/crypto.rs
vendored
28
third_party/rust/neqo-transport/src/crypto.rs
vendored
|
|
@ -21,7 +21,7 @@ use neqo_crypto::{
|
|||
TLS_AES_128_GCM_SHA256, TLS_AES_256_GCM_SHA384, TLS_CHACHA20_POLY1305_SHA256, TLS_CT_HANDSHAKE,
|
||||
TLS_EPOCH_APPLICATION_DATA, TLS_EPOCH_HANDSHAKE, TLS_EPOCH_INITIAL, TLS_EPOCH_ZERO_RTT,
|
||||
TLS_GRP_EC_SECP256R1, TLS_GRP_EC_SECP384R1, TLS_GRP_EC_SECP521R1, TLS_GRP_EC_X25519,
|
||||
TLS_VERSION_1_3,
|
||||
TLS_GRP_KEM_XYBER768D00, TLS_VERSION_1_3,
|
||||
};
|
||||
|
||||
use crate::{
|
||||
|
|
@ -76,20 +76,36 @@ impl Crypto {
|
|||
TLS_AES_256_GCM_SHA384,
|
||||
TLS_CHACHA20_POLY1305_SHA256,
|
||||
])?;
|
||||
agent.set_groups(&[
|
||||
match &mut agent {
|
||||
Agent::Server(c) => {
|
||||
// Clients do not send xyber shares by default, but servers should accept them.
|
||||
c.set_groups(&[
|
||||
TLS_GRP_KEM_XYBER768D00,
|
||||
TLS_GRP_EC_X25519,
|
||||
TLS_GRP_EC_SECP256R1,
|
||||
TLS_GRP_EC_SECP384R1,
|
||||
TLS_GRP_EC_SECP521R1,
|
||||
])?;
|
||||
agent.send_additional_key_shares(1)?;
|
||||
agent.set_alpn(&protocols)?;
|
||||
agent.disable_end_of_early_data()?;
|
||||
}
|
||||
Agent::Client(c) => {
|
||||
c.set_groups(&[
|
||||
TLS_GRP_EC_X25519,
|
||||
TLS_GRP_EC_SECP256R1,
|
||||
TLS_GRP_EC_SECP384R1,
|
||||
TLS_GRP_EC_SECP521R1,
|
||||
])?;
|
||||
|
||||
// Configure clients to send both X25519 and P256 to reduce
|
||||
// the rate of HRRs.
|
||||
c.send_additional_key_shares(1)?;
|
||||
|
||||
// Always enable 0-RTT on the client, but the server needs
|
||||
// more configuration passed to server_enable_0rtt.
|
||||
if let Agent::Client(c) = &mut agent {
|
||||
c.enable_0rtt()?;
|
||||
}
|
||||
}
|
||||
agent.set_alpn(&protocols)?;
|
||||
agent.disable_end_of_early_data()?;
|
||||
let extension = match version {
|
||||
Version::Version2 | Version::Version1 => 0x39,
|
||||
Version::Draft29 | Version::Draft30 | Version::Draft31 | Version::Draft32 => 0xffa5,
|
||||
|
|
|
|||
4
third_party/rust/neqo-transport/src/ecn.rs
vendored
4
third_party/rust/neqo-transport/src/ecn.rs
vendored
|
|
@ -207,8 +207,8 @@ impl EcnInfo {
|
|||
} else if ecn_diff[IpTosEcn::Ect1] > 0 {
|
||||
qwarn!("ECN validation failed, ACK counted ECT(1) marks that were never sent");
|
||||
self.state = EcnValidationState::Failed;
|
||||
} else {
|
||||
qinfo!("ECN validation succeeded, path is capable",);
|
||||
} else if self.state != EcnValidationState::Capable {
|
||||
qinfo!("ECN validation succeeded, path is capable");
|
||||
self.state = EcnValidationState::Capable;
|
||||
}
|
||||
self.baseline = ack_ecn;
|
||||
|
|
|
|||
6
third_party/rust/neqo-transport/src/path.rs
vendored
6
third_party/rust/neqo-transport/src/path.rs
vendored
|
|
@ -706,8 +706,12 @@ impl Path {
|
|||
|
||||
/// Make a datagram.
|
||||
pub fn datagram<V: Into<Vec<u8>>>(&mut self, payload: V) -> Datagram {
|
||||
// Make sure to use the TOS value from before calling EcnInfo::on_packet_sent, which may
|
||||
// update the ECN state and can hence change it - this packet should still be sent
|
||||
// with the current value.
|
||||
let tos = self.tos();
|
||||
self.ecn_info.on_packet_sent();
|
||||
Datagram::new(self.local, self.remote, self.tos(), Some(self.ttl), payload)
|
||||
Datagram::new(self.local, self.remote, tos, Some(self.ttl), payload)
|
||||
}
|
||||
|
||||
/// Get local address as `SocketAddr`
|
||||
|
|
|
|||
|
|
@ -268,7 +268,7 @@ fn overflow_crypto() {
|
|||
client.process_input(&dgram, now());
|
||||
if let State::Closing { error, .. } = client.state() {
|
||||
assert!(
|
||||
matches!(error, CloseReason::Transport(Error::CryptoBufferExceeded),),
|
||||
matches!(error, CloseReason::Transport(Error::CryptoBufferExceeded)),
|
||||
"the connection need to abort on crypto buffer"
|
||||
);
|
||||
assert!(pn > 64, "at least 64000 bytes of data is buffered");
|
||||
|
|
@ -277,3 +277,26 @@ fn overflow_crypto() {
|
|||
}
|
||||
panic!("Was not able to overflow the crypto buffer");
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_handshake_xyber() {
|
||||
let mut client = default_client();
|
||||
let mut server = default_server();
|
||||
|
||||
client
|
||||
.set_groups(&[neqo_crypto::TLS_GRP_KEM_XYBER768D00])
|
||||
.ok();
|
||||
client.send_additional_key_shares(0).ok();
|
||||
|
||||
test_fixture::handshake(&mut client, &mut server);
|
||||
assert_eq!(*client.state(), State::Confirmed);
|
||||
assert_eq!(*server.state(), State::Confirmed);
|
||||
assert_eq!(
|
||||
client.tls_info().unwrap().key_exchange(),
|
||||
neqo_crypto::TLS_GRP_KEM_XYBER768D00
|
||||
);
|
||||
assert_eq!(
|
||||
server.tls_info().unwrap().key_exchange(),
|
||||
neqo_crypto::TLS_GRP_KEM_XYBER768D00
|
||||
);
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in a new issue