Commit Graph

1891 Commits

Author SHA1 Message Date
Marten Seemann
11a31cfdac fix version dependent Public Header parsing in the proxy 2017-09-10 23:26:14 +02:00
Marten Seemann
2c4a17e406 Merge pull request #810 from lucas-clemente/tls
implement a very basic TLS 1.3 handshake
2017-09-08 20:47:58 +03:00
Marten Seemann
866f209834 move all mint-related methods into one interface 2017-09-08 12:04:45 +03:00
Marten Seemann
91b7404182 implement a very basic TLS 1.3 handshake 2017-09-08 12:04:45 +03:00
Marten Seemann
82db032a05 implement the TLS key derivation 2017-09-08 12:04:45 +03:00
Marten Seemann
8bcabe0ba9 correctly pack packets with sealers with different overheads 2017-09-08 12:04:45 +03:00
Marten Seemann
7cbef3cb1b implement the Overhead method for the AEADs 2017-09-08 12:04:45 +03:00
Marten Seemann
6931edaf6b implement the AES-GCM AEAD needed for the IETF draft 2017-09-08 12:04:38 +03:00
Marten Seemann
8df2cb3b1d rename the current key derivation function
TLS will use a completely different key derivation function.
2017-09-07 20:08:24 +03:00
Marten Seemann
fd780e3eab move the nonce generation to the AEAD implementations
The AES AEAD used by IETF QUIC uses a different nonce format.
2017-09-07 20:08:24 +03:00
Marten Seemann
23f3432b9d select the right null AEAD algorithm depending on the version 2017-09-07 20:07:54 +03:00
Marten Seemann
15e9e3658a implement the FNV64a nullAEAD
It is not used yet.
2017-09-07 18:16:20 +03:00
Marten Seemann
03f16814ec Merge pull request #811 from lucas-clemente/remove-orig-file
remove accidentally committed merge backup file
2017-09-05 23:36:34 +02:00
Marten Seemann
ebf0b9a379 Merge pull request #794 from lucas-clemente/fix-558
make the integration tests race free
2017-09-05 21:18:18 +02:00
Marten Seemann
17a0541edb use the quic.Config to set the QUIC version in the Chrome tests 2017-09-05 19:30:14 +02:00
Marten Seemann
5751b599ee use atomics in the Chrome test HTTP handlers
This fixes a race condition in these tests.
2017-09-05 19:30:14 +02:00
Marten Seemann
7d446253c4 use the quic.Config to set the QUIC version in client integration tests
This fixes a race condition in that test.
2017-09-05 19:30:14 +02:00
Marten Seemann
682d8b1c7a fix race condition in the handshake RTT tests 2017-09-05 19:30:14 +02:00
Marten Seemann
e513cb7ad2 fix multiple race conditions in the proxy tests 2017-09-05 19:30:14 +02:00
Marten Seemann
508586ea7e fix a race condition in server integration test setup 2017-09-05 19:30:14 +02:00
Marten Seemann
bf64c86916 remove accidentally committed merge backup file 2017-09-05 19:27:46 +02:00
Marten Seemann
03de09b236 Merge pull request #809 from lucas-clemente/fix-808
fix go routine leaks in client tests
2017-08-31 18:32:22 +07:00
Marten Seemann
500eb0d50d Merge pull request #804 from lucas-clemente/delete-empty-test-files
delete empty files in the integration tests folder
2017-08-31 18:16:57 +07:00
Marten Seemann
fa2ecefa31 fix go routine leaks in client tests 2017-08-31 17:55:48 +07:00
Marten Seemann
f5abd5d858 delete empty files in the integration tests folder
These empty files were necessary in Go 1.8, but are obsolete now.
2017-08-31 17:18:40 +07:00
Marten Seemann
e7d1d225dc Merge pull request #807 from lucas-clemente/type-aliases
use type aliases to clean up the API
2017-08-31 17:06:46 +07:00
Marten Seemann
60f5c660c6 export flow control window sizes as uint64 in quic.Config 2017-08-31 16:37:03 +07:00
Marten Seemann
e05f5ce594 remove obsolete documentation for the quic.Config 2017-08-31 16:37:03 +07:00
Marten Seemann
3c4a10a5e4 use type aliases to export types declared in the protocols package
Type aliases were introduced with Go 1.9, so we must drop support for
older Go versions now.
2017-08-31 16:36:52 +07:00
Marten Seemann
95a971f322 make the flow control package internal 2017-08-30 00:27:44 +07:00
Marten Seemann
f1ada87dcf make the protocol package internal 2017-08-30 00:19:44 +07:00
Marten Seemann
524ecb5827 move the Public Reset to the wire package 2017-08-29 23:58:27 +07:00
Marten Seemann
ed522ebbce make wire an internal package 2017-08-29 23:51:56 +07:00
Marten Seemann
1794636220 more the PublicHeader to the wire package 2017-08-29 23:45:38 +07:00
Marten Seemann
88afad8722 rename package frames to wire 2017-08-29 23:27:15 +07:00
Marten Seemann
5281d5b65d Merge pull request #792 from lucas-clemente/fix-441
add a quic.Config option to configure the idle timeout
2017-08-29 18:48:56 +07:00
Marten Seemann
24119d5a25 Merge pull request #801 from lucas-clemente/fix-800
make sure that the SHLO was sent before returning Listener.Accept
2017-08-29 18:48:23 +07:00
Marten Seemann
5152019554 don't use an idle timeout before the handshake has completed
This simplifies the timeout logic a bit. Before the handshake has
completed, the only timeout is the handshake timeout. After the
handshake has completed, the only timeout is the idle connection timeout.
2017-08-29 15:47:56 +07:00
Marten Seemann
293f26d292 Merge pull request #806 from lucas-clemente/listener-debug-message
print a debug message when the server is started
2017-08-29 15:11:46 +07:00
Marten Seemann
7ec09d2488 print a debug message when the server is started 2017-08-29 11:55:28 +07:00
Marten Seemann
bb670be93a make sure that the SHLO was sent before returning Listener.Accept
This fixes a race condition: In the server crypto setup, we would send
protocol.EncryptionForwardSecure on the aeadChan as soon as the SHLO was
composed, but before it was written to the crypto stream. This lead to
Listener.Accept returning the session already. If the server was ready
to write a lot of data then, this data could be sent before the crypto
setup would write on the crypto stream, therefore sending a lot of
undecryptable packets to the client, which would eventually lead to a
connection error (too many undecryptable packets).
2017-08-29 10:48:10 +07:00
Marten Seemann
71e82677e1 add a quic.Config option to configure the idle timeout 2017-08-28 17:58:39 +07:00
Marten Seemann
e398d5409a set the idle timeout during the handshake to half the handshake timeout 2017-08-28 17:58:39 +07:00
Marten Seemann
a6719bf417 Merge pull request #762 from lucas-clemente/improve-travis-output
print commands on Travis
2017-08-28 17:52:14 +07:00
Marten Seemann
3414cf8b49 Merge pull request #778 from lucas-clemente/reduce-travis-logging
disable verbose logging for integration tests on Travis
2017-08-28 17:50:47 +07:00
Marten Seemann
60be7e1e81 Merge pull request #798 from lucas-clemente/go1.9
use Go 1.9 on CIs
2017-08-28 15:32:02 +07:00
Marten Seemann
8ff8637bb8 don't print Chrome output 2017-08-28 15:28:07 +07:00
Marten Seemann
dc20c37f24 Merge pull request #799 from lucas-clemente/privatize-peek-conn-id
make PeekConnectionID a private method
2017-08-28 15:09:45 +07:00
Marten Seemann
f4aa2d5b0d improve logging on CIs
* make the logging on Travis less verbose
* log every test on AppVeyor
2017-08-28 10:07:10 +07:00
Marten Seemann
b699a92bd5 print commands on Travis 2017-08-27 18:09:01 +07:00