Dirkjan Ochtman
9327784e99
Move transmit_handshake() into Connection type
2018-09-06 16:05:04 +02:00
Dirkjan Ochtman
e5558cb821
Move gen_initial_packet_num() into Context
2018-09-06 16:05:04 +02:00
Dirkjan Ochtman
4bc02e4b32
Introduce Context type to hold connection-accessible Endpoint state
2018-09-06 16:05:04 +02:00
Dirkjan Ochtman
6149d76ec7
Move core integration tests into library module
2018-09-06 16:05:04 +02:00
Dirkjan Ochtman
5a98c1fa8e
Move Connection type and related code into separate module
2018-09-06 16:04:55 +02:00
Dirkjan Ochtman
f2d4bb42a5
Move TLS code into a separate module
2018-09-05 21:17:49 +02:00
Dirkjan Ochtman
b1d912c555
Abstract creation of TLS context into separate function
2018-09-04 16:15:01 +02:00
Dirkjan Ochtman
1c122c8fa3
Fix formatting with cargo fmt
2018-08-30 17:32:09 +02:00
Benjamin Saunders
36f1724586
Update recommended OpenSSL version
...
Fix tests to match its NewSessionTicket behavior while we're at it
pre-quinn-quicr
2018-07-29 16:45:41 -07:00
Dirkjan Ochtman
1876cbd28b
rustls has draft 28 support on master now
pre-quicr-quinn
2018-07-29 21:11:36 +02:00
dependabot[bot]
383ff1d4d5
Update webpki-roots requirement to 0.15
...
Updates the requirements on [webpki-roots](https://github.com/ctz/webpki-roots ) to permit the latest version.
- [Release notes](https://github.com/ctz/webpki-roots/releases )
- [Commits](https://github.com/ctz/webpki-roots/commits )
Signed-off-by: dependabot[bot] <support@dependabot.com >
2018-07-16 16:23:44 +01:00
Dirkjan Ochtman
05d0515c93
Update to new ring/webpki releases
2018-07-13 20:43:39 +01:00
Dirkjan Ochtman
108bfa436f
Store protocol version in ConnectionState
2018-07-03 11:28:12 +02:00
Dirkjan Ochtman
066af2b16a
Deduplicate code in Client constructors
2018-07-03 11:24:15 +02:00
Dirkjan Ochtman
5bcc87131d
Pass version into transport parameters
2018-07-03 11:24:15 +02:00
Dirkjan Ochtman
82455bc917
Use new() to initialize transport parameters types
2018-07-03 11:24:15 +02:00
Dirkjan Ochtman
bcb7a231aa
Fix formatting with cargo fmt
2018-07-03 11:24:15 +02:00
Benjamin Saunders
845d60ed5d
Expose callback for application-level authentication of client certs
2018-06-27 19:49:03 -07:00
Dirkjan Ochtman
68a8dd54a5
Require secure version of untrusted
2018-06-26 10:03:26 +02:00
Benjamin Saunders
6751a02543
Bump versions
2018-06-22 18:33:05 -07:00
Benjamin Saunders
031e852b29
Use released OpenSSL bindings
2018-06-22 18:29:56 -07:00
king6cong
0a447c629d
doc: typo fix
2018-06-22 18:27:11 -07:00
Dirkjan Ochtman
19803d4c4e
Add paragraph pointing to Patreon
2018-06-22 22:08:30 +02:00
Dirkjan Ochtman
9cca798104
Upgrade to tarpaulin-0.6.0
2018-06-12 09:20:16 +02:00
Dirkjan Ochtman
3ba4932078
Improve error message about unexpected DCID
2018-06-07 15:18:42 +02:00
Dirkjan Ochtman
ae21da1f10
Only set new state after queueing packet
2018-06-07 15:18:08 +02:00
Dirkjan Ochtman
55ba306a7b
Derive Copy for State enum
2018-06-07 15:17:31 +02:00
Dirkjan Ochtman
6287c0bfb1
Apply formatting changes from newer cargo fmt
2018-06-07 14:54:33 +02:00
Dirkjan Ochtman
2a13a2ae36
Add new Client::connect_with_tls_config() API method
2018-06-07 14:52:38 +02:00
Dirkjan Ochtman
9cd7059741
Link to video from the talk in README
2018-06-03 15:07:19 +02:00
Dirkjan Ochtman
b81937b522
Implement careful packetization and use stream buffers for TLS ( fixes #3 , #18 )
...
This is an unfortunately large commit that intertwines several things:
- Use stream buffers to mediate sending and receiving data
- Use regular stream data transfer for stream 0 (TLS)
- Carefully packetize outgoing messages
The packetization approach is basically to include all non-STREAM frames,
assuming for now that they will always fit into a packet. The packet
size is set conservatively at the maximum allowed path MTU (1232 bytes
for IPv6). Remaining bytes will be filled with STREAM frames.
Additionally, a connection can now queue more than one packet at a time.
2018-06-02 15:51:49 +02:00
Dirkjan Ochtman
37f4c9b4ee
Only send ACK frames after receiving non-ACK payloads
2018-06-02 15:47:35 +02:00
Dirkjan Ochtman
8770660228
Rename Streams::queue to Streams::control
2018-06-02 15:47:35 +02:00
Dirkjan Ochtman
6925b216ab
Make StreamRef id field public
2018-06-02 15:47:35 +02:00
Dirkjan Ochtman
64b8f3ba92
Always send long headers with two-byte payload length
2018-06-02 15:47:35 +02:00
Dirkjan Ochtman
c838c970e4
Change Streams::init_send() to return Result instead of Option
2018-06-02 15:23:49 +02:00
Dirkjan Ochtman
ddb73681d1
Open up stream 0 for both sides
2018-06-01 15:13:24 +02:00
Dirkjan Ochtman
c50495e111
Use Default::default() for Stream constructor
2018-06-01 15:12:30 +02:00
Dirkjan Ochtman
bb92fbb718
Derive Debug for Stream type
2018-06-01 15:11:42 +02:00
Dirkjan Ochtman
94b547c987
Address clippy suggestions
2018-05-31 13:18:52 +02:00
Dirkjan Ochtman
65bf02c924
Fix formatting with cargo fmt
2018-05-31 13:14:02 +02:00
Dirkjan Ochtman
4174627231
Remove final traces of Packet type
2018-05-31 13:13:36 +02:00
Dirkjan Ochtman
db77ec5c5e
Move PartialDecode::finish() implementation into ConnectionState::handle_partial()
2018-05-31 13:08:41 +02:00
Dirkjan Ochtman
eb3ec93934
Move packet encoding into ConnectionState::queue_packet()
2018-05-31 12:57:28 +02:00
Dirkjan Ochtman
c641646870
Build packets just in time
2018-05-31 12:05:37 +02:00
Dirkjan Ochtman
4cb49b6d78
Fix formatting with cargo fmt
2018-05-30 15:58:29 +02:00
Dirkjan Ochtman
e32f9d99cf
Handle errors from creating TLS server configuration
2018-05-30 15:58:23 +02:00
Dirkjan Ochtman
7db2c3753a
Use tokio::run() to run the example server
2018-05-30 15:55:24 +02:00
Dirkjan Ochtman
94f31ffef3
Fix client default local addresses to allow any interface
2018-05-30 15:47:55 +02:00
Dirkjan Ochtman
b6e436b514
Use current_thread::Runtime for running tests
2018-05-30 13:24:04 +02:00