Marten Seemann
2797f85fc0
switch from unmaintained golang/mock to go.uber.org/mock ( #4050 )
2023-08-28 02:23:55 -07:00
Ameagari
6880f88089
save the max_datagram_frame_size transport parameter in the session ticket ( #4013 )
...
* Add MaxDatagramFrameSize parameter in session ticket
* fix gofumpt issues
* Update integrationtests/self/zero_rtt_test.go
Co-authored-by: Marten Seemann <martenseemann@gmail.com >
* fix: correct comparsion of max_datagram_frame_size
* test: use constant MaxDatagramFrameSize for session ticket test
* fix grammar
---------
Co-authored-by: Marten Seemann <martenseemann@gmail.com >
2023-08-18 19:16:16 -07:00
Marten Seemann
501cc21c4b
expose crypto/tls errors on the TransportError ( #4015 )
2023-08-18 03:01:49 -07:00
Marten Seemann
bda01bc489
handshake: use the correct hash function for TLS_AES_256_GCM_SHA384 ( #4031 )
2023-08-15 20:09:01 -07:00
Marten Seemann
1d848392bc
ignore QUICConn.SendSessionTicket error if session tickets are disabled ( #4030 )
2023-08-15 19:53:41 -07:00
elagergren-spideroak
571d3adef4
fix compatibility with API breaking change in Go 1.21 ( #4020 )
...
* add Go 1.21 compatibility
Signed-off-by: Eric Lagergren <elagergren@spideroak-inc.com >
* refactor for Go 1.20
Signed-off-by: Eric Lagergren <elagergren@spideroak-inc.com >
---------
Signed-off-by: Eric Lagergren <elagergren@spideroak-inc.com >
2023-08-09 05:22:30 -07:00
Marten Seemann
95ab7bdc9a
add tls.ClientHelloInfo.Conn for recursive GetConfigForClient calls ( #4016 )
2023-08-05 13:00:11 -07:00
Marten Seemann
18d3846d4f
set a net.Conn for tls.ClientHelloInfo.Conn used by GetCertificate ( #4014 )
2023-08-03 20:33:19 -04:00
Marten Seemann
f3a0ce1599
set a net.Conn with the correct addresses on the tls.ClientHelloInfo ( #4001 )
2023-07-31 13:32:10 -07:00
Marten Seemann
469a6153b6
use a synchronous API for the crypto setup ( #3939 )
2023-07-21 10:00:42 -07:00
Marten Seemann
0662afba63
stop using math/rand.Seed and Read in tests, bump go.mod version to 1.20 ( #3936 )
2023-07-01 11:29:41 -07:00
Marten Seemann
3d89e545d3
use the new crypto/tls QUIC Transport ( #3860 )
2023-07-01 11:15:00 -07:00
Marten Seemann
21388c86bb
drop support for draft-29 ( #3903 )
2023-06-21 04:06:44 -07:00
Marten Seemann
7a0ef5f867
make Config.Allow0RTT a bool, not a callback
2023-05-02 15:56:49 +02:00
Marten Seemann
c9a2f79b1c
simplify mockgen usage for private interfaces ( #3769 )
2023-04-19 07:57:00 -07:00
Marten Seemann
379e7ec848
Merge pull request #3745 from quic-go/aggressive-key-updates
...
initiate the first key update after sending / receiving 100 packets
2023-04-19 16:28:33 +02:00
Marten Seemann
1f57d4e789
protocol: remove VersionTLS, used during the gQUIC -> TLS 1.3 transition ( #3764 )
2023-04-19 07:24:34 -07:00
Marten Seemann
b03585160f
handshake: initiate the first key update after 100 packets
2023-03-31 18:20:49 +09:00
Marten Seemann
1ebd359b20
handshake: remove unnecessary member variable from updatableAEAD
2023-03-28 22:50:21 +09:00
Marten Seemann
af6c19617c
handshake: add benchmark tests for packet sealing, opening and rolling keys
2023-03-28 22:46:57 +09:00
Marten Seemann
56a6d8d35b
ci: update golangci-lint to v1.52.2, update Go version ( #3740 )
...
* ci: update golangci-lint to v1.52.2, update Go version
* run gofumpt
2023-03-27 22:55:26 -07:00
Marten Seemann
41ddaa0262
attach the QUIC version to context returned by ClientHelloInfo.Context ( #3721 )
2023-03-26 22:26:14 +09:00
zoltan-kiss-cujo
b7384a4404
quicv2: fix TLS extension type ( #3710 )
...
* quicv2: fix TLS extension type
* Update internal/handshake/tls_extension_handler.go
Co-authored-by: Marten Seemann <martenseemann@gmail.com >
---------
Co-authored-by: Marten Seemann <martenseemann@gmail.com >
2023-02-15 14:17:31 -08:00
Marten Seemann
0ac5d1c149
reduce the size of messageChan channel in the crypto setup ( #3664 )
2023-02-13 13:55:49 -08:00
Marten Seemann
04c3fd0756
deprecate quicvarint.Write in favor of quicvarint.Append ( #3690 )
2023-02-13 02:52:25 -08:00
Marten Seemann
3d9380ec3c
reject invalid active_connection_id_limit transport parameter values ( #3687 )
2023-02-01 17:03:19 -08:00
Marten Seemann
58cedf7a4f
rename module, adjust import paths to quic-go/quic-go ( #3680 )
2023-01-21 19:53:57 -08:00
Marten Seemann
b52d34008f
add Allow0RTT opt in the quic.Config to control 0-RTT on the server side ( #3635 )
2023-01-04 16:18:11 -08:00
Marten Seemann
421893b1c4
only call tls.CipherSuiteName if logging is on, reducing allocations ( #3632 )
...
tls.CipherSuiteName calls tls.CipherSuites, which in turn allocates a
large slice of values. We only need the name when we're logging, and
doing so, reduces the amount of allocations (and therefore garbage
created) during a QUIC handshake by roughly 5%.
2023-01-03 13:21:17 -08:00
Marten Seemann
7fbcbf7ac6
update QUIC v2 support to draft-ietf-quic-v2-08 ( #3631 )
2023-01-04 07:07:06 +13:00
Marten Seemann
d2512193da
qerr: include role (remote / local) in error string representations ( #3629 )
2022-12-08 19:58:52 +13:00
Marten Seemann
870fbe7ab0
migrate to Ginkgo v2
2022-10-11 16:38:44 +04:00
Marten Seemann
7023b52e13
speed up marshaling of transport parameters ( #3531 )
...
The speedup comes from multiple sources:
1. We now preallocate a byte slice, instead of appending multiple times.
2. Marshaling into a byte slice is faster than using a bytes.Buffer.
3. quicvarint.Write allocates, while quicvarint.Append doesn't.
2022-08-29 23:05:52 +03:00
Marten Seemann
1aced95d41
use an array instead of a byte slice for Connection IDs
2022-08-29 11:30:31 +03:00
Benedikt Spies
7da024da5a
Disable anti-amplification limit by address validation token ( #3326 )
2022-08-20 08:02:17 -07:00
Marten Seemann
f2fa98c0dd
implement a more intuitive address validation API
2022-08-12 13:13:29 +03:00
Marten Seemann
43bde14cf7
implement generic Min and Max functions
2022-08-10 14:59:05 +02:00
Marten Seemann
f10d4bd8f7
add key derivation paths for QUIC v2
2022-05-25 16:12:09 +02:00
Marten Seemann
c225299c84
handle TLS errors that occur before the ClientHello has been written
2022-05-20 12:27:00 +02:00
Marten Seemann
12d50e6810
tighten typing of channel in the crypto setup
2022-05-20 12:27:00 +02:00
Marten Seemann
0c6b3dfa93
run the updated version of gofumpt
2022-04-02 20:18:37 +01:00
Marten Seemann
f51cc93770
drop support for QUIC draft version 32 and 34
2021-07-06 09:50:10 -07:00
Marten Seemann
22112b7b66
use HkdfExtract from x/crypto
...
This means we don't have to expose it in qtls any more.
2021-05-30 20:26:55 -07:00
Marten Seemann
540c6ec074
Merge pull request #3174 from lucas-clemente/use-tls-cipher-suite-name
...
use tls.CipherSuiteName, instead of wrapping it in the qtls package
2021-05-29 11:45:39 -07:00
Marten Seemann
599d181316
use tls.CipherSuiteName, instead of wrapping it in the qtls package
2021-05-10 20:41:21 -07:00
Marten Seemann
05af55b0c9
use a pre-generated test vectors to test hkdfExpandLabel
...
The only reason we were using qtls.HkdfExpandLabel was to test our own
implementation of HKDF-Expand-Label. By using a pre-generated test
vector, we won't have to expose this function from qtls any more.
2021-05-10 20:41:05 -07:00
Marten Seemann
6b771df453
add support for QUIC v1
2021-05-01 10:05:29 +07:00
Marten Seemann
592fb9cad9
introduce a dedicated qerr.TransportError and qerr.ApplicationError
2021-05-01 09:38:48 +07:00
Marten Seemann
31ac5ca60d
allow 0-RTT when the server's connection receive limit is increased
2021-03-17 18:53:54 +08:00
Marten Seemann
3588cddd43
allow 0-RTT resumption if the server's stream limit was increased
2021-03-11 21:37:40 +08:00