Commit Graph

1048 Commits

Author SHA1 Message Date
Benjamin Saunders be801edd10 Fix incomplete stream state reset on 0-RTT rejection 2019-02-05 06:51:12 +01:00
Dirkjan Ochtman 47bc2886c2 Improve reason descriptions for TLS errors 2019-01-30 02:14:32 -08:00
Dirkjan Ochtman eb01d30be0 Turn HeaderCrypto into a trait 2019-01-30 02:14:32 -08:00
Dirkjan Ochtman 891db4c51d Privatize some parts of the Crypto API 2019-01-30 02:14:32 -08:00
Dirkjan Ochtman d2796a2926 Move early_data_accepted() handling into CryptoSession API 2019-01-30 02:14:32 -08:00
Dirkjan Ochtman 2e0ee41aea Replace TLSError with TransportError in CryptoSession interface 2019-01-30 02:14:32 -08:00
Dirkjan Ochtman ee19ea7c8c Only extract early Crypto once 2019-01-30 02:14:32 -08:00
Dirkjan Ochtman e3347954e4 Hide 0-RTT Crypto creation behind CryptoSession interface 2019-01-30 02:14:32 -08:00
Benjamin Saunders c4fe6b38fa Fix packet number used as timestamp 2019-01-30 07:06:07 +01:00
Benjamin Saunders ecaecab5d0 Style tweak 2019-01-30 07:06:07 +01:00
Benjamin Saunders cad3da1b09 Strengthen flow control tests 2019-01-29 07:22:37 +01:00
Benjamin Saunders aea40cfafe Fix Frame::Stream type accessor 2019-01-29 07:22:37 +01:00
Benjamin Saunders 15de1a933a Add some useful testing options to the example client 2019-01-29 07:22:37 +01:00
Benjamin Saunders 316f965f99 Test rebinding in interop tool 2019-01-29 07:22:37 +01:00
Benjamin Saunders cff075c785 Prioritize retransmitted stream/handshake data 2019-01-29 07:22:37 +01:00
Benjamin Saunders 32369976be Improve logging 2019-01-29 07:22:37 +01:00
Benjamin Saunders f65264c270 Improve logging 2019-01-27 07:19:47 +01:00
Benjamin Saunders 2039d7b928 Handle interop testing vs. IP addrs 2019-01-27 07:19:47 +01:00
Benjamin Saunders e98e5622fc Report StreamReadable when reading is unblocked, not every frame 2019-01-27 07:19:47 +01:00
Benjamin Saunders f623b76b60 Simplify finished stream reporting 2019-01-27 07:19:47 +01:00
Benjamin Saunders 6e9621c9d7 Test zero-length CIDs 2019-01-27 07:19:47 +01:00
Benjamin Saunders 97d093ff17 Add missing cleanup
This was harmless, but best to be consistent.
2019-01-27 07:19:47 +01:00
Benjamin Saunders eba8048a58 Unblock streams on STOP_SENDING 2019-01-27 07:19:47 +01:00
Benjamin Saunders 56a6629c18 MAX_STREAM_DATA can open streams 2019-01-27 07:19:47 +01:00
Benjamin Saunders 1f2c0e87c1 Centralize stream activity handling 2019-01-27 07:19:47 +01:00
Benjamin Saunders 5b5d07e92e Improve ALPN documentation 2019-01-27 07:19:47 +01:00
Benjamin Saunders b8e6ff127c Tweak builder method naming
Most builder methods are setters, so this prefix doesn't carry its weight.
2019-01-27 07:19:47 +01:00
Benjamin Saunders bf456e4792 Don't panic on non-unique Arc in ServerConfigBuilder
Copy-on-write semantics are appropriate here.
2019-01-27 07:19:47 +01:00
Benjamin Saunders 06b4873257 Isolate per-endpoint and per-connection configuration
This makes it easier to speak different application protocols on
different connections using the same endpoint
2019-01-27 07:19:47 +01:00
Benjamin Saunders 222c2d88c6 Implicit stream opening
A stream ID that is used out of order results in all streams of that
type with lower-numbered stream IDs also being opened. This allows
applications to assign meaning to incoming streams based on the order
in which they're opened.
2019-01-24 08:31:21 +01:00
Benjamin Saunders cd4607d7d8 Don't panic on missing client transport parameters 2019-01-24 07:33:29 +01:00
Dirkjan Ochtman 8d3abded71 Add helper method to determine side from TlsSession variant 2019-01-23 21:46:48 -08:00
Dirkjan Ochtman 48414a07f7 Add trait and impl for CryptoServerConfig 2019-01-23 21:46:48 -08:00
Dirkjan Ochtman 4e527d9925 Add trait and impl for CryptoClientConfig 2019-01-23 21:46:48 -08:00
Dirkjan Ochtman 4f4b8e6696 Extend the CryptoSession interface some more 2019-01-23 21:46:48 -08:00
Dirkjan Ochtman 9e48a0977a Use trait to abstract over TlsSession type 2019-01-23 21:46:48 -08:00
Dirkjan Ochtman b144b9a86b Hide creation of Crypto in TlsSession 2019-01-23 21:46:48 -08:00
Dirkjan Ochtman afe712f328 Move TransportParameters parsing into TlsSession 2019-01-23 21:46:48 -08:00
Benjamin Saunders 088c45e26a Remove identity conversions 2019-01-23 14:34:28 +01:00
Benjamin Saunders e85c320e7d Improve configuration error checking 2019-01-23 14:34:28 +01:00
Benjamin Saunders 1f35a803d8 Draft 18 recovery fixes 2019-01-23 14:34:28 +01:00
Benjamin Saunders 1dad005637 Draft 18 preferred_address 2019-01-23 08:35:23 +01:00
Benjamin Saunders bd3ec80990 Validate max_ack_delay parameter 2019-01-23 08:35:23 +01:00
Benjamin Saunders 008e197030 Rich transport errors
This folds some of our logging into the reason field for easier
debugging
2019-01-23 08:35:23 +01:00
Benjamin Saunders 25d61416e9 Remove redundant logging 2019-01-23 08:35:23 +01:00
Benjamin Saunders 6f7ac12c9a Remove redundant error check 2019-01-23 08:35:23 +01:00
Benjamin Saunders ebf9decfb2 Don't reject longer-than-necessary frame type encodings
The draft now describes this as optional, and it's less work to be
less picky.
2019-01-23 08:35:23 +01:00
Benjamin Saunders 64ac5fde0d Only validate 0-RTT transport parameters if 0-RTT is accepted 2019-01-23 08:35:23 +01:00
Benjamin Saunders aab4ff41cb Fix panic on Debug for weird TLS alerts 2019-01-23 08:35:23 +01:00
Benjamin Saunders 8037e5e7e3 Track latest received packet per packet number space
Fixes rare subtle errors in ACK delay accounting and simplifies the
logic.
2019-01-23 08:35:23 +01:00