forked from quic-go/quic-go
make handshake and crypto internal packages
This commit is contained in:
41
internal/crypto/source_address_token_test.go
Normal file
41
internal/crypto/source_address_token_test.go
Normal file
@@ -0,0 +1,41 @@
|
||||
package crypto
|
||||
|
||||
import (
|
||||
. "github.com/onsi/ginkgo"
|
||||
. "github.com/onsi/gomega"
|
||||
)
|
||||
|
||||
var _ = Describe("Source Address Tokens", func() {
|
||||
It("should generate the encryption key", func() {
|
||||
Expect(deriveKey([]byte("TESTING"))).To(Equal([]byte{0xee, 0x71, 0x18, 0x9, 0xfd, 0xb8, 0x9a, 0x79, 0x19, 0xfc, 0x5e, 0x1a, 0x97, 0x20, 0xb2, 0x6}))
|
||||
})
|
||||
|
||||
Context("tokens", func() {
|
||||
var source *stkSource
|
||||
|
||||
BeforeEach(func() {
|
||||
sourceI, err := NewStkSource()
|
||||
source = sourceI.(*stkSource)
|
||||
Expect(err).NotTo(HaveOccurred())
|
||||
})
|
||||
|
||||
It("serializes", func() {
|
||||
token, err := source.NewToken([]byte("foobar"))
|
||||
Expect(err).ToNot(HaveOccurred())
|
||||
data, err := source.DecodeToken(token)
|
||||
Expect(err).ToNot(HaveOccurred())
|
||||
Expect(data).To(Equal([]byte("foobar")))
|
||||
})
|
||||
|
||||
It("rejects invalid tokens", func() {
|
||||
_, err := source.DecodeToken([]byte("invalid source address token"))
|
||||
Expect(err).To(HaveOccurred())
|
||||
Expect(err.Error()).To(ContainSubstring("message authentication failed"))
|
||||
})
|
||||
|
||||
It("rejects tokens of wrong size", func() {
|
||||
_, err := source.DecodeToken(nil)
|
||||
Expect(err).To(MatchError("STK too short: 0"))
|
||||
})
|
||||
})
|
||||
})
|
||||
Reference in New Issue
Block a user