Commit Graph

1228 Commits

Author SHA1 Message Date
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
Marten Seemann
014315d3c7 parse hostname from address and pass it to the client cryptoSetup 2017-01-14 18:52:19 +07:00
Marten Seemann
4b8508c017 verify certificate chain in certManager 2017-01-14 18:52:19 +07:00
Marten Seemann
6913f5ae75 add tests for certChain, simplify constructor 2017-01-14 18:52:18 +07:00
Marten Seemann
bb1af0db1e move server proof verification to crypto package 2017-01-14 18:52:18 +07:00
Marten Seemann
0535491f30 rename crypto.Signer to crypto.CertChain 2017-01-14 18:52:18 +07:00
Marten Seemann
c8b3189caf validate server config signature, for ECDSA certificates 2017-01-14 18:52:18 +07:00
Marten Seemann
3063cab7cc only escalate crypto when the server config has been verified 2017-01-14 18:52:18 +07:00
Marten Seemann
58b905e636 validate server config signature, for RSA certificates 2017-01-14 18:52:17 +07:00
Marten Seemann
5aae3fbafe save the proof in client CryptoSetup 2017-01-14 18:52:17 +07:00
Marten Seemann
a388d6bf6a fix error code for invalid certificate chains 2017-01-14 18:52:17 +07:00
Marten Seemann
52ba2ce9f8 prevent int64 overflow when reading the expiry date of the server config 2017-01-14 18:52:17 +07:00
Marten Seemann
f9013edb77 check if the received server config is expired 2017-01-14 18:52:17 +07:00
Marten Seemann
0b736b2cce create forwardSecureAEAD after receiving all necessary values 2017-01-14 18:52:16 +07:00
Marten Seemann
2e0eae1a1d calculate required padding size in CHLOs 2017-01-14 18:52:16 +07:00
Marten Seemann
8bcad17297 create secureAEAD after receiving all necessary values 2017-01-14 18:52:16 +07:00
Marten Seemann
5a1c94ba7b send client nonce and public value after receiving the certificate chain 2017-01-14 18:52:16 +07:00
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