Marten Seemann
178ac0dacb
keep increasing the packet number after version negotiation and retry
2018-12-22 22:15:35 +06:30
Marten Seemann
1abf9e1b37
start with packet number 0
2018-12-22 21:25:14 +06:30
Marten Seemann
f9218444a9
use a separate function to close the session after VN and retry
2018-12-21 23:47:10 +06:30
Marten Seemann
b166757fd9
Merge pull request #1680 from lucas-clemente/stream-deadlock
...
fix a deadlock when setting read and write deadlines
2018-12-21 15:43:07 +06:30
Marten Seemann
57fb06d3a7
Merge pull request #1682 from lucas-clemente/undecryptable-packets
...
only queue packets for later decryption if the opener is not yet available
2018-12-20 16:35:26 +06:30
Marten Seemann
74d8a2bd7d
ignore 0-RTT packets
2018-12-20 15:25:04 +06:30
Marten Seemann
d6c304610d
only queue packets for decryption if the opener is not yet available
2018-12-20 15:24:56 +06:30
Marten Seemann
a8ad6eea38
add integration tests for setting read and write deadlines
2018-12-20 14:43:25 +06:30
Marten Seemann
0be8e033ab
fix race conditions when setting read and write deadlines
2018-12-20 14:43:11 +06:30
Marten Seemann
605846cfd8
don't queue a packet for later decryption of decryption already failed
...
This was an optimization in gQUIC, which relied on trial decryption. In
IETF QUIC, we know with certainty which keys were used to encrypt a
packet, so if decryption fails once, we are certain it will never
succeed.
2018-12-19 15:56:01 +06:30
Marten Seemann
516b427d46
don't set a timer when the deadline is the zero value
2018-12-18 22:06:57 +06:30
Marten Seemann
072b84870c
don't fire a newly created timer
2018-12-18 22:06:57 +06:30
Marten Seemann
1045c7dc94
Merge pull request #1679 from lucas-clemente/fix-send-stream-deadlock
...
fix deadlock when sending stream data
2018-12-18 22:06:00 +06:30
Marten Seemann
01e37e005a
fix deadlock when closing and receiving MAX_STREAM_DATA frames
2018-12-18 20:55:31 +06:30
Marten Seemann
8761cee0ef
fix deadlock when sending stream data
2018-12-18 16:26:58 +06:30
Marten Seemann
dadb6d395c
Merge pull request #1676 from lucas-clemente/fix-1675
...
only copy stream data to write when popping a STREAM frame
2018-12-18 16:21:06 +06:30
Marten Seemann
21de8fde1e
Merge pull request #1678 from lucas-clemente/fix-double-framer-init
...
only initialize the framer once
2018-12-18 16:09:14 +06:30
Marten Seemann
d535340d0c
only initialize the framer once
2018-12-18 15:45:40 +06:30
Marten Seemann
466825eeb2
only copy stream data to write when popping a STREAM frame
...
stream.Write can be called with arbitrarily large slices of data. We
should avoid copying all that data up front since this can take a long
time. Instead, we can copy the data that is dequeued when a STREAM frame
is popped.
2018-12-18 14:35:48 +06:30
Marten Seemann
bd9baf928c
Merge pull request #1672 from lucas-clemente/header-encryption
...
implement header encryption
2018-12-16 18:32:50 +06:30
Marten Seemann
a638185f97
apply header encryption when packing and unpacking packets
2018-12-14 21:34:00 +06:30
Marten Seemann
5a68ba0a02
implement header encrytion and decryption for sealers and openers
2018-12-14 16:46:40 +06:30
Marten Seemann
67f923c736
return the Opener from the crypto setup
2018-12-14 16:46:40 +06:30
Marten Seemann
d3611a014c
implement initial header encryption key derivation
2018-12-14 16:46:40 +06:30
Marten Seemann
03489f56a7
handle the packet length before parsing the extended header
2018-12-14 16:46:40 +06:30
Marten Seemann
aaea375fb6
move parsing of the extended header to the unpacker
2018-12-14 16:46:40 +06:30
Marten Seemann
c912860a94
don't explicitely pass the header binary to the unpacker
2018-12-14 16:46:40 +06:30
Marten Seemann
ce6b9f2f1d
save the decoded packet number on the unpacked packet
2018-12-14 16:46:40 +06:30
Marten Seemann
a8e5309cd1
move packet number decoding to the unpacker
2018-12-14 16:46:40 +06:30
Marten Seemann
c06a0ca037
rename InferPacketNumber to DecodePacketNumber
...
That's how it's called in the draft.
2018-12-14 16:46:40 +06:30
Marten Seemann
a009217ee4
fix logging of packet size
2018-12-14 16:46:40 +06:30
Marten Seemann
df22a9e278
Merge pull request #1667 from lucas-clemente/refactor-initial-aead
...
refactor initialization of the initial AEAD
2018-12-14 16:41:45 +06:30
Marten Seemann
200a58ce48
Merge pull request #1669 from lucas-clemente/fix-examples
...
use the self-signed certificate for the example server and client
2018-12-14 16:41:07 +06:30
Marten Seemann
d1ac7236b4
Merge pull request #1670 from lucas-clemente/disable-go1.10-race-detector
...
only run integration tests with race detector on Go 1.11 on CircleCI
2018-12-14 16:37:24 +06:30
Marten Seemann
598a796e24
only run integration tests with race detector on Go 1.11 on CircleCI
2018-12-13 18:07:32 +06:30
Marten Seemann
f6357dc858
use the self-signed certificate for the example server and client
2018-12-13 14:42:25 +06:30
Marten Seemann
a80ca960e5
refactor initialization of the initial AEAD
2018-12-13 13:51:05 +06:30
Marten Seemann
d86e989333
Merge pull request #1666 from lucas-clemente/self-signed-cert
...
use a self-signed certificate for integration tests
2018-12-11 21:06:52 +06:30
Marten Seemann
4abcce6408
use a self-signed certificate for integration tests
2018-12-11 14:24:12 +06:30
Marten Seemann
7b880f259f
remove unused testdata.GetCertificate
2018-12-08 12:20:29 +06:30
Marten Seemann
ff1e7c4754
Merge pull request #1656 from lucas-clemente/require-tlsconf-listen
...
error when Listen is called without a tls.Config or certificates
2018-11-29 16:53:33 +07:00
Marten Seemann
008615284e
error when Listen is called without a tls.Config or certificates
2018-11-29 16:01:03 +07:00
Marten Seemann
af0d14c8d1
Merge pull request #1650 from lucas-clemente/fix-1619
...
pad small packets
2018-11-29 11:52:34 +07:00
Marten Seemann
314056f6dd
increase mininum stateless reset size
2018-11-29 11:22:20 +07:00
Marten Seemann
cf957bb3d0
pad small packets, such that len(packet number) + len(payload) >= 4
2018-11-29 11:22:20 +07:00
Marten Seemann
d981364ec6
Merge pull request #1649 from lucas-clemente/handshake-retransmissions
...
simplify packing of handshake retransmissions
2018-11-29 11:21:49 +07:00
Marten Seemann
46487e5267
remove unused constant NonForwardSecurePacketSizeReduction
2018-11-29 09:39:43 +07:00
Marten Seemann
05434fecbc
always use 4 byte packet numbers for long header packets
...
When retransmitting a long header packet, we never have to split CRYPTO
frames, since the header is guaranteed to have the same size.
2018-11-29 09:39:43 +07:00
Marten Seemann
723e18c78c
don't treat handshake retransmissions separately
2018-11-29 09:39:43 +07:00
Marten Seemann
1b3e4e9595
Merge pull request #1647 from lucas-clemente/remove-packet-packer-cansenddata
...
remove unneeded check if stream data can be sent in packet packer
2018-11-28 18:10:04 +07:00