Gaukas Wang
9b03bc282c
fix: uquic sync error
...
...so that uquic build/test shall pass and examples shall work again.
2023-08-28 16:53:19 -06:00
Gaukas Wang
856bc02b8f
Merge branch 'upstream' into sync-upstream
2023-08-28 14:12:03 -06:00
Marten Seemann
2797f85fc0
switch from unmaintained golang/mock to go.uber.org/mock ( #4050 )
2023-08-28 02:23:55 -07:00
Marten Seemann
ced65c0ddc
wire: always set the QUIC bit for Version Negotiation packets ( #3991 )
...
* wire: always set the QUIC bit for Version Negotiation packets
* Update internal/wire/version_negotiation_test.go
2023-08-20 19:55:57 -07:00
Marten Seemann
fe3c4f271d
add a method to retrieve non-QUIC packets from the Transport ( #3992 )
2023-08-19 01:19:17 -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
443c6148b6
protocol: add string representation for ECN values ( #4008 )
2023-08-18 17:17:37 -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
fba8d784a8
add tls.ClientHelloInfo.Conn for recursive GetConfigForClient calls ( #4016 )
2023-08-08 23:16:13 -06:00
Marten Seemann
18e4a9f516
set a net.Conn for tls.ClientHelloInfo.Conn used by GetCertificate ( #4014 )
2023-08-08 23:16:13 -06:00
Gaukas Wang
f7b03bf6b3
deps: upgrade dependencies after Go 1.21 releases ( #12 )
2023-08-08 23:15:52 -06:00
Gaukas Wang
5e966a9bec
fix: CI qtls tests ( #9 )
...
Remove some unlinked qtls functionalities.
2023-08-05 17:44:40 -06:00
Marten Seemann
95ab7bdc9a
add tls.ClientHelloInfo.Conn for recursive GetConfigForClient calls ( #4016 )
2023-08-05 13:00:11 -07:00
Gaukas Wang
95575f5fe7
break: update repo url [ci skip]
...
uTLS is not yet bumped to the new version, so this commit breaks the dependencies relationship by getting rid of the local replace.
2023-08-03 18:58:52 -06:00
Marten Seemann
18d3846d4f
set a net.Conn for tls.ClientHelloInfo.Conn used by GetCertificate ( #4014 )
2023-08-03 20:33:19 -04:00
Gaukas Wang
10eaa8489c
init: separate from quic-go tree
2023-08-03 18:18:56 -06:00
Gaukas Wang
4065c5b85e
Merge pull request #1 from gaukas/uquic-dev
...
new: uQUIC
2023-08-02 16:11:09 -06:00
Gaukas Wang
ea40752ca3
new: uquic
2023-08-02 15:38:16 -06:00
Gaukas Wang
a9a033da78
Merge branch 'quic-go:master' into uquic
2023-08-01 20:58:24 -06:00
Ameagari
1c47ebefc0
check transport parameters after 0-RTT resumption ( #3985 )
...
* check new transport parameters do not contain redueced limits
* redefine ValidForUpdate and add tests
* fix test assertion and update comment
2023-08-01 18:34:42 -07: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
Gaukas Wang
20e2a487b8
wip: implement InitialSpec type (1/n)
...
- TransportParameters are now set as a part of ClientHelloSpecs
- Removes transportparameters package and uses tls.TransportParameters
2023-07-30 20:01:07 -06:00
Gaukas Wang
9327068651
dep: qtls now points to utls in all cases
...
Since uTLS essentially is a fork of the latest crypto/tls, it would work for any Go version if no compilation error.
2023-07-30 15:20:49 -06:00
Gaukas Wang
8463016cbc
impl: cleaning up some debug flag/symbol
2023-07-29 23:53:01 -06:00
Gaukas Wang
fca46117e4
impl: uquic with utls
2023-07-29 23:45:16 -06:00
Gaukas Wang
251b3afe6e
impl: QUIC Header mimicry
2023-07-29 13:17:27 -06: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
Glonee
435444af7e
add a context to Connection.ReceiveMessage ( #3926 )
...
* add context to ReceiveMessage
* add newlines
---------
Co-authored-by: Marten Seemann <martenseemann@gmail.com>
2023-06-27 11:29:30 -07:00
Marten Seemann
21388c86bb
drop support for draft-29 ( #3903 )
2023-06-21 04:06:44 -07:00
Marten Seemann
28d5106a1c
wire: switch to crypto/rand for greased transport parameter generation ( #3904 )
2023-06-20 09:31:12 -07:00
Marten Seemann
e45c46041a
ackhandler: don't allocate a packet struct for non-ack-eliciting packets
2023-06-05 21:07:05 +03:00
Marten Seemann
da55dfaabd
ackhandler: unexport Packet
2023-06-05 21:06:58 +03:00
Marten Seemann
e1bcedc78c
ackhandler: use a frame handler interface for OnAcked / OnLost of all frame types ( #3888 )
2023-06-04 13:04:28 -07:00
Marten Seemann
bde283640b
ackhandler: be explicit about skipping packet numbers ( #3886 )
2023-06-04 12:45:43 -07:00
Marten Seemann
6619e17dd7
ackhandler: don't log / trace skipped packets when declaring them lost ( #3887 )
2023-06-04 12:29:40 -07:00
Marten Seemann
8f3a68b4eb
ackhandler: use a slice to keep track of sent packets ( #3841 )
...
* ackhandler: simplify deletion of old packets in packet history
* ackhandler: use a slice to keep track of sent packets
This is a vastly simpler data structure than the combination of map
and linked list used before. It avoids using a linked list (bad cache
locality) and a sync.Pool (for list elements), as well as having to do
hash table lookups.
In the future, this can be easily replaces with a ring buffer, avoiding
all allocations.
* ackhandler: don't store packets that were declared lost
2023-06-04 02:36:38 -07:00
Marten Seemann
6f07050269
ackhandler: apply logic from RFC 9000 to derive packet number length ( #3885 )
2023-06-04 02:17:57 -07:00
Marten Seemann
b27d114f07
pass the current timestamp to the pacer instead of calling time.Now() ( #3824 )
2023-06-03 00:26:30 -07:00
Marten Seemann
9d70bc24a5
simplify pacing logic by introducing a SendPacingLimited send mode
2023-06-02 18:35:02 +03:00
Marten Seemann
7d8db149b6
introduce a buffer pool for large buffers (20k)
2023-06-02 18:35:02 +03:00
Marten Seemann
7ea6dc991f
use the same ACK frame struct in the send path, remove ACK frame pool ( #3831 )
2023-06-02 08:34:27 -07:00
Marten Seemann
21544085e1
Merge pull request #3878 from quic-go/single-ack-receiving
...
use a single ACK frame in the receive path
2023-06-02 18:06:06 +03:00
Marten Seemann
a595d34557
use a single ACK frame in the receive path
2023-06-02 17:21:46 +03:00
Marten Seemann
0438eada95
use ackhandler.Frame directly, not as a pointer, remove its sync.Pool ( #3835 )
2023-06-02 04:56:18 -07:00
Marten Seemann
f8d24ef1e9
don't use closures for passing OnLost and OnAcked STREAM frame callbacks ( #3833 )
2023-06-02 04:14:04 -07:00