Marten Seemann
c9bfde9ac0
fix handling of multiple handshake messages in the case of errors
...
When receiving a handshake message after another handshake messages that
doesn't cause any action from the TLS stack (i.e. Certificate and
CertificateVerify), the handshake would run into a deadlock if the first
of these handshake messages caused an error in the TLS stack.
We need to make sure that we wait until a message has been fully
processed before proceeding with the handshake.
2020-09-13 20:13:57 +07:00
Marten Seemann
8bf5c782e3
Merge pull request #2746 from lucas-clemente/handshake-fuzz-tls-config
...
use more tls.Config options in the handshake fuzzer
2020-09-12 12:17:37 +07:00
Marten Seemann
382c923a67
use more tls.Config options in the handshake fuzzer
2020-09-12 11:55:09 +07:00
Marten Seemann
adadc06181
Merge pull request #2743 from lucas-clemente/handshake-fuzz-session-resumption
...
run two handshakes in the handshake fuzzer
2020-09-12 11:54:25 +07:00
Marten Seemann
88ff59a1b4
run two handshakes in the handshake fuzzer
...
This allows us to fuzz both session resuption and 0-RTT.
2020-09-11 17:04:21 +07:00
Marten Seemann
9a2062144e
Merge pull request #2742 from lucas-clemente/handshake-fuzz-post-handshake-messages
...
send post-handshake message in the handshake fuzzer
2020-09-11 17:01:46 +07:00
Marten Seemann
7f2792506c
Merge pull request #2773 from lucas-clemente/fix-qtls-alert-on-invalid-tls-version
...
close the connection when the client sends a TLS version < TLS 1.3
2020-09-11 12:28:19 +07:00
Marten Seemann
a603c0ad1a
close the connection when the client sends a TLS version < TLS 1.3
2020-09-11 12:11:21 +07:00
Marten Seemann
021b355b47
Merge pull request #2754 from lucas-clemente/skip-packet-number-on-pto
...
skip a packet number when sending a 1-RTT PTO packet
2020-09-11 12:09:14 +07:00
Marten Seemann
8ea663d04a
skip a packet number when sending a 1-RTT PTO packet
2020-09-11 11:16:48 +07:00
Marten Seemann
9605eddc23
Merge pull request #2753 from lucas-clemente/simplify-packet-number-skipping
...
save dummy packets in the packet history when skipping packet numbers
2020-09-11 11:16:09 +07:00
Marten Seemann
12c9427f43
save dummy packets in the packet history when skipping packet numbers
2020-09-11 11:01:30 +07:00
Marten Seemann
0044a69d73
also pass non-ack-eliciting packets to packet history (but don't save)
2020-09-11 11:01:29 +07:00
Marten Seemann
74f2610349
Merge pull request #2750 from lucas-clemente/rtt-measurement-for-lost-packets
...
delete unacknowledged packets from the packet history after 3 PTOs
2020-09-11 10:58:31 +07:00
Marten Seemann
8f4257a883
delete unacknowledged packets from the packet history after 3 PTOs
2020-09-10 18:51:05 +07:00
klzgrad
c81eeb8bb8
add support for the HTTP CONNECT method ( #2761 )
2020-09-10 18:05:55 +07:00
Marten Seemann
c5a132f158
Merge pull request #2762 from lucas-clemente/drop-old-keys-after-confirmed-key-update
...
don't drop keys for key phase N before receiving a N+1-protected packet
2020-09-10 11:35:39 +07:00
Marten Seemann
854940cecc
don't drop keys for key phase N before receiving a N+1-protected packet
2020-09-10 11:11:59 +07:00
Marten Seemann
8c348c2d59
Merge pull request #2756 from lucas-clemente/handle-aead-errors
...
close session on errors unpacking errors other than decryption errors
2020-09-10 10:24:01 +07:00
Marten Seemann
67decc5df9
Merge pull request #2765 from lucas-clemente/log-key-retirements
...
log when an old 1-RTT key is retired
2020-09-10 10:23:02 +07:00
Marten Seemann
a528c4c4da
close session on errors unpacking errors other than decryption errors
2020-09-09 23:59:24 +07:00
Marten Seemann
ca0f0a8ac2
Merge pull request #2757 from lucas-clemente/key-phase-error-on-successful-decryption
...
only return an invalid first key phase error for decryptable packets
2020-09-09 23:58:59 +07:00
Marten Seemann
074f5a202e
log when old 1-RTT keys are dropped
2020-09-09 23:53:47 +07:00
Marten Seemann
dbaacd49bd
add a logging event for dropping 1-RTT keys
2020-09-09 23:53:47 +07:00
Marten Seemann
9e1d65f4c9
Merge pull request #2764 from lucas-clemente/fix-local-key-update-logging
...
fix logging of locally initiated key updates
2020-09-09 23:52:52 +07:00
Marten Seemann
8e9ca5a186
Merge pull request #2744 from lucas-clemente/improve-timeout-test
...
test that both endpoints time out in the timeout integration test
2020-09-09 23:51:05 +07:00
Marten Seemann
a44c4f517f
Merge pull request #2747 from lucas-clemente/simplify-sent-packet-history
...
refactor RTT measurements to simplify the sentPacketHistory
2020-09-09 23:50:26 +07:00
Marten Seemann
ade2882ef4
fix logging of locally initiated key updates
2020-09-09 23:22:10 +07:00
Marten Seemann
d89a446243
Merge pull request #2752 from lucas-clemente/fix-0rtt-packets-dropping
...
fix dropping of 0-RTT packets
2020-09-09 23:20:03 +07:00
Marten Seemann
6e1c756ec2
Merge pull request #2763 from lucas-clemente/always-qlog-1rtt-key-generation
...
always qlog the generation of 1-RTT key updates
2020-09-09 23:17:56 +07:00
Marten Seemann
391ebbe2db
Merge pull request #2766 from lucas-clemente/move-logging-packet-header
...
move the PacketHeader struct from logging to qlog package
2020-09-09 23:17:15 +07:00
Marten Seemann
86124bbd32
Merge pull request #2751 from lucas-clemente/encryption-level-uint8
...
use a uint8 for the EncryptionLevel
2020-09-09 23:14:59 +07:00
Marten Seemann
e0824e3163
move the logging mock implementations to a separate package
2020-09-09 15:15:49 +07:00
Marten Seemann
bccf857b5d
always qlog the generation of 1-RTT key updates
2020-09-09 13:37:30 +07:00
Marten Seemann
704bd78445
move the PacketHeader struct from logging to qlog package
2020-09-09 13:17:59 +07:00
Marten Seemann
34c325919c
only return an invalid first key phase error for decryptable packets
2020-09-07 21:12:54 +07:00
Marten Seemann
ad40c9cc83
fix dropping of 0-RTT packets
2020-09-07 16:00:16 +07:00
Marten Seemann
dc3d5618fc
use a uint8 for the EncryptionLevel
2020-09-07 14:36:18 +07:00
Marten Seemann
c7af1dc045
refactor RTT measurements to simplify the sentPacketHistory
2020-09-06 14:16:11 +07:00
Marten Seemann
9430dbfbfb
send post-handshake message in the handshake fuzzer
2020-09-06 11:29:32 +07:00
Marten Seemann
980c840359
test that both endpoints time out in the timeout integration test
2020-09-05 18:10:44 +07:00
Marten Seemann
bed802aee5
Merge pull request #2739 from lucas-clemente/fix-handshake-fuzzer-enclevel
...
make sure to only pass handshake messages that keys are available for
2020-09-04 21:28:12 +07:00
Marten Seemann
561ac68d33
Merge pull request #2740 from lucas-clemente/fix-handshake-fuzz-double-close
...
only close the handshake fuzz runner once
2020-09-04 21:27:55 +07:00
Marten Seemann
8251b3614f
only close the handshake fuzz runner once
2020-09-04 11:40:49 +07:00
Marten Seemann
3f40b2f19a
make sure to only pass handshake messages that keys are available for
2020-09-04 10:46:05 +07:00
Marten Seemann
cd78ea9020
Merge pull request #2738 from lucas-clemente/fix-handshake-fuzzer
...
generate a self-signed certificate for the handshake fuzzer
2020-09-03 11:25:57 +07:00
Marten Seemann
b3c28ef2ea
generate a self-signed certificate for the handshake fuzzer
2020-09-03 10:52:52 +07:00
Marten Seemann
eaf5f47308
Merge pull request #2734 from lucas-clemente/err-deadline-exceeded
...
use the os.ErrDeadlineExceeded for stream deadline errors on Go 1.15
2020-09-03 09:08:35 +07:00
Marten Seemann
3f7fb9c6c8
Merge pull request #2732 from lucas-clemente/github-actions-unit-tests
...
use GitHub Actions to run unit tests
2020-09-03 09:06:01 +07:00
Marten Seemann
576ea41ef9
Merge pull request #2733 from lucas-clemente/fuzz-handshake
...
add a basic fuzzer for the handshake
2020-09-02 10:41:38 +07:00