Commit Graph

187 Commits

Author SHA1 Message Date
Benjamin Saunders b2ed63bd14 refactor and expose session tickets; add initial interop test 2018-05-22 19:22:28 -07:00
Benjamin Saunders df21488c0c Update README 2018-05-21 21:57:38 -07:00
Benjamin Saunders fb9190a0b6 core: fix 0-RTT send/recv
Not explicitly shutting down TLS connections caused OpenSSL to omit them
from the anti-replay cache, preventing resumption. Additionally, the
wrong header type was being used when sending 0-RTT packes.
2018-05-21 21:49:14 -07:00
Benjamin Saunders a9f9ec614d core: allow ACK-only handshake packets 2018-05-19 11:10:42 -07:00
Benjamin Saunders 5993415434 core: draft 0-RTT transmit support 2018-05-19 10:55:56 -07:00
Benjamin Saunders 7c7f635527 core: draft 0-RTT receive support 2018-05-17 21:47:22 -07:00
Benjamin Saunders 14f33b74be core: remove dead code 2018-05-17 12:43:00 -07:00
Benjamin Saunders 140c22d0cc update README 2018-05-17 12:39:13 -07:00
Benjamin Saunders 1f1f9463fe core: don't inspect reserved short header bit 2018-05-17 12:38:15 -07:00
Benjamin Saunders e65eaa2ea3 core: clarify some errors 2018-05-17 12:38:01 -07:00
Benjamin Saunders 8ccd95c703 core: don't send MAX_DATA after handshake
This is unnecessary because stream 0 is exempt from connection-level
flow control.
2018-05-17 12:09:04 -07:00
Benjamin Saunders 72c9e4be35 tokio: work around panic on handshake failure 2018-05-17 02:54:24 -07:00
Benjamin Saunders f2d88da66b nix: always have backtraces 2018-05-17 02:54:09 -07:00
Benjamin Saunders 9f13021841 core: fix server dedup of retransmitted Initial under stateful hs 2018-05-17 02:23:13 -07:00
Benjamin Saunders e6bd7cad9c core: fix incorrect retransmission of ClientHello under high latency
If the ClientHello got retransmitted prematurely and the handshake then
proceeded, the client's Finished packet would contain a unneeded copy of
the ClientHello, and hence be deemed an Initial by the transmit logic,
leading to it being dropped by the server and the handshake stalling.
2018-05-17 01:15:56 -07:00
Benjamin Saunders 5e3e85ab08 core: include TLS alert, if any, in handshake error 2018-05-17 00:55:35 -07:00
Benjamin Saunders 5ca79bb6b9 examples: allow arbitrary listen address 2018-05-17 00:36:53 -07:00
Benjamin Saunders 843fc3c89a examples: expose stateless retry 2018-05-17 00:26:13 -07:00
Benjamin Saunders b0a3bc8837 core: ensure we don't use later TLS versions inadvertently 2018-05-17 00:25:58 -07:00
Benjamin Saunders a5989575d2 core: minimal resumption UT 2018-05-17 00:25:44 -07:00
Benjamin Saunders 55bf7621a6 core: optional stateless retry 2018-05-16 23:08:07 -07:00
Benjamin Saunders f65a59a22e core: sanity-check NEW_CONNECTION_ID 2018-05-16 22:53:25 -07:00
Benjamin Saunders d76f9e2040 core: tolerate NEW_CONNECTION_ID 2018-05-16 22:47:35 -07:00
Benjamin Saunders 989284511d core: improve handling of unexpected long header packets 2018-05-16 20:41:47 -07:00
Benjamin Saunders 643c6829e9 core: fix openssl version bound 2018-05-16 20:40:42 -07:00
Benjamin Saunders b44a612304 examples: mark unreachable case 2018-05-16 08:55:12 -07:00
Benjamin Saunders 0912edaaf2 core: fix panic on malformed header 2018-05-16 08:55:00 -07:00
Benjamin Saunders f1e7bd4e54 session resumption 2018-05-16 00:23:57 -07:00
Benjamin Saunders 9e3467c0a2 core: fix underflow on recv of already-read stream frame 2018-05-16 00:20:38 -07:00
Benjamin Saunders af50ca0154 core: fix stream ID fencepost error 2018-05-12 23:25:32 -07:00
Benjamin Saunders 6045f79bd6 core: don't ignore handshake completion ACKs
Improves early RTT estimation
2018-05-12 22:35:36 -07:00
Benjamin Saunders 31d35944aa core: fix high-latency handshakes and related bugs
Packets that complete the handshake must be considered implicit
acknowledgement of all outstanding handshake packets, otherwise
retransmitted handshake packets that are not ultimately needed might
never be acknowledged, leading to infinite retransmits until the
congestion window shrinks to unusability.
2018-05-12 16:17:33 -07:00
Benjamin Saunders 15662a3f44 core: refactor tests to support passage of time 2018-05-12 11:02:30 -07:00
Benjamin Saunders a4fbb443ea examples: less monolithic server future 2018-05-11 18:05:38 -07:00
Benjamin Saunders e40d241c0d core: sni accessor 2018-05-11 00:29:42 -07:00
Benjamin Saunders 6160a53625 tokio: update for rustc 1.26 2018-05-11 00:25:27 -07:00
Benjamin Saunders 1078ce9f76 core: fix inadvertent sending of certificate requests 2018-05-11 00:24:21 -07:00
Benjamin Saunders 91924a7387 Iterate on documentation 2018-05-02 22:09:20 -07:00
Benjamin Saunders 8e67460f34 Bump versions 2018-05-02 19:02:12 -07:00
Benjamin Saunders 5e8dcc71ee core: fix bad delay in server's first ACK 2018-05-02 19:00:58 -07:00
Benjamin Saunders 9ac732dd86 core: log ACK delay 2018-05-02 18:34:41 -07:00
Benjamin Saunders 7b5499f1e7 examples: use packaged single-threaded runtime 2018-05-02 18:34:17 -07:00
Benjamin Saunders aa5300da58 core: fix connect test 2018-05-02 18:33:05 -07:00
Benjamin Saunders 75785976cd Update to OpenSSL-pre6
This allows for logging key material sufficient for decryption by Wireshark.
2018-05-02 18:32:25 -07:00
Benjamin Saunders a0b07ddb7b core: fix client bidi stream limit fencepost 2018-05-02 18:31:39 -07:00
Benjamin Saunders f1862b55fe core: fix panic on long packet with empty payload 2018-05-02 18:31:07 -07:00
Benjamin Saunders 934f681b77 core: unit test for congestion 2018-05-02 18:30:34 -07:00
Benjamin Saunders 5d3aca186f core: fix default cert verification behavior 2018-05-02 18:29:26 -07:00
Benjamin Saunders 6cef002e07 core: more detailed logging 2018-05-01 22:17:43 -07:00
Benjamin Saunders 82016c47a2 core: fix panic composing PNs before receiving ACKs 2018-05-01 20:44:00 -07:00