Benjamin Saunders
b55615a42d
Update interop ALPN ID
2018-12-29 03:07:22 -08:00
Benjamin Saunders
d3c92e1231
Per-space CRYPTO streams
2018-12-29 03:07:22 -08:00
Benjamin Saunders
94ed615d55
Remove obsolete sample_offset adjustment
...
This is handled via padding in the current draft.
2018-12-29 03:07:22 -08:00
Benjamin Saunders
f541730858
Fix PartialEncode computing wrong payload length
...
This could lead to an invalid sample_offset being computed.
2018-12-29 03:07:22 -08:00
Benjamin Saunders
9892b12493
More direct condition for setting payload field
...
This checks the value we actually care about, rather than an implied
value, avoiding potential confusion when 0-RTT is later introduced.
2018-12-29 03:07:22 -08:00
Benjamin Saunders
3b8f05daa9
Discard Initial keys even if client Handshake is retransmitted
2018-12-29 03:07:22 -08:00
Benjamin Saunders
05f9334206
Employ helper function in test
2018-12-29 03:07:22 -08:00
Benjamin Saunders
f3efac1b22
Fix inconsistent in-flight packet accounting
...
This mostly arose from Connection::bytes_in_flight being incorrectly
overloaded to determine whether ack eliciting packets were in flight.
2018-12-29 03:07:22 -08:00
Benjamin Saunders
8f81fc1fe4
Don't pad server Initials
2018-12-29 03:07:22 -08:00
Benjamin Saunders
72bb33c05e
Draft 17 Retry header encoding
2018-12-28 12:18:11 +01:00
Benjamin Saunders
75ecbf63b0
Remove unnecessary type variables
...
These were only ever instantiated to their default values, and hence
were unnecessary complexity.
2018-12-28 12:18:11 +01:00
Benjamin Saunders
175b033036
Test initial close by server
2018-12-28 12:18:11 +01:00
Benjamin Saunders
036a23f3ce
Use correct header for pre-handshake closes
2018-12-28 12:18:11 +01:00
Benjamin Saunders
9a0cc83558
Remove some unnecessary visibility
2018-12-28 12:18:11 +01:00
Benjamin Saunders
530f3afc87
Test idle timeout
2018-12-28 12:18:11 +01:00
Benjamin Saunders
17b2e778c1
Style tweaks
2018-12-28 12:18:11 +01:00
Benjamin Saunders
c23d6a4afb
Fix closing before connection begins
2018-12-28 12:18:11 +01:00
Benjamin Saunders
2abb99e5ed
Remove parse_initial
...
Redundant to process_early_payload
2018-12-28 12:18:11 +01:00
Benjamin Saunders
c380251903
Fold make_close/make_probe into next_packet
2018-12-28 12:18:11 +01:00
Benjamin Saunders
d93e8cbb80
Allow server 1-RTT to be pipelined with handshake
...
This saves a round-trip before a server application can begin
transmitting. Users who don't want to transmit to clients who may not
be able to receive data should enable stateless retries.
2018-12-28 12:18:11 +01:00
Benjamin Saunders
65956481b0
Improve diagnostics
2018-12-28 12:18:11 +01:00
Benjamin Saunders
87326966a9
Draft 17 handshake crypto
2018-12-28 12:18:11 +01:00
Benjamin Saunders
b6189e2e06
Use upstream libc repo
2018-12-27 15:21:11 +01:00
Benjamin Saunders
3e8e32a80e
Remove redundant/illegal handshake packet frame handling
2018-12-27 15:21:11 +01:00
Benjamin Saunders
fd1d798a81
Remove no-longer-necessary state inspection workarounds
2018-12-27 15:21:11 +01:00
Benjamin Saunders
0de976751e
Implement spin bit
2018-12-27 15:21:11 +01:00
Benjamin Saunders
f2754f02dd
Remove unreachable enum case
2018-12-27 15:21:11 +01:00
Benjamin Saunders
9523d98231
Remove dead code
...
We only decrypt short packets in established connections
2018-12-27 15:21:11 +01:00
Benjamin Saunders
6b43ac7f2e
Remote-initiated bidi streams can be stopped immediately
2018-12-27 15:21:11 +01:00
Benjamin Saunders
248d76823a
Padded packets are congestion-relevant
2018-12-26 22:07:06 +01:00
Benjamin Saunders
bdc9ac76a4
Adopt draft 17 recovery logic
2018-12-26 22:07:06 +01:00
Benjamin Saunders
ef688531dc
Adopt "ack eliciting" terminology
2018-12-26 22:07:06 +01:00
Benjamin Saunders
2932d4985a
Style tweak
2018-12-26 22:07:06 +01:00
Benjamin Saunders
97937a8fed
Adopt draft 17 kMaxDatagramSize
2018-12-26 22:07:06 +01:00
Benjamin Saunders
fc92cae119
Rename SentPacket::bytes to size
2018-12-26 22:07:06 +01:00
Benjamin Saunders
8debe167fd
Draft 17 stateless resets
2018-12-25 12:42:06 +01:00
Benjamin Saunders
da00c501fb
Retire old remote connection IDs
2018-12-25 12:42:06 +01:00
Benjamin Saunders
a550d7148d
Always adopt a client's first NEW_CONNECTION_ID
...
This allows us to process future stateless resets from the client.
2018-12-25 12:42:06 +01:00
Benjamin Saunders
065da0e297
Implement RETIRE_CONNECTION_ID
2018-12-25 12:42:06 +01:00
Benjamin Saunders
4096cdc19c
Issue new connection IDs on connection established
2018-12-25 12:42:06 +01:00
Benjamin Saunders
a1915edfd8
Extract frame::NewConnectionId struct
2018-12-25 12:42:06 +01:00
Benjamin Saunders
b973de2514
Don't leak client connections with bad Initial
2018-12-25 12:42:06 +01:00
Benjamin Saunders
e6bc4f97e6
Clientside stateless resets
...
This will only become useful once we send a new conection ID to the
server, as the client's initial connection ID is not associated with a
reset token due to client transport parameters not being protected.
2018-12-25 12:42:06 +01:00
Benjamin Saunders
80b27f8d43
Fix illegal stateless reset size, looping vulnerability
2018-12-25 12:42:06 +01:00
Benjamin Saunders
cb8114f2e9
Extract stateless reset transmit into its own method
2018-12-25 12:42:06 +01:00
Benjamin Saunders
9cdb729a52
Style fixes
2018-12-25 12:42:06 +01:00
Benjamin Saunders
f7a33fcc17
Expand use of RESET_TOKEN_SIZE
2018-12-25 12:42:06 +01:00
Benjamin Saunders
6c27427c1c
Privatize Retransmits fields
2018-12-25 12:42:06 +01:00
Benjamin Saunders
4fce79f7f3
Isolate header keys from traffic keys
...
This lets us avoid key copying that would otherwise arise due to the
somewhat differing lifecycles of the two key types, and which crypto
APIs seem to discourage.
2018-12-25 09:56:44 +01:00
Benjamin Saunders
21c5b103f7
Check reserved bits when connected
2018-12-25 09:56:44 +01:00