refactor: Merge enum hitag_function. read/write has already been differentiated by command

This commit is contained in:
douniwan5788 2024-09-21 14:21:08 +08:00
commit 8b7f34b4d9
7 changed files with 61 additions and 67 deletions

View file

@ -1666,14 +1666,14 @@ void ReaderHitag(const lf_hitag_data_t *payload, bool ledcontrol) {
// Check configuration
switch (payload->cmd) {
case RHT1F_PLAIN: {
case HT1F_PLAIN: {
DBG Dbprintf("Read public blocks in plain mode");
// this part will be unreadable
memset(tag.sectors + 2, 0x0, 30);
blocknr = 0;
break;
}
case RHT1F_AUTHENTICATE: {
case HT1F_AUTHENTICATE: {
DBG Dbprintf("Read all blocks in authed mode");
memcpy(nonce, payload->nonce, 4);
@ -1699,7 +1699,7 @@ void ReaderHitag(const lf_hitag_data_t *payload, bool ledcontrol) {
blocknr = 0;
break;
}
case RHT2F_PASSWORD: {
case HT2F_PASSWORD: {
DBG Dbprintf("List identifier in password mode");
if (memcmp(payload->pwd, "\x00\x00\x00\x00", 4) == 0) {
memcpy(password, tag.sectors[1], sizeof(password));
@ -1711,7 +1711,7 @@ void ReaderHitag(const lf_hitag_data_t *payload, bool ledcontrol) {
bAuthenticating = false;
break;
}
case RHT2F_AUTHENTICATE: {
case HT2F_AUTHENTICATE: {
DBG DbpString("Authenticating using NrAr pair:");
memcpy(NrAr, payload->NrAr, 8);
DBG Dbhexdump(8, NrAr, false);
@ -1722,7 +1722,7 @@ void ReaderHitag(const lf_hitag_data_t *payload, bool ledcontrol) {
bAuthenticating = false;
break;
}
case RHT2F_CRYPTO: {
case HT2F_CRYPTO: {
DBG DbpString("Authenticating using key:");
memcpy(key, payload->key, 6); //HACK; 4 or 6?? I read both in the code.
DBG Dbhexdump(6, key, false);
@ -1734,7 +1734,7 @@ void ReaderHitag(const lf_hitag_data_t *payload, bool ledcontrol) {
bAuthenticating = false;
break;
}
case RHT2F_TEST_AUTH_ATTEMPTS: {
case HT2F_TEST_AUTH_ATTEMPTS: {
DBG Dbprintf("Testing " _YELLOW_("%d") " authentication attempts", (auth_table_len / 8));
auth_table_pos = 0;
memcpy(NrAr, auth_table, 8);
@ -1812,27 +1812,27 @@ void ReaderHitag(const lf_hitag_data_t *payload, bool ledcontrol) {
// By default reset the transmission buffer
tx = txbuf;
switch (payload->cmd) {
case RHT1F_PLAIN: {
case HT1F_PLAIN: {
bStop = !hitag1_plain(rx, rxlen, tx, &txlen, false);
break;
}
case RHT1F_AUTHENTICATE: {
case HT1F_AUTHENTICATE: {
bStop = !hitag1_authenticate(rx, rxlen, tx, &txlen);
break;
}
case RHT2F_PASSWORD: {
case HT2F_PASSWORD: {
bStop = !hitag2_password(rx, rxlen, tx, &txlen, false);
break;
}
case RHT2F_AUTHENTICATE: {
case HT2F_AUTHENTICATE: {
bStop = !hitag2_authenticate(rx, rxlen, tx, &txlen, false);
break;
}
case RHT2F_CRYPTO: {
case HT2F_CRYPTO: {
bStop = !hitag2_crypto(rx, rxlen, tx, &txlen, false);
break;
}
case RHT2F_TEST_AUTH_ATTEMPTS: {
case HT2F_TEST_AUTH_ATTEMPTS: {
bStop = !hitag2_test_auth_attempts(rx, rxlen, tx, &txlen);
break;
}
@ -2083,7 +2083,7 @@ void WriterHitag(const lf_hitag_data_t *payload, bool ledcontrol) {
// Check configuration
switch (payload->cmd) {
case WHT2F_CRYPTO: {
case HT2F_CRYPTO: {
DBG DbpString("Authenticating using key:");
memcpy(key, payload->key, 6); //HACK; 4 or 6?? I read both in the code.
memcpy(writedata, payload->data, 4);
@ -2093,7 +2093,7 @@ void WriterHitag(const lf_hitag_data_t *payload, bool ledcontrol) {
bAuthenticating = false;
}
break;
case WHT2F_PASSWORD: {
case HT2F_PASSWORD: {
DBG DbpString("Authenticating using password:");
if (memcmp(payload->pwd, "\x00\x00\x00\x00", 4) == 0) {
memcpy(password, tag.sectors[1], sizeof(password));
@ -2180,11 +2180,11 @@ void WriterHitag(const lf_hitag_data_t *payload, bool ledcontrol) {
tx = txbuf;
switch (payload->cmd) {
case WHT2F_CRYPTO: {
case HT2F_CRYPTO: {
bStop = !hitag2_crypto(rx, rxlen, tx, &txlen, true);
break;
}
case WHT2F_PASSWORD: {
case HT2F_PASSWORD: {
bStop = !hitag2_password(rx, rxlen, tx, &txlen, true);
break;
}