Commit Graph

5988 Commits

Author SHA1 Message Date
Marten Seemann
30998cef1f always send ACK frames together with Stream frames 2016-04-19 12:18:13 +07:00
Marten Seemann
b52455c3f7 add method to Write ConnectionClose frames 2016-04-19 10:20:48 +07:00
Lucas Clemente
e0f5deedd5 add very basic http handling using the stlib to example server 2016-04-18 21:08:47 +02:00
Lucas Clemente
ec718ffe99 log new connections 2016-04-18 21:07:22 +02:00
Lucas Clemente
673f91ee63 accept NACKs, WINDOW_UPDATEs and BLOCKEDs, but don't handle them yet 2016-04-18 21:07:00 +02:00
Lucas Clemente
1fb937e7ef protect maps in Stream with mutexes 2016-04-18 17:00:18 +02:00
Lucas Clemente
5b59c2c2b0 serve multiple http requests per connection 2016-04-18 14:54:02 +02:00
Lucas Clemente
9cbeb49d49 change AEAD interface to use byte slices, simplifying its usage 2016-04-18 14:37:34 +02:00
Lucas Clemente
dc4e3c73e4 remove Session.SendFrames 2016-04-18 14:10:22 +02:00
Lucas Clemente
e9967e990a use streams in example server 2016-04-18 14:09:29 +02:00
Lucas Clemente
9757ad62f2 add stream.Close 2016-04-18 14:08:56 +02:00
Lucas Clemente
c7bb7acaf8 add Session.NewStream 2016-04-18 14:01:52 +02:00
Lucas Clemente
07e7708506 change StreamCallback to include the session 2016-04-18 14:01:35 +02:00
Lucas Clemente
57b144bdef fix pending cryptosetup tests 2016-04-18 12:38:41 +02:00
Lucas Clemente
f5ec5262d1 stop crypto thread after handshake is complete or errors 2016-04-18 11:10:00 +02:00
Lucas Clemente
758fdeb3d3 change CryptoSetup to use streams 2016-04-18 11:03:49 +02:00
Lucas Clemente
52268753e9 implement Stream.ReadByte 2016-04-18 11:00:26 +02:00
Lucas Clemente
c430fbd5d4 implement a caching reader needed for crypto streams 2016-04-18 10:59:54 +02:00
Lucas Clemente
bc736feada add an rw mutex to crypto setup in preparation for using the new streams 2016-04-17 19:14:47 +02:00
Lucas Clemente
d32a1b8a2b add tests for crypto escalation 2016-04-17 17:11:54 +02:00
Lucas Clemente
5c6e72303e add more crypto setup tests 2016-04-17 16:46:44 +02:00
Lucas Clemente
4b71b14bd8 fix stream tests 2016-04-17 15:02:12 +02:00
Marten Seemann
a0eac5f160 split large StreamFrames into multiple smaller ones before sending 2016-04-17 17:38:21 +07:00
Marten Seemann
a90c9ba173 add a Write method for Streams 2016-04-17 16:53:04 +07:00
Marten Seemann
1097698c4b send entropy in packets, validate entropy in received ACKs 2016-04-17 14:21:36 +07:00
Marten Seemann
922a2975e8 use PacketNumber type in ACK frame parsing, fix linter warnings 2016-04-17 13:58:38 +07:00
Marten Seemann
c69992cae4 parse RST_STREAM frames 2016-04-17 10:47:03 +07:00
Lucas Clemente
7e65940188 add more cryptosetup tests 2016-04-17 00:37:07 +02:00
Lucas Clemente
b5c7bcda18 extract SHLO into separate method and test it 2016-04-17 00:31:30 +02:00
Lucas Clemente
cbbf29e3d5 add some cryptosetup tests 2016-04-17 00:22:41 +02:00
Lucas Clemente
ac0eed61f2 introduce crypto.Signer interface and hide RSA implementation 2016-04-17 00:22:26 +02:00
Lucas Clemente
aa894a6df7 add some simple tests 2016-04-16 23:50:06 +02:00
Lucas Clemente
fd485dc50a add test commands to readme 2016-04-16 23:36:05 +02:00
Lucas Clemente
717e4e0ecd fix key derivation test 2016-04-16 22:22:33 +02:00
Lucas Clemente
7480822230 reduce debug messages 2016-04-16 22:17:36 +02:00
Lucas Clemente
92c48d0976 simplify frame type switch, introduce temporary stream 1 offset variable 2016-04-16 22:10:57 +02:00
Lucas Clemente
aa5d2be491 implement forward secure encryption 2016-04-16 22:08:57 +02:00
Lucas Clemente
7aec145d52 adopt chacha20 implementation to upstream changes 2016-04-16 20:46:33 +02:00
Marten Seemann
3eabb4a46c use Stream object in the Session 2016-04-17 00:19:23 +07:00
Marten Seemann
66b52e915d introduce StreamID type 2016-04-16 23:54:57 +07:00
Marten Seemann
3e59ede7a7 use channels to properly implement the Stream.Read function 2016-04-16 23:47:57 +07:00
Marten Seemann
1da9b86da0 add a Stream class 2016-04-16 22:12:27 +07:00
Marten Seemann
dc07d6144c only accept in-order packets, drop duplicates and out-of-order packets 2016-04-16 19:23:39 +07:00
Marten Seemann
79ba43bbdb move all frames to separate package 2016-04-16 18:34:16 +07:00
Lucas Clemente
88f404c19e initial server hello implementation 2016-04-16 00:27:30 +02:00
Lucas Clemente
a2ef4d2dc8 change supported version to slice, since the order matters for the SHLO 2016-04-16 00:27:03 +02:00
Lucas Clemente
13c0445bb4 randomly generate the server config ID and check whether it matches 2016-04-16 00:09:50 +02:00
Lucas Clemente
06a4201d65 extract version negotiation into a separate function 2016-04-15 22:50:22 +02:00
Lucas Clemente
be33164dbf reduce debug logs 2016-04-15 22:43:46 +02:00
Lucas Clemente
c3a5b846cb pull some stuff from main.go into server.go 2016-04-15 22:40:53 +02:00