Commit Graph

36 Commits

Author SHA1 Message Date
Marten Seemann
07d4fd0991 use the new qtls interface for (re)storing app data with a session state
Application data is now retrieved and restored via two callbacks on the
qtls.Config. This allows us the get rid of the rather complex wrapping
of the qtls.ClientSessionCache. Furthermore, it makes sure that we only
restore the application data when qtls decides to actually use the
ticket.
2020-07-01 14:00:08 +07:00
Marten Seemann
012e62112d drop support for Go 1.13 2020-06-25 15:44:50 +07:00
Marten Seemann
477c5858dc update the protobuf library to google.golang.org/protobuf/proto 2020-05-21 17:35:12 +07:00
Marten Seemann
d4757395b6 make it possible to run the handshake unit tests with race detector 2020-05-05 18:13:12 +07:00
Marten Seemann
81daa8afd3 Merge pull request #2507 from lucas-clemente/disable-tls13-compatibility-mode
disable TLS 1.3 compatibility mode
2020-04-25 16:27:29 +07:00
Marten Seemann
97e191f3b4 update the ChaCha implementation, remove 0xffffffff workaround 2020-04-24 10:18:41 +07:00
Marten Seemann
3fc6869d28 disable TLS 1.3 compatibility mode 2020-04-23 15:04:34 +07:00
Marten Seemann
3ac2fb3161 make quic-go build with both Go 1.13 and 1.14 2020-04-09 07:51:18 +07:00
Marten Seemann
6fe4878f0e update to qtls based on Go 1.14's TLS implementation 2020-02-28 16:48:29 +07:00
Marten Seemann
c88a69034d use Go 1.14's embedded interfaces, update CIs 2020-02-28 15:25:53 +07:00
Marten Seemann
75c2d9f2b6 update qtls to v0.7.2
This version makes sure that the server first checks the ALPN, and only
exports Handshake secrets after the application protocol was chosen.
2020-02-25 17:53:08 +07:00
Marten Seemann
b658f92060 use the golang/x/crypto ChaCha20 implementation
https://go-review.googlesource.com/c/crypto/+/206638 added the
SetCounter method required for QUIC's header protection.
2020-02-22 10:53:41 +07:00
Marten Seemann
572ef44cf2 use GoJay to marshal JSON
GoJay doesn't use reflection to marshal JSON. This allows dramatically
faster encoding, as well as saving a large number of allocations.
2020-02-12 10:35:54 +07:00
Marten Seemann
70d8c0fbef delete session tickets after using them for 0-RTT 2020-02-09 18:40:08 +08:00
Marten Seemann
f91dfda8c3 make the TLS cipher suites configurable 2020-02-01 15:58:40 +07:00
Marten Seemann
8476b9c7e6 reject 0-RTT when the ALPN changed 2020-01-30 13:12:42 +07:00
Marten Seemann
d7948d627a drop 0-RTT keys when the server rejects 0-RTT 2020-01-30 09:12:31 +07:00
Marten Seemann
bf2602c652 update Ginkgo and Gomega 2020-01-29 10:41:41 +07:00
Marten Seemann
c809166cab update gomock, simplify script for generation mocks of private types 2020-01-26 12:53:41 +07:00
Marten Seemann
a9f4195fd0 check that transport params didn't change when accepting 2019-12-30 18:39:21 +04:00
Marten Seemann
a2e61ad76d add a client and server implementation for the interop test runner 2019-10-23 10:38:46 +07:00
Marten Seemann
88d1c78dab improve error messages on ALPN mismatches 2019-10-11 15:02:11 +07:00
Marten Seemann
fa89ec345a add support for ChaCha20 header protection 2019-09-07 11:36:50 +07:00
Marten Seemann
33b74fca79 use the new qtls SetWriteKey and SetReadKey interface 2019-09-07 11:36:06 +07:00
Marten Seemann
9d37e2a79f use updated qtls based on Go's 1.13 crypto/tls 2019-09-06 11:14:34 +07:00
Marten Seemann
ce0b1f2736 fix crash when the server disabled session resumption 2019-07-16 18:45:51 +07:00
Marten Seemann
c52a28cec1 explicitly trigger sending of session tickets 2019-07-05 20:53:25 +07:00
Marten Seemann
6bf42558f3 receive the encryption level for key updates from qtls 2019-07-05 10:36:53 +07:00
Marten Seemann
8926531f7e add the quic-trace protobuf 2019-06-20 22:57:57 +08:00
Marten Seemann
979ab75b3b require ALPN during the TLS handshake 2019-06-02 14:58:37 +08:00
Marten Seemann
4f6d0e651a implement HTTP/3 2019-04-11 09:06:10 +09:00
Marten Seemann
2adf923ee6 process the NewSessionTicket TLS message 2019-04-01 11:45:20 +09:00
Marten Seemann
f103919bf1 fix handling of HelloRetryRequests 2019-03-14 16:47:09 +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
59e9142426 retrieve the TLS alert from qtls when the handshake fails 2019-03-02 08:56:42 +09:00
Marten Seemann
c00eb1f5b5 add Go mod support 2019-03-01 10:23:27 +09:00