Commit Graph

1204 Commits

Author SHA1 Message Date
Marten Seemann
f6cef67c3d create interface for crypto.CertManager 2017-01-14 18:52:16 +07:00
Marten Seemann
992678b9d7 save last sent CHLO in client CryptoSetup 2017-01-14 18:52:16 +07:00
Marten Seemann
731dd87872 also keys for the client in AESGCM key derivation 2017-01-14 18:52:15 +07:00
Marten Seemann
4b67aefb83 generate a client nonce once, when reading a server config multiple times 2017-01-14 18:52:15 +07:00
Marten Seemann
a2996f6343 improve logging in client 2017-01-14 18:52:15 +07:00
Marten Seemann
f1810ae82d generate a client nonce after receiving a server config 2017-01-14 18:52:15 +07:00
Marten Seemann
39e7591756 include source address token, server config id and server nonce in CHLO 2017-01-14 18:52:15 +07:00
Marten Seemann
0b8c883b71 read certificate chain from SHLO 2017-01-14 18:52:14 +07:00
Marten Seemann
c5f88e01f5 implement a CertManager for the certificate chain sent by the server 2017-01-14 18:52:14 +07:00
Marten Seemann
fece562b22 compose PublicHeader depending on perspective set in packetPacker 2017-01-14 18:52:12 +07:00
Marten Seemann
b58bc8cffd parse server config sent in the SHLO in client CryptoSetup 2017-01-14 18:51:19 +07:00
Marten Seemann
dbee83b8de read source address token and server nonce from SHLO 2017-01-14 18:51:19 +07:00
Marten Seemann
5b72a535d0 improve CHLO generation in client CryptoSetup 2017-01-14 18:51:19 +07:00
Marten Seemann
3b89e74cc1 calculate shared secret when receiving a server config 2017-01-14 18:51:18 +07:00
Marten Seemann
f44612cc2f pass received diversification nonces to the CryptoSetup 2017-01-14 18:51:16 +07:00
Marten Seemann
5e0ded9850 don’t reset remoteAddr for every packet as a client 2017-01-14 18:47:42 +07:00
Marten Seemann
a89a7de4c4 save raw server config sent by the server 2017-01-14 18:45:17 +07:00
Marten Seemann
c03f15dfdd add a method to set the diversification nonce in the CryptoSetup 2017-01-14 18:45:17 +07:00
Marten Seemann
060d02cb4f implement certificate decompression, without cached and common certs 2017-01-14 18:45:17 +07:00
Marten Seemann
674287a8f4 add a method to generate a client nonce (NONC) 2017-01-14 18:45:17 +07:00
Marten Seemann
1031ad5288 read SHLOs in cryptoSetupCleint 2017-01-14 18:45:16 +07:00
Marten Seemann
17c5147aa4 add version to inchoate CHLO 2017-01-14 18:45:16 +07:00
Marten Seemann
214a37ac39 add tests for inchoate CHLO 2017-01-14 18:45:16 +07:00
Marten Seemann
651a0de9d3 implement parsing of server configs 2017-01-14 18:45:16 +07:00
Marten Seemann
756a421065 calculate PublicHeader length for packets with VersionFlag and ResetFlag 2017-01-14 18:45:16 +07:00
Marten Seemann
6c0a885a0e pass perspective to packetPacker 2017-01-14 18:45:16 +07:00
Marten Seemann
1cea8833c8 read the diversification nonce sent by the server in PublicHeader 2017-01-14 18:45:15 +07:00
Marten Seemann
56a287ab9c correcty read PublicHeader of PublicReset packets 2017-01-14 18:45:15 +07:00
Marten Seemann
afa71d52f1 create Client in main package 2017-01-14 18:45:15 +07:00
Marten Seemann
6189df2d37 move client to subdirectory in example package 2017-01-14 18:45:15 +07:00
Marten Seemann
23435253db create CryptoSetup for the client, use it in the Session 2017-01-14 18:45:15 +07:00
Marten Seemann
f662ce0705 log padding length of Handshake messages 2017-01-14 18:45:14 +07:00
Marten Seemann
316350ce24 send inchoate CHLO 2017-01-14 18:45:14 +07:00
Marten Seemann
2b7c67d297 create handshake.CryptoSetup interface 2017-01-14 18:45:14 +07:00
Marten Seemann
7e4c695faf send (empty) QUIC packet to server 2017-01-14 18:45:14 +07:00
Marten Seemann
db8eb257c6 check for PacketNumberLen when writing the PublicHeader packet number 2017-01-14 18:45:14 +07:00
Marten Seemann
cc2d966d84 write PublicHeaders for packets sent as a client
fixes #346
2017-01-14 18:45:13 +07:00
Marten Seemann
ce330b94b5 update to Go 1.8rc1 for Travis 2017-01-14 18:44:56 +07:00
Marten Seemann
cc153463b5 fix flaky h2quic server test
fixes #396
2017-01-14 18:38:04 +07:00
Marten Seemann
67657a37bf only change remote address after authenticating a packet
fixes #395
2017-01-14 18:15:50 +07:00
Marten Seemann
1e78104f83 trigger window updates before queueing frames for retransmission
ref #394
2017-01-14 15:22:53 +07:00
Marten Seemann
71227437ee only retransmit WindowUpdates if no higher WindowUpdate has been sent
fixes #394
2017-01-14 15:16:12 +07:00
Marten Seemann
db22dae089 simplify the selection of frames for retransmission
ref #394
2017-01-14 13:59:57 +07:00
Marten Seemann
853a6d168e Merge pull request #390 from lucas-clemente/fix-384
reset streams that the request body is not read from
2017-01-11 09:19:21 +07:00
Marten Seemann
c6c1233e98 simplify the packPacket method in the packetPacker 2017-01-11 00:13:52 +07:00
Marten Seemann
54ec7f2fc6 fix flaky server test on AppVeyor
fixes #393
2017-01-10 17:14:05 +07:00
Marten Seemann
daf6ce094f Merge pull request #388 from lucas-clemente/wip-ackalgorithm
implement a better ACK algorithm
2017-01-10 12:15:42 +07:00
Marten Seemann
64bc80339e reset streams that the request body is not read from
fixes #384
2017-01-09 23:47:01 +07:00
Marten Seemann
896f4e138b increase the ACK send delay to the value Chromium is using 2017-01-09 18:45:43 +07:00
Marten Seemann
edf6ee3dfc implement a sophisticated ack algorithm
fixes #354
2017-01-09 15:01:44 +07:00