implement writing of crypto messages

This commit is contained in:
Lucas Clemente
2016-04-10 16:33:55 +02:00
parent 0d4ebe0cfe
commit 120d255f38
4 changed files with 90 additions and 20 deletions

View File

@@ -1,7 +1,7 @@
package quic
import (
"strings"
"bytes"
. "github.com/onsi/ginkgo"
. "github.com/onsi/gomega"
@@ -13,24 +13,15 @@ var _ = Describe("CryptoStream", func() {
tag, msg, err := ParseCryptoMessage(sampleCHLO)
Expect(err).ToNot(HaveOccurred())
Expect(tag).To(Equal(TagCHLO))
Expect(msg).To(Equal(map[Tag][]byte{
TagPAD: []byte(strings.Repeat("-", 1016)),
TagSNI: []byte("www.example.org"),
TagVER: []byte("Q030"),
TagCCS: []byte("{&\xe9\xe7\xe4\\q\xff\x01\xe8\x81`\x92\x92\x1a\xe8"),
TagMSPC: []byte("d\x00\x00\x00"),
TagUAID: []byte("dev Chrome/51.0.2700.0 Intel Mac OS X 10_11_4"),
TagTCID: []byte("\x00\x00\x00\x00"),
TagSRBF: []byte("\x00\x00\x10\x00"),
TagICSL: []byte("\x1e\x00\x00\x00"),
TagNONP: []byte("\xe1\x84T\x1b\xe3\xd6|\x1fi\xb2N\x9eF\xf4Fݫ\xe5\xdef\x94\xf6\xb2\xee\x01ĥw\xfe\xc9\v\xa3"),
TagSCLS: []byte("\x01\x00\x00\x00"),
TagCSCT: []byte{},
TagCOPT: []byte("FIXD"),
TagSFCW: []byte("\x00\x00`\x00"),
TagCFCW: []byte("\x00\x00\xf0\x00"),
TagPDMD: []byte("X509"),
}))
Expect(msg).To(Equal(sampleCHLOMap))
})
})
Context("when writing", func() {
It("writes sample message", func() {
b := &bytes.Buffer{}
WriteCryptoMessage(b, TagCHLO, sampleCHLOMap)
Expect(b.Bytes()).To(Equal(sampleCHLO))
})
})
})