diff --git a/client/cmdanalyse.c b/client/cmdanalyse.c index 991d082f5..1813917aa 100644 --- a/client/cmdanalyse.c +++ b/client/cmdanalyse.c @@ -876,15 +876,19 @@ int CmdAnalyseNuid(const char *Cmd) { /* selftest1 UID 040D681AB52281 -> NUID 8F430FEF */ /* selftest2 UID 04183F09321B85 -> NUID 4F505D7D */ if (cmdp == 't') { - memcpy(uid, "\x04\x0d\x68\x1a\xb5\x22\x81", 7); + uint8_t uid_test1[] = {0x04, 0x0d, 0x68, 0x1a, 0xb5, 0x22, 0x81}; + uint8_t nuid_test1[] = {0x8f, 0x43, 0x0f, 0xef}; + uint8_t uid_test2[] = {0x04, 0x18, 0x3f, 0x09, 0x32, 0x1b, 0x85}; + uint8_t nuid_test2[] = {0x4f, 0x50, 0x5d, 0x7d}; + memcpy(uid, uid_test1, sizeof(uid)); generate4bNUID(uid, nuid); - bool test1 = (0 == memcmp(nuid, "\x8f\x43\x0f\xef", 4)); + bool test1 = (0 == memcmp(nuid, nuid_test1, sizeof(nuid))); PrintAndLogEx(SUCCESS, "Selftest1 %s\n", test1 ? _GREEN_("OK") : _RED_("Fail")); - memcpy(uid, "\x04\x18\x3f\x09\x32\x1b\x85", 7); + memcpy(uid, uid_test2, sizeof(uid)); generate4bNUID(uid, nuid); - bool test2 = (0 == memcmp(nuid, "\x4f\x50\x5d\x7d", 4)); + bool test2 = (0 == memcmp(nuid, nuid_test2, sizeof(nuid))); PrintAndLogEx(SUCCESS, "Selftest2 %s\n", test2 ? _GREEN_("OK") : _RED_("Fail")); return 0; } diff --git a/client/cmdhf14a.c b/client/cmdhf14a.c index 01b4e8228..45fcbcb33 100644 --- a/client/cmdhf14a.c +++ b/client/cmdhf14a.c @@ -524,7 +524,7 @@ int CmdHF14AInfo(const char *Cmd) { (tb1 ? "" : " NOT"), (tc1 ? "" : " NOT"), fsci, - fsci < sizeof(atsFSC) ? atsFSC[fsci] : -1 + fsci < sizeof(atsFSC)/sizeof(atsFSC[0]) ? atsFSC[fsci] : -1 ); } pos = 2; @@ -959,7 +959,7 @@ int SelectCard14443_4(bool disconnect, iso14a_card_select_t *card) { // get frame length from ATS in data field if (resp.arg[0] > 1) { uint8_t fsci = resp.d.asBytes[1] & 0x0f; - if (fsci < sizeof(atsFSC)) + if (fsci < sizeof(atsFSC)/sizeof(atsFSC[0])) frameLength = atsFSC[fsci]; } } else { @@ -967,7 +967,7 @@ int SelectCard14443_4(bool disconnect, iso14a_card_select_t *card) { iso14a_card_select_t *vcard = (iso14a_card_select_t *) resp.d.asBytes; if (vcard->ats_len > 1) { uint8_t fsci = vcard->ats[1] & 0x0f; - if (fsci < sizeof(atsFSC)) + if (fsci < sizeof(atsFSC)/sizeof(atsFSC[0])) frameLength = atsFSC[fsci]; } diff --git a/client/cmdlfhid.c b/client/cmdlfhid.c index 7e9448f67..c0d55f977 100644 --- a/client/cmdlfhid.c +++ b/client/cmdlfhid.c @@ -297,6 +297,8 @@ int CmdHIDClone(const char *Cmd) { SendCommand(&c); return 0; } + +/* // struct to handle wiegand typedef struct { uint8_t FormatLen; @@ -306,6 +308,7 @@ typedef struct { uint8_t *Wiegand; size_t Wiegand_n; } wiegand_t; +*/ static void addHIDMarker(uint8_t fmtlen, uint8_t *out) { // temp array diff --git a/common/wiegand.c b/common/wiegand.c index e319e1a08..58d80cca4 100644 --- a/common/wiegand.c +++ b/common/wiegand.c @@ -228,8 +228,8 @@ void num_to_wiegand_bits(uint64_t oem, uint64_t fc, uint64_t cn, uint8_t *dest, break; case 50 : // AWID 50 RBH fc &= 0xFFFF; // 16bits - cn &= 0xFFFFFFFF // 32bits - value = fc << 32 | cn; + cn &= 0xFFFFFFFF; // 32bits + value = fc << 32 | cn; num_to_bytebits(value, 48, temp); wiegand_add_parity(temp, dest, 48); // verify! break;