Gaukas Wang
4973374ea5
sync: quic-go 0.42.0
...
Signed-off-by: Gaukas Wang <i@gaukas.wang>
2024-04-23 22:34:55 -06:00
Gaukas Wang
7c77243b04
upstream: sync to 0.39.1
2023-10-26 22:47:22 -06:00
Marten Seemann
dc0369cad4
remove TLS post-handshake message reassembly logic ( #4073 )
...
Go 1.21.1 was released, which fixed the bug that made this workaround
necessary.
2023-09-06 21:27:03 -07:00
Gaukas Wang
856bc02b8f
Merge branch 'upstream' into sync-upstream
2023-08-28 14:12:03 -06:00
Marten Seemann
5c5db8cc59
reassemble post-handshake TLS messages before passing them to crypto/tls ( #4038 )
2023-08-18 17:16:57 -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
3d89e545d3
use the new crypto/tls QUIC Transport ( #3860 )
2023-07-01 11:15:00 -07: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
43bde14cf7
implement generic Min and Max functions
2022-08-10 14:59:05 +02:00
Marten Seemann
592fb9cad9
introduce a dedicated qerr.TransportError and qerr.ApplicationError
2021-05-01 09:38:48 +07:00
Marten Seemann
df06ee5e37
use the correct error code for crypto stream errors
2020-05-14 17:12:07 +07:00
Marten Seemann
6d61dccc2f
rename the constructors for the various qerr.Error flavors
2020-03-21 10:53:03 +07:00
Marten Seemann
8cde4ab638
refactor how session tickets are sent
...
Previously, RunHandshake() would send the session tickets. Now, the
session initiates the sending of the session ticket. This simplifies the
setup a bit, and it will make it possible to include the RTT estimate in
the session ticket without accessing the RTTStats concurrently.
2020-02-10 17:42:09 +07:00
Marten Seemann
949a65d490
Merge pull request #2235 from lucas-clemente/crypto-buffer-exceeded
...
use the CRYPTO_BUFFER_EXCEEDED error for crypto stream overflows
2019-11-24 21:06:21 +07:00
Marten Seemann
aefd4f83ea
use the correct error code when checking for encryption level boundaries
2019-11-23 12:05:18 +07:00
Marten Seemann
50e7d69865
use the CRYPTO_BUFFER_EXCEEDED error for crypto stream overflows
2019-11-23 11:48:11 +07:00
Marten Seemann
ba1bcf6e0c
use the STREAM frame buffer for receiving data
2019-09-04 16:58:44 +07:00
Marten Seemann
e7ed5e3c92
implement the crypto stream for post-handshake crypto messages
2019-02-06 22:51:44 +08:00
Marten Seemann
1864e301ef
move tracking of the final stream offset to the stream
2019-01-23 12:48:37 +07:00
Marten Seemann
387c28d707
when the encryption level changes, reject data on that crypto stream
...
There are two checks that need to be performed:
1. the crypto stream must not have any more data queued for reading
2. when receiving CRYPTO frames for that crypto stream afterwards, they
must not exceed the highest offset received on that stream
2018-10-26 17:09:52 +07:00
Marten Seemann
19e5feef57
move TLS message header parsing logic to the crypto stream
2018-10-26 16:40:29 +07:00
Marten Seemann
82508f1562
use tls-tris instead of mint
2018-10-26 16:18:49 +07:00
Marten Seemann
25847cfc30
handle the crypto stream separately in the packet packer
2018-10-01 11:25:57 -07:00
Marten Seemann
dbada7ad02
store stream data, not STREAM frames, in the streamFrameSorter
2018-08-26 08:59:48 +07:00
Marten Seemann
04147d86da
rename the cryptoStreamI interface to cryptoStream
2018-08-11 12:45:43 +07:00
Marten Seemann
d330fda94c
also use the onHasStreamData callback for the crypto stream
2018-01-09 17:17:16 +07:00
Marten Seemann
d9c107b034
introduce a queue of active streams in the streamFramer
...
The queue holds all streams that have data to send. When stream.Write or
stream.Close are called, a stream is added to this queue. It is removed
from the queue when all available (at that moment) data was sent.
This way, we don't need the round robin scheduling (which, for every
packet sent, asked every single open stream if it had data) any more.
2018-01-02 23:24:44 +07:00
Marten Seemann
d195085f65
don't queue the complete window update, but only the stream ID
2017-12-21 19:03:52 +07:00
Marten Seemann
fc8fafd15e
pass a callback containing the callbacks to the stream
2017-12-20 11:49:05 +07:00
Marten Seemann
d2e31c04ab
generate the streamI mock in the quic package
...
By doing so, we can mock private methods of the stream, so they cannot
be type-asserted by users of quic-go.
2017-12-20 10:42:07 +07:00
Marten Seemann
d49ad2d0cc
queue STREAM_BLOCKED frames from the stream, when popping a STREAM frame
2017-12-20 10:23:01 +07:00
Marten Seemann
e926b0805a
split the stream into a receive and a send stream
2017-12-20 10:05:02 +07:00
Marten Seemann
448928fc63
Merge pull request #1028 from lucas-clemente/fix-986
...
add the offset to the BLOCKED and STREAM_BLOCKED frames
2017-12-14 19:21:05 +07:00
Marten Seemann
00edfb7461
set the offset in BLOCKED and STREAM_BLOCKED frames
2017-12-14 19:04:17 +07:00
Marten Seemann
8c5741ae79
rename stream.Cancel to stream.CloseForShutdown
2017-12-14 17:30:44 +07:00
Marten Seemann
2d31440510
pass MAX_STREAM_DATA frames directly to the stream
2017-12-14 16:50:47 +07:00
Marten Seemann
823098d6e2
rename stream.AddStreamFrame to stream.HandleStreamFrame
2017-12-14 16:50:47 +07:00
Marten Seemann
73ab97aa95
simplify the stream by directly popping STREAM frames from it
2017-12-12 18:48:08 +07:00
Marten Seemann
cd5e7ae177
remove unneeded function from the crypto stream interface
2017-12-12 18:30:08 +07:00
Lucas Clemente
0febba87ba
move crypto handshake stuff to its own package
2016-04-14 19:50:04 +02:00
Lucas Clemente
284b86c02c
send proper kex value in example server
2016-04-12 15:29:26 +02:00
Lucas Clemente
95e1b87302
add certificate handling to example server
2016-04-12 12:18:01 +02:00
Lucas Clemente
4a44e4982e
move utils.go to its own package so that it's available for aeads
2016-04-10 20:23:15 +02:00
Lucas Clemente
9cb328ef8b
implement sample server REJ message in example server
2016-04-10 18:40:09 +02:00
Lucas Clemente
b2098f8f13
add some more crypto message tags
2016-04-10 16:34:05 +02:00
Lucas Clemente
120d255f38
implement writing of crypto messages
2016-04-10 16:33:55 +02:00
Lucas Clemente
4df279dd81
implement parsing of sample CHLO crypto stream
2016-04-08 19:28:46 +02:00