Commit Graph

1642 Commits

Author SHA1 Message Date
Marten Seemann
f2ada4eef1 add tests using the source address validation 2017-05-27 18:53:28 +08:00
Marten Seemann
6b3165928f add tests measuring how many RTTs a handshake takes 2017-05-27 13:28:44 +08:00
Marten Seemann
15a51c06c3 Merge pull request #627 from lucas-clemente/fix-303
add a quic.Config option to verify source address tokens
2017-05-27 13:23:50 +08:00
Marten Seemann
f1985b98ff add a Changelog entry for the STK validation quic.Config option 2017-05-27 11:58:57 +08:00
Marten Seemann
6144ebed21 don’t panic if the STK doesn’t contain any data 2017-05-26 23:26:42 +08:00
Marten Seemann
ac21fc3349 Merge pull request #619 from lucas-clemente/fix-444
improve logging
2017-05-26 17:53:03 +08:00
Marten Seemann
0dbbb8d1b3 use the standard library log package for logging 2017-05-25 20:31:45 +08:00
Marten Seemann
ef4699adef use ASN1 to marshal source address tokens 2017-05-25 11:49:24 +08:00
Marten Seemann
afc9b11715 use a prefix to distinguish IPs and net.Addrs in source address tokens 2017-05-25 11:49:24 +08:00
Marten Seemann
87df63dd5f add a quic.Config option to verify source address tokes 2017-05-25 11:49:19 +08:00
Marten Seemann
eb72b494b2 generate valid tokens for remote addresses that are not UDP addresses 2017-05-20 23:27:40 +08:00
Marten Seemann
8e01921495 move comparison of the source address in the STK to the STKGenerator 2017-05-20 23:27:40 +08:00
Marten Seemann
9562df5838 move the STK generation from the ServerConfig to a separate struct 2017-05-20 23:27:40 +08:00
Marten Seemann
6cc6d49a10 save the STK expiry time as a time.Duration 2017-05-20 23:27:40 +08:00
Marten Seemann
81985f44bd move the STK expiration check to the cryptoSetup 2017-05-20 23:27:39 +08:00
Marten Seemann
e68e2d287a pass remote address to cryptoSetupServer 2017-05-20 23:27:38 +08:00
Marten Seemann
8489c94f4d Merge pull request #622 from lucas-clemente/travis-goversion
always use current minor Go version for Travis
2017-05-16 16:18:08 +08:00
Marten Seemann
f16423635a Merge pull request #621 from lucas-clemente/fix-605
remove unsafe from the session tests for the crypto setup
2017-05-16 16:15:55 +08:00
Marten Seemann
7e256e0ebe log timestamps 2017-05-16 12:19:36 +08:00
Marten Seemann
fa518c244e always use current minor Go version for Travis 2017-05-16 11:58:50 +08:00
Marten Seemann
996fad14f8 remove unsafe from the session tests for the crypto setup 2017-05-16 10:55:55 +08:00
Marten Seemann
82ce3b221b Merge pull request #613 from lucas-clemente/new-api
implement a new API
2017-05-16 10:26:54 +08:00
Marten Seemann
6623abf3d1 return handshake errors in h2quic Client.Do 2017-05-16 00:56:10 +08:00
Marten Seemann
74f607ce21 implement DialAddrNonFWSecure for the client 2017-05-16 00:56:09 +08:00
Marten Seemann
33a9b5aae4 add more tests for Dial in the h2quic client 2017-05-16 00:56:09 +08:00
Marten Seemann
9fad63ff50 improve client tests
Use a mock newClientSession. That way, it’s a lot easier to test dialing
new connections.
2017-05-16 00:56:09 +08:00
Marten Seemann
8ba1bd817f move client session tests to separate place 2017-05-16 00:56:09 +08:00
Marten Seemann
889d3b38f8 remove the cryptoChangeCallback from the server 2017-05-16 00:56:09 +08:00
Marten Seemann
2bfa7e59cb implement DialNonFWSecure for the client 2017-05-16 00:56:09 +08:00
Marten Seemann
e6aeb143a7 simplify the blocking logic for the non-forward-secure session 2017-05-16 00:56:08 +08:00
Marten Seemann
cb8bea73c7 implement a non-forward-secure session 2017-05-16 00:56:08 +08:00
Marten Seemann
fb77a79b2b close the response chan on header stream erros in h2quic client 2017-05-16 00:56:08 +08:00
Marten Seemann
b7d7a8447d remove the ConnState and the ConnStateCallback from the quic.Config 2017-05-16 00:56:08 +08:00
Marten Seemann
612323985b remove the ConnStateCallback from the client
Dial and DialAddr return once the connection is forward secure. There is
currently no option to get the session earlier, this will be added later.
2017-05-16 00:56:02 +08:00
Marten Seemann
30a0211243 implement a Listener.Accept() method 2017-05-15 20:37:29 +08:00
Marten Seemann
0bd3b61e6a Merge pull request #616 from lucas-clemente/fix-614
properly handle errors that occur while handling packets in the session
2017-05-15 20:21:38 +08:00
Marten Seemann
cf90f4d00d Merge pull request #617 from lucas-clemente/fix-615
return an error when calling OpenStream after the session was closed
2017-05-15 19:55:51 +08:00
Marten Seemann
ba16a80864 return an error when calling OpenStream after the session was closed
fixes #615
2017-05-14 13:56:38 +08:00
Marten Seemann
4fd410700d properly handle errors that occur while handling packets in the session
fixes #614
2017-05-14 10:05:15 +08:00
Marten Seemann
222ffa2f48 Merge pull request #606 from lucas-clemente/truncate-connid
add a quic.Config option to request connection ID truncation
2017-05-13 17:39:12 +08:00
Marten Seemann
9fbec90ced enable connection ID truncation for the h2quic client 2017-05-13 17:19:57 +08:00
Marten Seemann
7a18b870e8 add a quic.Config option to ask the server to truncate the connection ID 2017-05-13 17:19:09 +08:00
Marten Seemann
650af86c70 pass the quic.Config to the session 2017-05-13 17:08:15 +08:00
Lucas Clemente
22a9a8221c Merge pull request #612 from Eichhoernchen/master
Added parsing of PUBS tag and filtering according to KEXS
2017-05-12 15:32:08 +02:00
Jan Rüth
4983119be5 added test to verify C255 KEXS's PUBs must not be the first thing in the public values 2017-05-12 15:02:38 +02:00
Jan Rüth
7465ee128d removed parenthesis and added more detailed error description 2017-05-12 14:14:27 +02:00
Jan Rüth
6a0b2d04d6 Added tests to check if PUBS is invalid and made sure a valid PUBS is requested by default 2017-05-11 21:15:52 +02:00
Jan Rüth
f558bdebed Added parsing of PUBS tag and filtering according to KEXS
This now allows quic-go to contact servers announcing multiple KEXS methods, e.g. like Akamai.
2017-05-11 19:54:49 +02:00
Marten Seemann
6628994883 Merge pull request #610 from lucas-clemente/fix-609
fix a race condition in the client crypto setup
2017-05-11 23:25:51 +08:00
Marten Seemann
adc4ef464a simplify the CryptoSetup.SetDiversificationNonce interface
Pass the diversification nonce via a channel instead of setting it
directly. That way there is no need to protect the diversificationNonce
member by a mutex. Also prevents a possible deadlock that occurred when
SetDiversificationNonce was called before maybeUpgradeCrypto returned.
2017-05-11 21:56:41 +08:00