Benjamin Saunders
32b6dddaf4
Fix handling of early packet spaces after key update
...
Handshake and Initial packets do not have a key phase, so the key
phase test should always be ignored for them.
2019-01-06 07:56:09 +01:00
Benjamin Saunders
cbac404529
Mark resumption as working
2019-01-06 07:56:09 +01:00
Benjamin Saunders
31edd6c734
Test resumption in interop tool
...
We can infer whether the session was resumed based on whether we saw
the server's certificate.
2019-01-06 07:56:09 +01:00
Benjamin Saunders
05668af7b4
Fix IO polling panic when draining begins after IO is queued
...
If we closed the connection, then received a packet from the peer that
did not contain a CONNECTION_CLOSE, followed by one that did, we would
enter the Draining state with io.close = true, causing us to try to
send a CONNECTION_CLOSE packet after having forgotten the close
reason.
2019-01-05 06:14:24 +01:00
Benjamin Saunders
beaedb541b
Fix malformed resumption handshake
2019-01-05 06:14:24 +01:00
Benjamin Saunders
ce514af89a
Don't pad anti-deadlock packets
...
If the client manages to get a Handshake packet through to the server,
its address will be verified and anti-amplification budget becomes
irrelevant.
2019-01-04 11:46:44 +01:00
Benjamin Saunders
f94f0ec6a8
Ensure a closed or reset connection cancels its timers
...
Fixes a panic in the higher level.
2019-01-04 11:46:44 +01:00
Benjamin Saunders
24a7ef311e
Fix ChaCha20 header protection
2019-01-04 11:46:44 +01:00
Benjamin Saunders
8a1c61abeb
Tweak diagnostics
2019-01-04 11:46:44 +01:00
Benjamin Saunders
08e057ec39
Test handling of coalesced packets
2019-01-04 11:46:44 +01:00
Benjamin Saunders
7338f7b1e4
Fix panic on receiving 0-RTT headers
2019-01-04 11:46:44 +01:00
Benjamin Saunders
60bf13acff
Mark client Initial authenticated before processing for consistency
2019-01-04 11:46:44 +01:00
Benjamin Saunders
eef1ba31f7
Improve unsafe code defensiveness
2019-01-04 11:46:44 +01:00
Benjamin Saunders
58dd5daade
Fix feature-gated type reference
2019-01-04 01:22:55 -08:00
Benjamin Saunders
07384a920e
Add missing documentation
2019-01-04 01:22:55 -08:00
Benjamin Saunders
37c664ec0a
Fix copy-paste error
2019-01-04 01:22:55 -08:00
Benjamin Saunders
32b4ed7c8e
Hide rustls certificate types and parsing methods
...
This decouples an important part of the API from rustls, and greatly
simplifies the task of robustly reading a certificate from disk.
2019-01-03 23:10:22 -08:00
Benjamin Saunders
2aa8e30a64
Delete dead macro_use
2019-01-02 08:11:00 +01:00
Benjamin Saunders
3e7961ad37
Backwards-compatible IP_TOS sendmsg use
...
Linux required IP_TOS to be set as an int prior to 2016 kernel commit
e895cdce683161081e3626c4f5a5c55cb72089f8, even though it's a u8 when
read via IP_RECVTOS.
2019-01-02 08:11:00 +01:00
Benjamin Saunders
b5dbe2b602
Independently test IPv4, IPv6, and dual-stack connections
2019-01-02 08:11:00 +01:00
Benjamin Saunders
d47c8b8430
Don't send to IPv4 addrs on IPv6 sockets
...
This fixes dual-stack operation on less recent Linux kernels, and
reduces the rate of address conversion to once per connection by
assuming that dual-stack sockets will always yield IPv4-mapped IPv6
addresses.
2019-01-02 08:11:00 +01:00
Benjamin Saunders
15ce3f0be2
Handshake anti-deadlock
...
Servers may only send at most 3x received data until address
verification is complete, so large handshakes or packet loss may
require the client to send dummy packets.
2019-01-01 13:52:51 +01:00
Benjamin Saunders
a1f248ee38
Test dropped server handshake messages
2019-01-01 13:52:51 +01:00
Benjamin Saunders
e2bd393a9d
Implement handshake anti-amplification
2019-01-01 13:52:51 +01:00
Benjamin Saunders
f529a0481f
Delete dead code
2019-01-01 13:52:51 +01:00
Benjamin Saunders
652c7559ef
Fix congestion blocking ACK-only packets
2019-01-01 13:52:51 +01:00
Benjamin Saunders
7d4055da6d
Fix probes being blocked by lack of pending data
2019-01-01 13:52:51 +01:00
Benjamin Saunders
4555aa4bf7
Cosmetic fixes
2019-01-01 13:52:51 +01:00
Benjamin Saunders
4d8260b57e
Immediately fail the high-level test on unexpected errors
2018-12-31 10:25:36 +01:00
Benjamin Saunders
4ef0480bbb
Signal connection tasks when the driver is lost
...
This isn't normally expected, but should reduce confusion in corner
cases.
2018-12-31 10:25:36 +01:00
Benjamin Saunders
43d321bdfc
Update block-modes to 0.3
2018-12-31 00:29:35 -08:00
Benjamin Saunders
b84f22f64f
Use test vectors from upstream
2018-12-31 07:03:16 +01:00
dependabot[bot]
2008cb6eca
Update orion requirement from 0.11 to 0.12
...
Updates the requirements on [orion](https://github.com/brycx/orion ) to permit the latest version.
- [Release notes](https://github.com/brycx/orion/releases )
- [Commits](https://github.com/brycx/orion/commits/0.12.0 )
Signed-off-by: dependabot[bot] <support@dependabot.com >
2018-12-31 07:00:19 +01:00
Benjamin Saunders
4bbe0d825f
Delete dead code
2018-12-30 23:03:56 +01:00
Benjamin Saunders
0abbff72a9
Move SocketAddr normalization into Endpoint
...
This reduces the amount of conversion necessary.
2018-12-30 23:03:56 +01:00
Benjamin Saunders
6f5dd2dc4d
Fix Linux IPv4 UDP socket setup
2018-12-30 23:03:56 +01:00
Dirkjan Ochtman
af66816f06
Add CI for macOS
2018-12-30 22:26:20 +01:00
Benjamin Saunders
97301a93a4
Extract in-flight statistics struct
...
This makes it easier to manipulate while borrowing a space.
2018-12-30 21:56:15 +01:00
Benjamin Saunders
cf5ec4aff4
Set ALPN ID in interop tool
...
ngtcp2 unconditionally pretends we negotiated hq-17, which confuses
rustls if we didn't.
2018-12-30 21:56:15 +01:00
Dirkjan Ochtman
535f8b2af3
Add test for quinn API layer
2018-12-30 12:43:17 -08:00
Dirkjan Ochtman
ace2b168e8
Reorder code in example server to improve locality
2018-12-30 12:43:17 -08:00
Dirkjan Ochtman
3c17fcdfff
Assorted clippy fixes
2018-12-30 09:47:21 +01:00
Benjamin Saunders
5333024917
Update draft version and tweak wording in README
2018-12-29 23:38:18 -08:00
Benjamin Saunders
85008856e0
Clients MUST discard packets from new addresses
2018-12-30 07:30:32 +01:00
Benjamin Saunders
93d9b97675
PATH_RESPONSE shouldn't be retransmitted
2018-12-30 07:30:32 +01:00
Benjamin Saunders
abd0713076
Don't pad ACK-only client Initial packets
...
Only the first Initial packet, containing the CRYPTO frame(s), must be
padded.
2018-12-30 07:30:32 +01:00
Benjamin Saunders
296ef0c75c
Tweak logging
2018-12-30 07:30:32 +01:00
Benjamin Saunders
aeb58b2d81
Restore stateless retry support to the example server
2018-12-30 07:30:32 +01:00
Benjamin Saunders
fe9c5fd157
Enable all features in CI
2018-12-30 07:30:32 +01:00
Benjamin Saunders
ed98e9aa96
Test retries by default with interop tool
2018-12-30 07:30:32 +01:00