mirror of
https://github.com/RfidResearchGroup/proxmark3.git
synced 2025-08-23 06:35:38 -07:00
calc tk17 raw bitstring
This commit is contained in:
parent
f163862496
commit
2fdf09606f
1 changed files with 13 additions and 2 deletions
|
@ -248,15 +248,16 @@ inline int TexcomTK17Get2Bits(uint32_t len1, uint32_t len2) {
|
||||||
if (xlen < 30)
|
if (xlen < 30)
|
||||||
return 0;
|
return 0;
|
||||||
if (xlen < 50)
|
if (xlen < 50)
|
||||||
return 1;
|
|
||||||
if (xlen < 70)
|
|
||||||
return 2;
|
return 2;
|
||||||
|
if (xlen < 70)
|
||||||
|
return 1;
|
||||||
return 3;
|
return 3;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
static bool TexcomTK17Decode(uint32_t* implengths, uint32_t implengthslen, bool verbose) {
|
static bool TexcomTK17Decode(uint32_t* implengths, uint32_t implengthslen, bool verbose) {
|
||||||
char bitstring[256] = {0};
|
char bitstring[256] = {0};
|
||||||
|
char cbitstring[256] = {0};
|
||||||
|
|
||||||
for (uint32_t i = 0; i < implengthslen; i = i + 2) {
|
for (uint32_t i = 0; i < implengthslen; i = i + 2) {
|
||||||
int dbit = TexcomTK17Get2Bits(implengths[i], implengths[i + 1]);
|
int dbit = TexcomTK17Get2Bits(implengths[i], implengths[i + 1]);
|
||||||
|
@ -284,6 +285,16 @@ static bool TexcomTK17Decode(uint32_t* implengths, uint32_t implengthslen, bool
|
||||||
if (verbose)
|
if (verbose)
|
||||||
PrintAndLogEx(INFO, "TK17 raw bit string [%zu]: %s", strlen(bitstring), bitstring);
|
PrintAndLogEx(INFO, "TK17 raw bit string [%zu]: %s", strlen(bitstring), bitstring);
|
||||||
|
|
||||||
|
for (uint32_t i = 0; i < 8; i++) {
|
||||||
|
memcpy(&cbitstring[i * 8 + 0], &bitstring[i * 8 + 6], 2);
|
||||||
|
memcpy(&cbitstring[i * 8 + 2], &bitstring[i * 8 + 4], 2);
|
||||||
|
memcpy(&cbitstring[i * 8 + 4], &bitstring[i * 8 + 2], 2);
|
||||||
|
memcpy(&cbitstring[i * 8 + 6], &bitstring[i * 8 + 0], 2);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (verbose)
|
||||||
|
PrintAndLogEx(INFO, "TK17 bit string [%zu]: %s", strlen(cbitstring), cbitstring);
|
||||||
|
|
||||||
|
|
||||||
return strlen(bitstring) == 64;
|
return strlen(bitstring) == 64;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue