Dirkjan Ochtman
e22daa3dd3
Remove Option wrapper for Connection::state
2018-12-13 09:51:24 +01:00
stammw
7bea88df94
Update keys before decoding packet number on KEY_PHASE toggle
2018-12-13 08:29:51 +01:00
stammw
43c973fd15
Use the correct label for updating traffic secrets
2018-12-13 08:29:51 +01:00
Dirkjan Ochtman
30bbeeb2e7
Privatize Connection fields where possible
2018-12-12 08:51:45 +01:00
Dirkjan Ochtman
ce240b0d56
Move Connection getters into Connection type
2018-12-12 08:51:45 +01:00
Simon Werner
f8ea9e74d9
Update example documentation in Readme
...
Make it clearer how to run the example across the network. Supersedes PR #105 .
2018-12-10 09:18:31 +01:00
Benjamin Saunders
6286698dd1
impl From<ConnectionError> for Event
2018-12-08 19:05:01 -08:00
Benjamin Saunders
62d78c6662
Reduce control flow indirection
...
This only served to perform deduplication, which can be done more simply
with future work in the Multiplexer implementation.
2018-12-08 19:05:01 -08:00
Benjamin Saunders
180538dac7
Abstract out Context
...
This decouples Connection from the implementation details of Endpoint.
2018-12-08 19:05:01 -08:00
Benjamin Saunders
3edef3a5e5
Store an Arc<Config> in Connection
...
This simplifies many Connection function signatures and reduces the size
of the interface between Endpoint and Connection, while opening the door
to per-connection tuning.
2018-12-08 19:05:01 -08:00
Benjamin Saunders
50d81da0b6
Fix travis nightly rustfmt
2018-12-08 18:18:21 -08:00
Benjamin Saunders
6a308bdbdd
Style tweak
2018-12-08 02:41:08 -08:00
Benjamin Saunders
7ff1c37bd9
Don't move to Established on inauthentic packet
2018-12-08 02:41:08 -08:00
Benjamin Saunders
d566b2fdb9
Deduplicate packets
...
A receiver MUST discard a newly unprotected packet unless it is certain
that it has not processed another packet with the same packet number
from the same packet number space. Duplicate suppression MUST happen
after removing packet protection for the reasons described in Section
9.3 of [QUIC-TLS].
2018-12-08 02:41:08 -08:00
Benjamin Saunders
8d72747b69
Factor out packet transmit operation
2018-12-08 02:41:08 -08:00
Benjamin Saunders
20d435fce5
Inline handshake_complete
...
Short function with only one caller.
2018-12-08 02:41:08 -08:00
Benjamin Saunders
43c187aaea
Remove redundant argument
2018-12-08 02:41:08 -08:00
Benjamin Saunders
40770aaa46
Move flush_pending into Connection
2018-12-08 02:41:08 -08:00
Benjamin Saunders
a4775b0761
Handle ACK_ECN frames
2018-12-08 02:41:08 -08:00
Benjamin Saunders
f9134486f7
Handle RETIRE_CONNECTION_ID frames
2018-12-08 02:41:08 -08:00
Benjamin Saunders
020843282c
Handle NEW_TOKEN frames
2018-12-08 02:41:08 -08:00
Dirkjan Ochtman
0daabd4d79
Take advantage of non-lexical lifetimes
2018-12-07 23:02:32 +01:00
Dirkjan Ochtman
e555d11a43
Adopt 2018 idiom
2018-12-07 23:02:32 +01:00
Dirkjan Ochtman
4d6376c979
Convert to 2018 edition
2018-12-07 23:02:32 +01:00
Dirkjan Ochtman
a45cf6db82
Upgrade to rustfmt 1.31.0
2018-12-07 23:02:32 +01:00
Cyril Plisko
7fc13ab0aa
Fix incorrect assert!()
...
Fixes #108
2018-12-06 11:59:50 +01:00
Cyril Plisko
c16c2136c0
clippy::range_plus_one
2018-12-05 11:04:59 +01:00
Cyril Plisko
208a1622bc
clippy::collapsible_if
2018-12-05 11:04:59 +01:00
Cyril Plisko
fa60d521be
Introduce Side::is_client() and Side::is_server()
2018-12-05 11:04:59 +01:00
Cyril Plisko
7eeb53ecad
Tiny style cleanup
...
Replace
::std::ops::...
with
use std::ops;
ops::...
2018-12-05 11:04:59 +01:00
Cyril Plisko
538154bc6d
clippy::single_match
2018-12-05 11:04:59 +01:00
Cyril Plisko
80986de0a5
clippy::identical_conversion
2018-12-05 11:04:59 +01:00
Dirkjan Ochtman
0413e4d43a
Fix code style as suggested by clippy
2018-12-05 11:04:59 +01:00
Benjamin Saunders
a04d510563
Remove dead error cases
...
These should be left to rustls.
2018-11-30 11:07:14 -08:00
Benjamin Saunders
022dd4a0ca
Update README section on test certificates
2018-11-30 11:07:14 -08:00
Benjamin Saunders
ff7bc6e1bf
High level API cosmetic/convenience improvements
2018-11-30 11:07:14 -08:00
Benjamin Saunders
f4d55ed623
Move server-only configuration into its own struct
2018-11-30 11:07:14 -08:00
Benjamin Saunders
dbd56cd387
Cleaner outgoing packet number accounting
2018-11-30 11:07:14 -08:00
Benjamin Saunders
37e08e293f
Factor out common handshake transmit code
2018-11-30 11:07:14 -08:00
Benjamin Saunders
d7478fde90
Implement stateless retry
2018-11-30 11:07:14 -08:00
Benjamin Saunders
53a7a25d24
Bypass TLS record layer
2018-11-30 11:07:14 -08:00
Benjamin Saunders
7a56fd5252
slog-friendly TransportError
2018-11-30 11:07:14 -08:00
Benjamin Saunders
dc1e7884f4
Use CRYPTO frames for handshake
2018-11-30 11:07:14 -08:00
Benjamin Saunders
57edb5d82d
Fix packet number encoding/decoding
...
These were incompletely updated from a previous draft.
2018-11-30 11:07:14 -08:00
Benjamin Saunders
3bcd9ad7f4
Implement ConnectionClose frame type field
2018-11-30 11:07:14 -08:00
Benjamin Saunders
c585fdcf6f
varint frame types
2018-11-30 11:07:14 -08:00
Benjamin Saunders
02ce6bcb25
Remove HandshakeFailed state
...
This duplication was made unnecessary by TLS alerts in transport errors.
2018-11-30 11:07:14 -08:00
Benjamin Saunders
1ce3c74cab
Draft-15 transport errors
2018-11-30 11:07:14 -08:00
stammw
9f631b80e1
Get rid of Crypto as an enum and work directly with CryptoContext
2018-11-29 10:45:00 +01:00
stammw
1793070e4e
Remove commented code in crypto
2018-11-29 10:45:00 +01:00