Commit Graph

77 Commits

Author SHA1 Message Date
Lucas Clemente
705da8fd00 switch to AES-GCM as symmetric cipher
fixes #200
2016-07-05 12:13:41 +02:00
Lucas Clemente
76f7a7d153 use spaces instead of \x00 in handshake message string serialization 2016-06-06 15:00:30 +02:00
Lucas Clemente
240946dfde replace version number literals with constants to make grepping easier 2016-06-03 11:09:48 +02:00
Marten Seemann
c6f4d9720f fix int overflow on 32 bit in handshake parsing 2016-06-02 23:28:13 +07:00
Lucas Clemente
5ed0182b67 fix a race condition in CryptoSetup
CryptoSetup's AEADs were changed between calls to
DiversificationNonce() and Seal()
2016-06-02 16:13:06 +02:00
Lucas Clemente
21db6f9270 move CHLO log to debug 2016-06-02 13:33:19 +02:00
Lucas Clemente
a4773eb5ff validate length of crypto message
refs #123
2016-05-27 23:25:51 +02:00
Lucas Clemente
c546f5c9dc enforce max streams per connection limit
fixes #13
2016-05-27 22:39:37 +02:00
Lucas Clemente
fa2e34d360 require and generate source address tokens in crypto setup
fixes #121
2016-05-24 11:20:16 +02:00
Lucas Clemente
241c9f3a3c add support for diversification to key derivation
ref #51
2016-05-21 00:04:28 +02:00
Lucas Clemente
2606b891e2 add diversification to AEADs and conditionally include in public header
ref #51
2016-05-20 23:41:04 +02:00
Lucas Clemente
52d734f644 fix 0-RTT handshakes by not requiring SNOs for initial encryption
fixes #118, fixes #119
2016-05-20 13:05:51 +02:00
Lucas Clemente
7f907a17c2 reduce slice allocations in TruncateConnectionID 2016-05-20 01:09:04 +02:00
Lucas Clemente
f86875f746 reject small CHLOs to prevent amplification attacks
fixes #1
2016-05-19 16:20:22 +02:00
Lucas Clemente
7a97f34fac don't panic 🤓
fixes #93
2016-05-18 18:29:42 +02:00
Lucas Clemente
b185ea04e1 add CloseRemote method to stream
ref #109
2016-05-18 13:33:36 +02:00
Marten Seemann
7105b37f91 don't allow renegotiation of flow control parameters 2016-05-18 14:03:04 +07:00
Lucas Clemente
d0e6b993bb use new error codes throughout the server
fixes #86
2016-05-17 12:49:59 +02:00
Marten Seemann
fb6d90b813 cosmetic changes in tests 2016-05-16 18:32:08 +07:00
Lucas Clemente
de660dbfc5 run gofmt -s on main and server config 2016-05-15 14:42:56 +02:00
Lucas Clemente
c12a12518e run gofmt -s on tests 2016-05-15 14:42:34 +02:00
Lucas Clemente
9f63cdbd91 add stream.StreamID() 2016-05-14 13:35:43 +02:00
Marten Seemann
2ac53843ed improve error handling in ConnectionParametersManager 2016-05-14 17:30:36 +07:00
Marten Seemann
878d6a7140 negotiate maximum number of streams per connection
fixes #20
2016-05-14 17:10:49 +07:00
Marten Seemann
16bd559d9a negotiate idle connection state lifetime
work towards #20
2016-05-14 16:48:19 +07:00
Marten Seemann
43621c9c25 keep separate flow control windows for sending and receiving in ConnectionParametersManager
work towards #19, #20, #39
2016-05-14 15:29:15 +07:00
Lucas Clemente
c7126137d1 queue undecryptable packets for later decryption & possibly send PRST
fixes #38, fixes #69, fixes #73
2016-05-12 16:46:18 +02:00
Lucas Clemente
ea83ca8950 implement cert compression with cached certificates 2016-05-11 16:30:04 +02:00
Lucas Clemente
7c1e1cde56 rename GetCertCompressed to GetCertsCompressed 2016-05-11 11:41:44 +02:00
Lucas Clemente
20655bac5a rename GetCertUncompressed to GetLeafCert 2016-05-11 11:40:20 +02:00
Lucas Clemente
7609246b45 re-add support for version 30
fixes #72
2016-05-10 11:05:52 +02:00
Lucas Clemente
f4ac8ff949 read SNI from crypto handshake
fixes #48
2016-05-08 23:06:18 +02:00
Lucas Clemente
85c39721ec change Signer interface to return errors 2016-05-08 22:46:59 +02:00
Lucas Clemente
6738f0eadf add sni to crypto.Signer interface 2016-05-08 22:23:36 +02:00
Lucas Clemente
c6fb85be22 add handshake message logging 2016-05-08 22:09:02 +02:00
Lucas Clemente
ea63fe6205 add test asserting ICSL has a default value 2016-05-07 17:41:23 +02:00
Marten Seemann
bb807fa5bd implement sending of truncated ConnectionIDs 2016-05-06 21:53:21 +07:00
Lucas Clemente
bfe7117329 only take specific values from the params map 2016-05-06 11:43:39 +02:00
Lucas Clemente
f7d3da74b7 connection parameter manager docs 2016-05-05 23:36:41 +02:00
Lucas Clemente
7e0d59a5e6 make session timeout according to ICSL
fixes #54
2016-05-05 23:16:49 +02:00
Lucas Clemente
b239b71bb4 add GetIdleConnectionStateLifetime to connection params 2016-05-05 22:58:59 +02:00
Lucas Clemente
76d279ed8f make connectionparameters return its map in GetSHLOMap 2016-05-05 22:58:52 +02:00
Marten Seemann
6556e2f695 use protocol.ByteCount in frames, streams and session 2016-05-05 11:53:10 +07:00
Marten Seemann
77f34a9207 set initial flow control window from handshake parameters
fixes #50
2016-05-05 11:29:12 +07:00
Lucas Clemente
40ee20c02b use a ephermal curve25519 for forward secure key exchange
fixes #17
2016-05-04 12:45:25 +02:00
Marten Seemann
d07baef91b manage connection parameters in a separate class 2016-05-04 17:20:36 +07:00
Lucas Clemente
daf4e4a867 remove support for version 30, since we don't implement FEC at all 2016-05-02 20:56:02 +02:00
Lucas Clemente
53ef5669e2 fix crypto setup tests 2016-05-02 20:52:09 +02:00
Lucas Clemente
6178ef83fe discard undecryptable packets
hopefully fixes issue #33, the workaround is tracked in #38
2016-05-02 16:45:26 +02:00
Lucas Clemente
a6d3dca74c re-add crypto test 2016-05-02 14:40:43 +02:00