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
Benjamin Saunders
9314c88828
Fix underflow on decoding truncated long packets
2018-12-25 09:56:44 +01:00
Benjamin Saunders
e3d3344747
Draft 17 header protection ciphers
2018-12-25 09:56:44 +01:00
Benjamin Saunders
e2fafe45e2
Update version to draft 17
2018-12-25 09:56:44 +01:00
Benjamin Saunders
3b295dec72
PADDING shouldn't directly elicit ACKs
2018-12-25 09:56:44 +01:00
Benjamin Saunders
4258d22e4c
Pad packets as needed for header protection sampling
2018-12-25 09:56:44 +01:00
Benjamin Saunders
28aa2f1f9b
Draft 17 header protection
2018-12-25 09:56:44 +01:00
Benjamin Saunders
d408867d97
Don't update header keys in 1RTT
2018-12-25 09:56:44 +01:00
Benjamin Saunders
06d3bef4d6
Rename PacketNumberKey to HeaderKey
2018-12-25 09:56:44 +01:00
Benjamin Saunders
72e480be9f
Draft 17 key derivation
2018-12-25 09:56:44 +01:00
Benjamin Saunders
0c6d2f9803
Draft 17 flags and packet number encoding
2018-12-25 09:56:44 +01:00
Benjamin Saunders
f4862a9d6a
Draft 17 frames
2018-12-23 23:55:19 -08:00
Benjamin Saunders
01083617ea
Don't retransmit PING
2018-12-23 23:55:19 -08:00
Benjamin Saunders
8d824b1263
impl Display/slog::Value for Directionality
2018-12-23 23:55:19 -08:00
Benjamin Saunders
6ba840281c
Naming consistency
2018-12-23 23:52:24 -08:00
Benjamin Saunders
2998b95241
Draft 17 transport parameters
2018-12-23 23:52:24 -08:00
stammw
e516160b03
Upgrade orion to 0.11
2018-12-23 14:21:15 -08:00
Benjamin Saunders
fb3c317f60
Send/receive ECN bits on linux
2018-12-22 11:48:24 -08:00
Dirkjan Ochtman
70513bb72e
Inline Context type back into Endpoint
2018-12-22 11:47:48 -08:00
Dirkjan Ochtman
1fe4235abe
Reorder code in endpoint module
2018-12-22 11:47:48 -08:00
Dirkjan Ochtman
4d336d489c
Introduce is_drained(), make Connection state private
2018-12-22 11:47:48 -08:00
Dirkjan Ochtman
9e24db7ccb
Move core implementation of Endpoint::timeout() into Connection
2018-12-22 11:47:48 -08:00
Dirkjan Ochtman
f53a132a1a
Remove Connections from eventful_conns on forget
2018-12-22 11:47:48 -08:00