2020-10-25 15:36:34 +00:00
|
|
|
package proxy
|
|
|
|
|
|
|
|
import (
|
|
|
|
"github.com/stretchr/testify/assert"
|
|
|
|
"github.com/stretchr/testify/require"
|
2020-10-25 21:44:56 +00:00
|
|
|
"mpbl3p/mocks"
|
2020-11-27 20:17:59 +00:00
|
|
|
"mpbl3p/shared"
|
2020-10-25 15:36:34 +00:00
|
|
|
"testing"
|
|
|
|
)
|
|
|
|
|
2020-11-27 20:17:59 +00:00
|
|
|
func TestAppendMac(t *testing.T) {
|
|
|
|
testContent := []byte("A test string is the content of this packet.")
|
2021-05-13 22:11:58 +01:00
|
|
|
testMac := mocks.AlmostUselessMac("abcd")
|
2020-11-28 17:15:56 +00:00
|
|
|
testPacket := SimplePacket(testContent)
|
2020-11-27 20:17:59 +00:00
|
|
|
testMarshalled := testPacket.Marshal()
|
|
|
|
|
|
|
|
appended := AppendMac(testMarshalled, testMac)
|
|
|
|
|
|
|
|
t.Run("Length", func(t *testing.T) {
|
2021-05-13 22:26:03 +01:00
|
|
|
assert.Len(t, appended, len(testMarshalled)+4)
|
2020-11-27 20:17:59 +00:00
|
|
|
})
|
|
|
|
|
|
|
|
t.Run("Mac", func(t *testing.T) {
|
2021-05-13 22:26:03 +01:00
|
|
|
assert.Equal(t, []byte{'a', 'b', 'c', 'd'}, appended[len(testMarshalled):])
|
2020-11-27 20:17:59 +00:00
|
|
|
})
|
|
|
|
|
|
|
|
t.Run("Original", func(t *testing.T) {
|
|
|
|
assert.Equal(t, testMarshalled, appended[:len(testMarshalled)])
|
|
|
|
})
|
|
|
|
}
|
|
|
|
|
|
|
|
func TestStripMac(t *testing.T) {
|
|
|
|
testContent := []byte("A test string is the content of this packet.")
|
2021-05-13 22:11:58 +01:00
|
|
|
testMac := mocks.AlmostUselessMac("abcd")
|
2020-11-28 17:15:56 +00:00
|
|
|
testPacket := SimplePacket(testContent)
|
2020-11-27 20:17:59 +00:00
|
|
|
testMarshalled := testPacket.Marshal()
|
|
|
|
|
|
|
|
appended := AppendMac(testMarshalled, testMac)
|
2020-10-25 15:36:34 +00:00
|
|
|
|
2020-10-26 11:07:27 +00:00
|
|
|
t.Run("Length", func(t *testing.T) {
|
2020-11-27 20:17:59 +00:00
|
|
|
cut, err := StripMac(appended, testMac)
|
|
|
|
|
|
|
|
require.Nil(t, err)
|
|
|
|
assert.Len(t, cut, len(testMarshalled))
|
|
|
|
})
|
|
|
|
|
|
|
|
t.Run("IncorrectMac", func(t *testing.T) {
|
|
|
|
badMac := make([]byte, len(testMarshalled)+4)
|
|
|
|
copy(badMac, testMarshalled)
|
|
|
|
copy(badMac[:len(testMarshalled)], "dcba")
|
|
|
|
_, err := StripMac(badMac, testMac)
|
|
|
|
|
|
|
|
assert.Error(t, err, shared.ErrBadChecksum)
|
|
|
|
})
|
|
|
|
|
|
|
|
t.Run("Original", func(t *testing.T) {
|
|
|
|
cut, err := StripMac(appended, testMac)
|
2020-10-25 15:36:34 +00:00
|
|
|
|
|
|
|
require.Nil(t, err)
|
2020-11-27 20:17:59 +00:00
|
|
|
assert.Equal(t, testMarshalled, cut)
|
2020-10-25 15:36:34 +00:00
|
|
|
})
|
|
|
|
}
|