Commit Graph

212 Commits

Author SHA1 Message Date
Marten Seemann
a8633a952c introduce a type for the stream number 2019-06-05 17:45:17 +08:00
Marten Seemann
979ab75b3b require ALPN during the TLS handshake 2019-06-02 14:58:37 +08:00
Marten Seemann
74ddf326c1 Merge pull request #1943 from lucas-clemente/new-tokens
send NEW_TOKEN frames
2019-06-02 14:42:25 +08:00
Marten Seemann
314df9229c Merge pull request #1941 from lucas-clemente/post-handshake-errors
add error handling for post-handshake crypto messages
2019-06-02 14:26:05 +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
7c7bcede6c rename handshake.TokenGenerator.NewToken to NewRetryToken 2019-06-02 14:14:05 +08:00
Marten Seemann
17634d2fe5 error when receiving a post-handshake message with wrong encryption level 2019-06-02 14:10:51 +08:00
Marten Seemann
d4da26bdbd fix flaky token generator test on CI 2019-06-02 13:57:51 +08:00
Marten Seemann
6888eb8593 return an error when handling the NewSessionTicket failed 2019-06-01 13:01:49 +08:00
Marten Seemann
4e709efa2f Merge pull request #1939 from lucas-clemente/crypto-setup-error-signaling
improve error handling in the crypto setup
2019-05-31 19:30:43 +08:00
Marten Seemann
e361d3c5cd use a callback to signal completion of the handshake 2019-05-31 19:13:41 +08:00
Marten Seemann
4fd6a7cc99 use a struct to pass callbacks from the session to the crypto setup 2019-05-31 19:00:10 +08:00
Marten Seemann
3b4e552582 Merge pull request #1936 from lucas-clemente/token-timestamp
use a high resolution timestamp in the token
2019-05-31 18:57:51 +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
ed69ae2ce0 Merge pull request #1940 from lucas-clemente/unexpected-handshake-messages
fix crash when receiving unexpected handshake messages
2019-05-31 18:14:29 +08:00
Marten Seemann
002b36abf5 use a high resolution timestamp in the token 2019-05-31 18:13:11 +08:00
Marten Seemann
aa9ab41560 Merge pull request #1937 from lucas-clemente/fix-hrr-race
fix race condition in crypto setup when sending a HelloRetryRequest
2019-05-31 18:09:08 +08:00
Marten Seemann
6899eb3c86 Merge pull request #1938 from lucas-clemente/remove-unused-connection-state
remove unused handshake.ConnectionState struct definition
2019-05-31 18:08:03 +08:00
Marten Seemann
73bd91a093 fix crash when receiving unexpected handshake message 2019-05-31 18:04:44 +08:00
Marten Seemann
5d4a47a3f3 return a crypto error when receiving unexpected handshake messages 2019-05-31 17:57:07 +08:00
Marten Seemann
2f6ab5aa5f remove unused handshake.ConnectionState struct definition 2019-05-31 15:00:34 +08:00
Marten Seemann
0be4ee197f fix race condition in crypto setup when sending a HelloRetryRequest 2019-05-31 01:57:58 +08:00
Marten Seemann
1d6707325f name the quic.Cookie to quic.Token 2019-05-30 22:13:06 +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
4042a8258c simplify writing of varint transport parameters 2019-05-08 12:53:19 +09:00
Marten Seemann
f847c5422d implement parsing and writing of the max_ack_delay transport parameter 2019-05-08 12:43:29 +09:00
Marten Seemann
9ffbd662c1 fix race condition when accessing the encryption level in crypto setup 2019-04-02 00:13:22 +09:00
Marten Seemann
e9f7f87063 remove two stray TODOs from the crypto setup 2019-04-01 12:04:19 +09:00
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
09574a6653 expose the tls.ConnectionState 2019-03-31 23:56:24 +09: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
9c09e84765 use IETF QUIC transport error codes 2019-03-06 13:43:18 +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
6c726ccba3 change the idle timeout transport parameter to milliseconds 2019-02-23 10:37:08 +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
c7f1fce88a set the default value for the ack_delay_exponent, if it is not sent 2019-02-08 13:50:49 +08:00