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