Commit Graph

624 Commits

Author SHA1 Message Date
Marten Seemann
a6d1917417 make sure the same session ticket key is used if none is configured 2019-04-01 11:45:20 +09:00
Marten Seemann
2adf923ee6 process the NewSessionTicket TLS message 2019-04-01 11:45:20 +09:00
Marten Seemann
da4b3e3176 pass a conn to qtls that returns the remote address 2019-04-01 11:45:20 +09:00
Marten Seemann
b2723d6d13 make the ClientSessionCache work with qtls 2019-04-01 11:45:16 +09:00
Marten Seemann
9ddf9129cf move generation of qtls.Config to a separate file, add tests 2019-04-01 11:41:06 +09:00
Marten Seemann
358fce241a Merge pull request #1841 from lucas-clemente/vnp-quic-bit
set the QUIC bit in Version Negotiation packets
2019-03-31 18:29:26 +02:00
Marten Seemann
09574a6653 expose the tls.ConnectionState 2019-03-31 23:56:24 +09:00
Marten Seemann
352ac45e32 set the QUIC bit in Version Negotiation packets 2019-03-29 09:20:41 +01:00
Marten Seemann
d44c81de7a remove verification of version negotiation 2019-03-23 11:26:20 +01:00
Marten Seemann
3264d7c583 fix logging of transport parameters without stateless reset tokens 2019-03-19 16:58:08 +09:00
Marten Seemann
f103919bf1 fix handling of HelloRetryRequests 2019-03-14 16:47:09 +09:00
Marten Seemann
e4bd715728 Merge pull request #1814 from lucas-clemente/stateless-resets
implement sending of stateless resets
2019-03-08 18:54:13 +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
79cd3235f8 log the stateless reset token in the transport parameters 2019-03-08 18:08:09 +09:00
Marten Seemann
5b27076a4c return the local TLS error, but don't send it on the wire 2019-03-08 18:02:43 +09:00
Marten Seemann
ae12852e4c add a message to crypto errors
The string representation varies depending on the message:
* if there's no message, the TLS alert is used
* if there's a message, it is used instead
2019-03-08 18:02:43 +09:00
Marten Seemann
373db3c153 send the correct error code for crypto errors 2019-03-08 18:02:43 +09:00
Marten Seemann
f9a21275a4 use the string representation of the TLS alert for crypto errors 2019-03-08 18:02:43 +09:00
Marten Seemann
e5303df419 implement a string representation for crypto error 2019-03-08 18:02:36 +09:00
Marten Seemann
ab47ba1021 fix error string representation for errors without a message 2019-03-08 17:35:25 +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
896d2da380 Merge pull request #1805 from lucas-clemente/return-timeout-errors
consistently return timeout errors after timeouts
2019-03-05 17:31:48 +09:00
Marten Seemann
9ed1a2e3e1 add integration test that we return timeout errors after an idle timeout 2019-03-05 16:22:48 +09:00
Marten Seemann
5e34cb1d71 run go generate ./... 2019-03-05 13:42:56 +09:00
Marten Seemann
59e9142426 retrieve the TLS alert from qtls when the handshake fails 2019-03-02 08:56:42 +09:00
Marten Seemann
fbe8844006 remove some unneccessary type conversions 2019-02-27 19:30:55 +09:00
Marten Seemann
4ae5e1908c Merge pull request #1794 from lucas-clemente/coalesced-packets
move coalesced packet handling to the session
2019-02-27 09:20:16 +08:00
Marten Seemann
6c726ccba3 change the idle timeout transport parameter to milliseconds 2019-02-23 10:37:08 +08:00
Marten Seemann
df34e4496e identify version negotiation packets without parsing the header 2019-02-23 10:24:42 +08:00
Marten Seemann
14426dfa12 implement a function to parse the destination connection ID of a packet 2019-02-23 10:24:42 +08:00
Marten Seemann
28ed85b9c6 move cutting of coalesced packets to the wire package 2019-02-23 10:24:42 +08:00
Marten Seemann
d82a60c835 copy the GetConfigForClient callback when creating the qtls.Config 2019-02-22 14:34:28 +08:00
Marten Seemann
791b90d4d5 copy the GetCertificate callback when creating the qtls.Config 2019-02-22 14:04:49 +08:00
Marten Seemann
500717066e use (a modified version of) the standard library TLS implementation 2019-02-22 13:33:56 +08:00
Marten Seemann
f6642ff948 use separate packet number spaces for sending packets
Packet numbers now start at 0 for every packet number spaces.
Furthermore, an ACK frame now only acknowledges packets in the packet
number space it was sent in.
2019-02-11 20:13:05 +08:00
Marten Seemann
b35c161f2e don't ignore reordered ACKs 2019-02-11 20:13:05 +08:00
Marten Seemann
631947ad7d use shorter variable name in the sent packet handler 2019-02-11 20:13:05 +08:00
Marten Seemann
c7f1fce88a set the default value for the ack_delay_exponent, if it is not sent 2019-02-08 13:50:49 +08:00
Marten Seemann
7dc4be2ce9 Merge pull request #1779 from lucas-clemente/remove-tls-received-extensions-error
remove the error return value when receiving TLS extensions
2019-02-07 20:51:57 +08:00
Marten Seemann
26afc7a4ca remove the error return value when receiving TLS extensions 2019-02-07 12:43:29 +08:00
Marten Seemann
b24b8e6926 implement sending of post-handshake crypto messages 2019-02-06 23:05:43 +08:00
Marten Seemann
e7ed5e3c92 implement the crypto stream for post-handshake crypto messages 2019-02-06 22:51:44 +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
a95b7c2868 refactor how transport parameters are passed from the extension handler 2019-02-02 09:24:37 +08:00
Marten Seemann
707e9f7b79 Merge pull request #1724 from lucas-clemente/ack-delay-exponent
implement the ack_delay_exponent
2019-01-28 22:00:38 +09:00
Marten Seemann
8380cf97a4 improve logging of NEW_TOKEN frames 2019-01-28 16:46:09 +09:00
Marten Seemann
6834c37462 move the maximum ack delay exponennt to the protocol constants 2019-01-28 16:37:00 +09:00
Marten Seemann
cebb4342ec use the ack_delay_exponent sent in the transport parameters 2019-01-28 16:09:47 +09:00