stammw
60949bc0df
H3: make streams reset() take &mut, not ownership
2020-05-04 17:59:05 +02:00
stammw
ae4b61cf1e
H3: impl HttpBody for Body
2020-05-04 17:59:05 +02:00
Dirkjan Ochtman
8a97c8d397
H3: change structure of Body
2020-05-04 17:59:05 +02:00
stammw
74d8798b5d
H3: create Error variant for Body errors
...
This is preparing the HttpBody integration: Error::Body(HttpBody::Error)
2020-05-04 17:59:05 +02:00
stammw
90008bf7fb
H3: make payload-frames carry a Buf impl
...
The HttpBody trait make use of `bytes::Buf` to reference the data. As
the code was holding `Bytes`, a copy would have been necessary.
Introduces a parameter type bound on Buf instead of Bytes for
payload-frames transmits.
2020-05-04 17:59:05 +02:00
Benjamin Saunders
09ac124ae6
Pass header/packet keys together when sensible
2020-05-04 16:39:43 +02:00
Benjamin Saunders
d91f9c2b39
Rename connection::spaces::CryptoSpace to crypto::Keys
2020-05-04 16:39:43 +02:00
Benjamin Saunders
167faaaa66
Rename crypto::Session::Key to PacketKey
2020-05-04 16:39:43 +02:00
Benjamin Saunders
07f42f99ee
Split keys by direction
...
Allows 0-RTT keys, which are one-way only, to be more gracefully
represented.
2020-05-04 16:39:43 +02:00
Benjamin Saunders
5ee014937d
Isolate secrets from keys
...
Paves the way for secrets to become internal to rustls
2020-05-04 16:39:43 +02:00
Benjamin Saunders
120a72bbd3
Move initial key construction into crypto::Session
...
Paves the way for further key decomposition.
2020-05-04 16:39:43 +02:00
Benjamin Saunders
4a5d9cd632
Compute new 1-RTT keys without reference to prior ones
...
Prerequisite to moving secrets out of keys
2020-05-04 16:39:43 +02:00
Benjamin Saunders
882ca19d88
More debuggable key update test
2020-05-04 16:39:43 +02:00
Benjamin Saunders
ca6776658a
Listen on IPv6 by default in h3 server example
2020-05-04 07:10:50 +02:00
Benjamin Saunders
31d1a4c0db
Add license to interop crate
2020-05-04 07:10:50 +02:00
Benjamin Saunders
fc77a98445
Send 0.5-RTT responses from interop server
2020-05-03 08:58:03 +02:00
Benjamin Saunders
e9e03766d6
Don't duplicate key update logic provided by rustls
2020-05-02 12:00:59 -07:00
Benjamin Saunders
d641dc2014
Rename TLS to crypto in crypto-agnostic code
2020-05-02 12:00:59 -07:00
Benjamin Saunders
386cc04bf9
Report cryptographic alert codes
2020-05-01 10:47:32 +02:00
Benjamin Saunders
16126d29b7
Minimal siduck support in interop client
2020-05-01 10:47:32 +02:00
Benjamin Saunders
715106f480
Support siduck in interop server
2020-05-01 10:47:32 +02:00
Benjamin Saunders
e8d0ef724f
Style tweaks
2020-05-01 10:47:32 +02:00
Benjamin Saunders
e6e8bb45c0
Remove obsolete exports
2020-04-30 07:32:55 +02:00
Dirkjan Ochtman
81cbbd5f87
Rename increase_max_data() to received_max_data() for consistency
2020-04-28 13:06:10 -07:00
Dirkjan Ochtman
a6de6b96ca
Clean up unnecessary helper functions
...
Undo the borrow checker workarounds.
2020-04-28 13:06:10 -07:00
Dirkjan Ochtman
41de76db35
Refactor incoming stream ID validation to clean up code
2020-04-28 13:06:10 -07:00
Dirkjan Ochtman
4e58e7d83b
Extract logic for STOP_SENDING into Streams::is_peer_finished()
2020-04-28 13:06:10 -07:00
Dirkjan Ochtman
1f434a6474
Write stream control frames from inside Streams
2020-04-28 13:06:10 -07:00
Dirkjan Ochtman
9aba2955a3
Keep configured stream_receive_window in Streams
2020-04-28 13:06:10 -07:00
Dirkjan Ochtman
545cfbd4e5
Move local_max_data state into Streams
2020-04-28 13:06:10 -07:00
Dirkjan Ochtman
261d0f7f54
Move data_recvd state into Streams
2020-04-28 13:06:10 -07:00
Dirkjan Ochtman
eef5baca82
Move handling of MaxStreams frames into Streams
2020-04-28 13:06:10 -07:00
Dirkjan Ochtman
be720e1315
Privatize many more streams APIs
2020-04-28 13:06:10 -07:00
Dirkjan Ochtman
aec6f7208c
Move call to on_stream_frame() into Streams::reset()
2020-04-28 13:06:10 -07:00
Dirkjan Ochtman
ea8b59c9f3
Move incoming ResetStream handling into Streams
2020-04-28 13:06:10 -07:00
Dirkjan Ochtman
41dd45da66
Call on_stream_frame() directly from increase_max_stream_data()
2020-04-28 13:06:10 -07:00
Dirkjan Ochtman
d108cefc0d
Handle received stream frames in Streams
2020-04-28 13:06:10 -07:00
Dirkjan Ochtman
65429d6097
Move on_stream_frame() into Streams
2020-04-28 13:06:10 -07:00
Dirkjan Ochtman
20c8ee1a69
Keep side state in Streams
2020-04-28 13:06:10 -07:00
Dirkjan Ochtman
4eedff0653
Handle MaxStreamData frame in Streams
2020-04-28 13:06:10 -07:00
Dirkjan Ochtman
b65e78009d
Let Streams::reset() prepare events
2020-04-28 13:06:10 -07:00
Dirkjan Ochtman
ccf6a0b5e0
Let Streams::ack() prepare events
2020-04-28 13:06:10 -07:00
Dirkjan Ochtman
fb544ad43f
Store stream events in Streams
2020-04-28 13:06:10 -07:00
Dirkjan Ochtman
682c5863d5
Introduce separate StreamEvent enum
2020-04-28 13:06:10 -07:00
Dirkjan Ochtman
9b7757664e
Move stream opened state into Streams
2020-04-28 13:06:10 -07:00
Dirkjan Ochtman
6482674762
Move Streams update from parameters into Streams
2020-04-28 13:06:10 -07:00
Dirkjan Ochtman
7f883511bf
Move acked stream reset logic into Streams
2020-04-28 13:06:10 -07:00
Dirkjan Ochtman
0aebc7592f
Split config module out of shared module
2020-04-28 13:06:10 -07:00
Dirkjan Ochtman
2541e56961
Group modules used to build Connection
2020-04-28 13:06:10 -07:00
Dirkjan Ochtman
349925bd95
Collect Connection public API together at the top
2020-04-28 13:06:10 -07:00