b38f7f643b
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.
49 lines
1010 B
Go
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)
|
|
}
|
|
}
|