Files
bambu-nfc/kdf_test.go
s1d3sw1ped b38f7f643b Add bambu-nfc dump parse, Key-A HKDF, and spool merge.
Parse filanfc-dump/v1 zip/JSON, Bambu 1K images, and merge stickers by tray UID. dump and mifare packages stay importable for a later common library.
2026-08-23 15:23:11 -05:00

49 lines
1010 B
Go

package bambunfc
import (
"encoding/hex"
"errors"
"testing"
)
func TestKeysAGolden11223344(t *testing.T) {
t.Parallel()
uid, err := hex.DecodeString("11223344")
if err != nil {
t.Fatal(err)
}
want := []string{
"0729F3B2D37A", "2027210D85E7", "D77B2E7C92BC", "29126A53A2EE",
"E49850F62778", "9A9128B882BD", "45F69B980786", "90DD67095D6B",
"EB994746CD69", "B4AEB23473E3", "445E850D699C", "5C9BD5BD9FD7",
"1062AFE9F5F5", "81EE5259CF6B", "0920CEEEE2BC", "BAF630CCBFD3",
}
got, err := KeysA(uid)
if err != nil {
t.Fatal(err)
}
for i, w := range want {
if h := hex.EncodeToString(got[i][:]); h != toLower(w) {
t.Errorf("key[%d] = %s; want %s", i, h, toLower(w))
}
}
}
func toLower(s string) string {
b := []byte(s)
for i, c := range b {
if c >= 'A' && c <= 'F' {
b[i] = c + ('a' - 'A')
}
}
return string(b)
}
func TestKeysAEmpty(t *testing.T) {
t.Parallel()
_, err := KeysA(nil)
if !errors.Is(err, ErrUID) {
t.Errorf("KeysA(nil) err = %v; want ErrUID", err)
}
}