2017-05-28 20:43:48 +02:00
|
|
|
package pathiv
|
|
|
|
|
|
|
|
import (
|
|
|
|
"bytes"
|
|
|
|
"encoding/hex"
|
|
|
|
"testing"
|
|
|
|
)
|
|
|
|
|
|
|
|
// TestBlockIV makes sure we don't change the block iv derivation algorithm "BlockIV()"
|
|
|
|
// inadvertedly.
|
|
|
|
func TestBlockIV(t *testing.T) {
|
|
|
|
b0 := make([]byte, 16)
|
|
|
|
b0x := BlockIV(b0, 0)
|
|
|
|
if !bytes.Equal(b0, b0x) {
|
|
|
|
t.Errorf("b0x should be equal to b0")
|
|
|
|
}
|
|
|
|
b27 := BlockIV(b0, 0x27)
|
|
|
|
expected, _ := hex.DecodeString("00000000000000000000000000000027")
|
|
|
|
if !bytes.Equal(b27, expected) {
|
2017-05-31 08:21:36 +02:00
|
|
|
t.Errorf("\nhave=%s\nwant=%s", hex.EncodeToString(b27), hex.EncodeToString(expected))
|
2017-05-28 20:43:48 +02:00
|
|
|
}
|
|
|
|
bff := bytes.Repeat([]byte{0xff}, 16)
|
|
|
|
b28 := BlockIV(bff, 0x28)
|
|
|
|
expected, _ = hex.DecodeString("ffffffffffffffff0000000000000027")
|
|
|
|
if !bytes.Equal(b28, expected) {
|
|
|
|
t.Errorf("\nhave=%s\nwant=%s", hex.EncodeToString(b28), hex.EncodeToString(expected))
|
|
|
|
}
|
|
|
|
}
|