keys/lib/obfuscate_test.go
2026-05-10 15:53:01 +08:00

65 lines
1.4 KiB
Go

package lib
import (
"bytes"
"testing"
)
func TestPackUnpackMemoryKey(t *testing.T) {
key, _ := CryptoRandBytes(32)
iv, _ := CryptoRandBytes(12)
buf, err := PackMemoryKey(key, iv)
if err != nil {
t.Fatalf("PackMemoryKey failed: %v", err)
}
if len(buf) != MemoryKeySize {
t.Fatalf("PackMemoryKey length = %d, want %d", len(buf), MemoryKeySize)
}
unpackedKey, unpackedIv, err := UnpackMemoryKey(buf)
if err != nil {
t.Fatalf("UnpackMemoryKey failed: %v", err)
}
if !bytes.Equal(key, unpackedKey) {
t.Errorf("unpacked key != original key")
}
if !bytes.Equal(iv, unpackedIv) {
t.Errorf("unpacked iv != original iv")
}
}
func TestPackUnpackFileHeader(t *testing.T) {
salt, _ := CryptoRandBytes(16)
iv, _ := CryptoRandBytes(12)
header, padding, err := PackFileHeader(salt, iv)
if err != nil {
t.Fatalf("PackFileHeader failed: %v", err)
}
if len(header) != FileHeaderSize {
t.Fatalf("PackFileHeader length = %d, want %d", len(header), FileHeaderSize)
}
unpackedSalt, unpackedIv, unpackedPadding, err := UnpackFileHeader(header)
if err != nil {
t.Fatalf("UnpackFileHeader failed: %v", err)
}
if !bytes.Equal(salt, unpackedSalt) {
t.Errorf("unpacked salt != original salt")
}
if !bytes.Equal(iv, unpackedIv) {
t.Errorf("unpacked iv != original iv")
}
if padding != unpackedPadding {
t.Errorf("unpacked padding = %d, want %d", unpackedPadding, padding)
}
}