Marten Seemann
|
9790418eb7
|
only close the client once
|
2017-01-14 18:58:44 +07:00 |
|
Marten Seemann
|
ad7de3c99d
|
fix flaky client test
|
2017-01-14 18:58:44 +07:00 |
|
Marten Seemann
|
6ece13f9ab
|
add a better example client
|
2017-01-14 18:58:44 +07:00 |
|
Marten Seemann
|
40a6577dc3
|
implement a basic QUIC RoundTripper
|
2017-01-14 18:58:44 +07:00 |
|
Marten Seemann
|
c547ced3ce
|
correctly read the hostname from a http.Request
|
2017-01-14 18:58:44 +07:00 |
|
Marten Seemann
|
14135798c0
|
compose a http.Response in h2quic client
|
2017-01-14 18:58:44 +07:00 |
|
Marten Seemann
|
0401b12f8a
|
handle the header stream in the h2quic client
|
2017-01-14 18:58:43 +07:00 |
|
Marten Seemann
|
08c267431b
|
implement closing the quic client with an error
|
2017-01-14 18:58:43 +07:00 |
|
Marten Seemann
|
c42262c2b3
|
implement a h2quic client that can send H2 requests
|
2017-01-14 18:58:43 +07:00 |
|
Marten Seemann
|
b9f9c2e429
|
save correct hostname in quic Client
|
2017-01-14 18:58:43 +07:00 |
|
Marten Seemann
|
3458514744
|
add a method to open new Streams to the client
|
2017-01-14 18:58:43 +07:00 |
|
Marten Seemann
|
a8bbe66d5c
|
use a better mockStream in h2quic tests
|
2017-01-14 18:58:40 +07:00 |
|
Marten Seemann
|
a7afd72795
|
add a callback that is called when the crypto level changes
|
2017-01-14 18:54:18 +07:00 |
|
Marten Seemann
|
4130c3de32
|
send priority in H2 request headers
is required by Google’s QUIC implementation
|
2017-01-14 18:54:18 +07:00 |
|
Marten Seemann
|
dc05de3312
|
add a callback to client that is called after the version is negotiated
|
2017-01-14 18:54:18 +07:00 |
|
Marten Seemann
|
2377b3a111
|
fix detection when the QUIC version is negotiated
|
2017-01-14 18:54:18 +07:00 |
|
Marten Seemann
|
099e01f410
|
implement a basic request writer
|
2017-01-14 18:54:18 +07:00 |
|
Marten Seemann
|
16da08a440
|
add client functionality to the streamsMap
|
2017-01-14 18:54:15 +07:00 |
|
Marten Seemann
|
6cb48aad71
|
send correct version number in PublicHeader
|
2017-01-14 18:52:25 +07:00 |
|
Marten Seemann
|
a0bdf79b5b
|
create an aeadChanged channel in the client crypto setup
|
2017-01-14 18:52:25 +07:00 |
|
Marten Seemann
|
9fc9522539
|
implement a HandshakeComplete method in the client crypto setup
|
2017-01-14 18:52:24 +07:00 |
|
Marten Seemann
|
f72fbc57a9
|
send connection parameters in CHLO
|
2017-01-14 18:52:24 +07:00 |
|
Marten Seemann
|
1ad3a85f5c
|
fix flaky client tests
|
2017-01-14 18:52:24 +07:00 |
|
Marten Seemann
|
05c870ff6f
|
ignore delayed version negotiation packets
|
2017-01-14 18:52:24 +07:00 |
|
Marten Seemann
|
1a830dbdb7
|
implement basic version negotiation
|
2017-01-14 18:52:24 +07:00 |
|
Marten Seemann
|
4b112c325a
|
add tests for the Client
|
2017-01-14 18:52:23 +07:00 |
|
Marten Seemann
|
dde5ce465c
|
enforce presence of version list in SHLO
|
2017-01-14 18:52:23 +07:00 |
|
Marten Seemann
|
2589a6eff9
|
reject unencrypted SHLOs
|
2017-01-14 18:52:23 +07:00 |
|
Marten Seemann
|
e19416a43b
|
use server nonce in key derivation for initial encryption, if available
|
2017-01-14 18:52:23 +07:00 |
|
Marten Seemann
|
b8e11d6e67
|
improve tests for key derivation
|
2017-01-14 18:52:23 +07:00 |
|
Marten Seemann
|
fdd0fdf90d
|
send KEXS and AEAD value in full client hello
|
2017-01-14 18:52:22 +07:00 |
|
Marten Seemann
|
63f2faec85
|
send common certificate sets in the client hello
|
2017-01-14 18:52:22 +07:00 |
|
Marten Seemann
|
44303fcd4b
|
don’t panic if the certificate chain contains cached entries
|
2017-01-14 18:52:22 +07:00 |
|
Marten Seemann
|
a3dcac8239
|
implement certificate decompressing using common certificate sets
|
2017-01-14 18:52:22 +07:00 |
|
Marten Seemann
|
86da7dce81
|
send leaf certificate hash (XLCT) in client hello
|
2017-01-14 18:52:22 +07:00 |
|
Marten Seemann
|
11cb69d2ce
|
optimize reading of diversification nonces from the PublicHeader
|
2017-01-14 18:52:22 +07:00 |
|
Marten Seemann
|
4a88422d9f
|
add workaround for incorrect public flag values sent by Google servers
|
2017-01-14 18:52:21 +07:00 |
|
Marten Seemann
|
420f5abcd7
|
log when certificate or server proof verification fails
|
2017-01-14 18:52:21 +07:00 |
|
Marten Seemann
|
46678abfa6
|
error on malformed version negotiation packets
|
2017-01-14 18:52:21 +07:00 |
|
Marten Seemann
|
d37380b7a5
|
detect unsupported versions when parsing version negotiation packet
|
2017-01-14 18:52:21 +07:00 |
|
Marten Seemann
|
5b97f0550c
|
implement a function to find the highest supported version
|
2017-01-14 18:52:21 +07:00 |
|
Marten Seemann
|
1154d22218
|
parse version negotiation packets
|
2017-01-14 18:52:20 +07:00 |
|
Marten Seemann
|
7fa93c56af
|
implement a proper Close method for the Client
|
2017-01-14 18:52:20 +07:00 |
|
Marten Seemann
|
de168addd5
|
don’t panic after sending a ConnectionClose
|
2017-01-14 18:52:20 +07:00 |
|
Marten Seemann
|
2131e8fa6d
|
don’t send more than 3 CHLOs
makes sure that the server allows the client to make progress in the handshake
|
2017-01-14 18:52:20 +07:00 |
|
Marten Seemann
|
7f2e706908
|
increase CryptoParameterMaxLength
|
2017-01-14 18:52:20 +07:00 |
|
Marten Seemann
|
8161e1f4a1
|
simplify server proof verification function signature
|
2017-01-14 18:52:20 +07:00 |
|
Marten Seemann
|
6f5b2d308d
|
simplify certificate verification in certManager
|
2017-01-14 18:52:19 +07:00 |
|
Marten Seemann
|
865aed07d8
|
verify certificate chain when receiving it, return correct errors
|
2017-01-14 18:52:19 +07:00 |
|
Marten Seemann
|
41c66f9a60
|
save parsed certificate chain in certManager
|
2017-01-14 18:52:19 +07:00 |
|