forked from quic-go/quic-go
@@ -1,23 +0,0 @@
|
|||||||
package ackhandlernew
|
|
||||||
|
|
||||||
import "github.com/lucas-clemente/quic-go/protocol"
|
|
||||||
|
|
||||||
// EntropyAccumulator accumulates the entropy according to the QUIC docs
|
|
||||||
type EntropyAccumulator byte
|
|
||||||
|
|
||||||
// Add the contribution of the entropy flag of a given packet number
|
|
||||||
func (e *EntropyAccumulator) Add(packetNumber protocol.PacketNumber, entropyFlag bool) {
|
|
||||||
if entropyFlag {
|
|
||||||
(*e) ^= 0x01 << (packetNumber % 8)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// Subtract the contribution of the entropy flag of a given packet number
|
|
||||||
func (e *EntropyAccumulator) Subtract(packetNumber protocol.PacketNumber, entropyFlag bool) {
|
|
||||||
e.Add(packetNumber, entropyFlag)
|
|
||||||
}
|
|
||||||
|
|
||||||
// Get the byte of entropy
|
|
||||||
func (e *EntropyAccumulator) Get() byte {
|
|
||||||
return byte(*e)
|
|
||||||
}
|
|
||||||
@@ -1,41 +0,0 @@
|
|||||||
package ackhandlernew
|
|
||||||
|
|
||||||
import (
|
|
||||||
. "github.com/onsi/ginkgo"
|
|
||||||
. "github.com/onsi/gomega"
|
|
||||||
)
|
|
||||||
|
|
||||||
var _ = Describe("EntropyAccumulator", func() {
|
|
||||||
It("initializes as zero", func() {
|
|
||||||
var e EntropyAccumulator
|
|
||||||
Expect(e.Get()).To(BeZero())
|
|
||||||
})
|
|
||||||
|
|
||||||
Context("Add", func() {
|
|
||||||
It("adds entropy", func() {
|
|
||||||
var e EntropyAccumulator
|
|
||||||
e.Add(9, true)
|
|
||||||
Expect(e.Get()).To(Equal(byte(0x02)))
|
|
||||||
})
|
|
||||||
|
|
||||||
It("doesn't add entropy for zero entropy flags", func() {
|
|
||||||
var e EntropyAccumulator
|
|
||||||
e.Add(9, false)
|
|
||||||
Expect(e.Get()).To(BeZero())
|
|
||||||
})
|
|
||||||
})
|
|
||||||
|
|
||||||
Context("Subtract", func() {
|
|
||||||
It("calculates the correct entropy", func() {
|
|
||||||
var e1 EntropyAccumulator
|
|
||||||
e1.Add(3, true)
|
|
||||||
|
|
||||||
var e2 EntropyAccumulator
|
|
||||||
e2.Add(1, true)
|
|
||||||
e2.Add(3, true)
|
|
||||||
e2.Subtract(1, true)
|
|
||||||
|
|
||||||
Expect(e1).To(Equal(e2))
|
|
||||||
})
|
|
||||||
})
|
|
||||||
})
|
|
||||||
Reference in New Issue
Block a user