From 9a217ce786581ee7ec18b27e46f0096763c85f9e Mon Sep 17 00:00:00 2001 From: Jakob Unterwurzacher Date: Sun, 28 May 2017 20:43:48 +0200 Subject: pathiv: move block IV algorithm into this package This was implemented in fusefrontend_reverse, but we need it in fusefrontend as well. Move the algorithm into pathiv.BlockIV(). --- internal/pathiv/pathiv_test.go | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) create mode 100644 internal/pathiv/pathiv_test.go (limited to 'internal/pathiv/pathiv_test.go') diff --git a/internal/pathiv/pathiv_test.go b/internal/pathiv/pathiv_test.go new file mode 100644 index 0000000..0cecba1 --- /dev/null +++ b/internal/pathiv/pathiv_test.go @@ -0,0 +1,28 @@ +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) { + t.Error() + } + 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)) + } +} -- cgit v1.2.3