Marten Seemann
cc76441539
implement a function that blocks until an early session can be used
2019-08-13 08:52:26 +07:00
Marten Seemann
b06d7b0cba
use the HandshakeComplete() context for accepting sessions in the server
2019-08-13 08:52:26 +07:00
Marten Seemann
6eb72f712d
implement a session method to tell if the handshake is already complete
2019-08-13 08:52:26 +07:00
Marten Seemann
bb48c9b31a
pass the time a packet was received to the short header opener
...
This saves us one time.Now() syscall per received 1-RTT packet.
2019-08-11 13:33:02 +07:00
Marten Seemann
ee00cbe088
Merge pull request #2033 from tatianab/injection-attacks
...
Successful early-handshake injection attacks
2019-08-08 00:05:43 -04:00
Marten Seemann
d5585628d8
remove unneeded return value of ReceivedPacketHandler.ReceivedPacket()
2019-08-05 06:55:26 +07:00
Tatiana Bradley
361fd2d2b2
addressed reviewer comments
2019-08-02 22:44:44 +00:00
Tatiana Bradley
e859b12ad4
added successful pre-handshake injection attacks
2019-08-02 21:52:20 +00:00
Marten Seemann
f150ed4d4e
rename sentPacketHandler functions to match the recovery draft
2019-07-25 17:10:47 -04:00
Marten Seemann
6af7df436a
don't close the session when unpacking a packet fails
2019-06-30 18:35:49 +07:00
Marten Seemann
299da56aef
check if a frame is allowed at the encryption level it was sent with
2019-06-29 12:32:19 +07:00
Marten Seemann
73d5d83a1d
pass the largest acked 1-RTT packet number to the crypto setup
2019-06-27 07:42:19 +08:00
Marten Seemann
c522bcc683
return a defined error when the AEAD cannot open a packet
2019-06-22 20:01:18 +08:00
Marten Seemann
2b8cece60a
add a context to Session.Open{Uni}StreamSync
2019-06-22 19:37:21 +08:00
Marten Seemann
5550ba2c3b
add a context to Session.Accept{Uni}Stream
2019-06-22 19:37:11 +08:00
Marten Seemann
a8633a952c
introduce a type for the stream number
2019-06-05 17:45:17 +08:00
Marten Seemann
34543848f0
send a NEW_TOKEN from after completing the handshake (as a server)
2019-06-02 14:18:27 +08:00
Marten Seemann
e361d3c5cd
use a callback to signal completion of the handshake
2019-05-31 19:13:41 +08:00
Marten Seemann
743868159f
use a callback to pass handshake errors to the session
2019-05-31 18:35:37 +08:00
Marten Seemann
06da72ae4e
Merge pull request #1929 from lucas-clemente/drop-handshake-keys
...
drop Initial and Handshake keys when receiving the first 1-RTT ACK
2019-05-30 20:52:39 +08:00
Marten Seemann
cd6047b58e
fix logging of application errors
2019-05-30 17:15:19 +08:00
Marten Seemann
a4989c3d9c
drop Initial and Handshake keys when receiving the first 1-RTT ACK
2019-05-30 14:19:26 +08:00
Marten Seemann
2f4fc22be1
remove unused Session.GetOrOpenStream
...
This method was only needed for the gQUIC H2 mapping.
2019-05-28 17:35:50 +01:00
Marten Seemann
0a86224858
pass a string, not an error, to Session.CloseWithError
2019-05-13 08:04:24 +02:00
Marten Seemann
b5336be518
rename retransmittable to ack-eliciting
2019-04-12 13:25:39 +09:00
Marten Seemann
565e5f135a
don't require servers to send stateless reset tokens in transport params
2019-03-24 16:23:08 +01:00
Marten Seemann
d44c81de7a
remove verification of version negotiation
2019-03-23 11:26:20 +01:00
Marten Seemann
b816209f66
fix queueing of undecryptable packets
2019-03-10 12:25:16 +09:00
Marten Seemann
6cf20310fe
use an array for the stateless reset token in the transport parameters
2019-03-08 18:09:37 +09:00
Marten Seemann
733dcb75eb
rename the methods of the sessionRunner interface
2019-03-08 18:09:36 +09:00
Marten Seemann
ef55a44bdb
restart the idle timeout when sending the first retransmittable packet
2019-03-08 17:32:50 +09:00
Marten Seemann
662041649f
use the error names from the draft
2019-03-06 13:45:05 +09:00
Marten Seemann
9c09e84765
use IETF QUIC transport error codes
2019-03-06 13:43:18 +09:00
Marten Seemann
47c156c59b
don't send timeout errors on the wire
2019-03-02 16:40:03 +09:00
Marten Seemann
9b5a20e772
remove some unused functions
2019-02-27 19:31:53 +09:00
Marten Seemann
fbe8844006
remove some unneccessary type conversions
2019-02-27 19:30:55 +09:00
Marten Seemann
02e851bd11
cut coalesed packets in the session
2019-02-27 10:03:34 +09:00
Marten Seemann
28ed85b9c6
move cutting of coalesced packets to the wire package
2019-02-23 10:24:42 +08:00
Marten Seemann
17f4ebad64
handle Retry packets in the session
2019-02-04 15:38:47 +08:00
Marten Seemann
2712626e66
move processing of transport parameters to the session
2019-02-02 09:24:37 +08:00
Marten Seemann
a303ad9745
always send ACKs in the correct packet number space
2019-01-11 11:12:07 +07:00
Marten Seemann
5ccc367462
start ignoring packets in ACK frames only after the handshake completed
2019-01-11 10:52:39 +07:00
Marten Seemann
131f561be0
don't close the session when unpacking a packet fails
...
Before a packet is successfully authenticated, we can't be sure if this
is a packet that was injected by an attacker. If any error occurs before
authenticating the packet, we should just drop it.
2019-01-03 18:53:43 +07:00
Marten Seemann
855b643c7c
move frame parsing to the session
...
This way, we can handle every parsed frame directly, and avoid
allocating a slice of parsed frames.
2019-01-03 18:53:36 +07:00
Marten Seemann
5a37e8983d
remove unnecessary Raw byte slice from the header
2019-01-03 10:14:08 +07:00
Marten Seemann
3691a18849
Merge pull request #1692 from lucas-clemente/unify-tlp-and-rto
...
unify TLP and RTO
2019-01-03 10:07:00 +07:00
Marten Seemann
77d48248ff
unify TLP and RTO
...
This doesn't yet implement the persistent congestion detection, since
the specification of that still is in flux.
2019-01-01 09:53:09 +07:00
Marten Seemann
767dbdd545
put back packet buffers after processing a packet
...
This introduces a reference counter in the packet buffer, which will be
used to process coalesced packets.
2019-01-01 09:50:29 +07:00
Marten Seemann
178ac0dacb
keep increasing the packet number after version negotiation and retry
2018-12-22 22:15:35 +06:30
Marten Seemann
f9218444a9
use a separate function to close the session after VN and retry
2018-12-21 23:47:10 +06:30