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
Lucas Clemente
14d3b03b44
more consistent filenames
2016-04-15 22:28:45 +02:00
Lucas Clemente
91e3ac4f26
rename Handshake to CryptoSetup
2016-04-15 22:27:14 +02:00
Lucas Clemente
20b48c5432
move handshake handling and server config into handshake package
2016-04-15 22:24:42 +02:00
Lucas Clemente
30d5766598
improve version tests
2016-04-15 20:40:43 +02:00
Lucas Clemente
3e58bcfc69
change certificate to be valid for quic.clemente.io
2016-04-15 20:40:43 +02:00
Lucas Clemente
7acb3365d5
use dictionary to compress certificates
2016-04-15 20:40:43 +02:00
Lucas Clemente
a6549d0cc7
add debug output when sending packets
2016-04-15 20:40:43 +02:00
Lucas Clemente
24d2878a06
Merge pull request #6 from lucas-clemente/frames
...
Frames
2016-04-15 20:35:10 +02:00
Marten Seemann
a2c4ebef19
add ConnctionClose frame handling
2016-04-16 01:10:30 +07:00
Marten Seemann
4e5102216a
add tests for ACK frame parsing
2016-04-16 01:03:24 +07:00
Marten Seemann
23f0d8d6e9
read the STOP_WAITING frame
2016-04-16 01:03:09 +07:00
Marten Seemann
2b7847a178
pass complete frame (including the type byte) to the ParseFrame() functions
2016-04-16 00:53:39 +07:00
Lucas Clemente
495bb0ef92
handle version Q030 properly
2016-04-15 19:01:14 +02:00
Lucas Clemente
b6c9c9b6a4
introduce protocol/version.go and remove big endian functions
2016-04-15 18:46:39 +02:00
Lucas Clemente
052822aea5
send a body in the example server
2016-04-15 16:49:24 +02:00
Lucas Clemente
3c16e8c9ee
introduce stream callback in session, move http2 stuff to main.go
2016-04-15 14:31:31 +02:00
Lucas Clemente
ec509fb98f
add key derivation test
2016-04-15 12:44:31 +02:00
Lucas Clemente
35a40ac6d8
rename GetCERTData to GetCertCompressed
2016-04-15 12:37:23 +02:00
Lucas Clemente
bc88949ffb
add a server config test
2016-04-15 12:34:01 +02:00
Lucas Clemente
2e1da961c5
add editorconfig
2016-04-15 12:13:33 +02:00
Lucas Clemente
85eceb53bf
fix some linter issues
2016-04-15 12:06:43 +02:00
Lucas Clemente
53d6e62c85
add support for PAD frames
2016-04-15 12:05:42 +02:00
Lucas Clemente
50a1f802f9
add basic http2 header reading
2016-04-15 12:01:26 +02:00
marten-seemann
be7d3004b3
Merge pull request #5 from lucas-clemente/frames
...
Frames
2016-04-15 16:52:04 +07:00
Marten Seemann
e223ed73e6
add very basic STOP_WAITING handling, return errors for unknown types
2016-04-15 16:48:54 +07:00
Marten Seemann
a5a7021fed
basic ACK frame parsing
2016-04-15 16:43:46 +07:00
Marten Seemann
281706fda8
better check for frame types
2016-04-15 13:08:49 +07:00
Marten Seemann
8da53885fc
split STREAM and ACK frames in seperate files
2016-04-15 12:34:23 +07:00
Marten Seemann
9e87ee8ed9
detect different types of frames
2016-04-15 12:29:02 +07:00
Lucas Clemente
86b4ffdaaf
use chacha20poly1305 instead of AES and include cert in key derivation
...
Unfortunately QUIC uses non-standard tag sizes with both AES-GCM and
Poly1305. Adopting AES-GCM seems much harder, so I changed it to
Chacha20Poly1305 and only made some slight changes to an existing algo.
This should probably be double-checked at some point.
2016-04-14 23:44:31 +02:00
Lucas Clemente
388fdf7399
decrease debug output
2016-04-14 20:40:20 +02:00