mirror of
https://github.com/RfidResearchGroup/proxmark3.git
synced 2026-05-12 11:18:11 -07:00
hitag2crack refactor
This commit is contained in:
@@ -6,26 +6,6 @@
|
||||
|
||||
//#if FORCE_HITAG2_FULL == 0
|
||||
|
||||
uint32_t hitag2_crypt(uint64_t x) {
|
||||
const uint32_t ht2_function4a = 0x2C79; // 0010 1100 0111 1001
|
||||
const uint32_t ht2_function4b = 0x6671; // 0110 0110 0111 0001
|
||||
const uint32_t ht2_function5c = 0x7907287B; // 0111 1001 0000 0111 0010 1000 0111 1011
|
||||
|
||||
uint32_t bitindex;
|
||||
|
||||
bitindex = (ht2_function4a >> pickbits2_2(x, 1, 4)) & 1;
|
||||
bitindex |= ((ht2_function4b << 1) >> pickbits1_1_2(x, 7, 11, 13)) & 0x02;
|
||||
bitindex |= ((ht2_function4b << 2) >> pickbits1x4(x, 16, 20, 22, 25)) & 0x04;
|
||||
bitindex |= ((ht2_function4b << 3) >> pickbits2_1_1(x, 27, 30, 32)) & 0x08;
|
||||
bitindex |= ((ht2_function4a << 4) >> pickbits1_2_1(x, 33, 42, 45)) & 0x10;
|
||||
|
||||
#if defined(DEBUG_HITAG2) && DEBUG_HITAG2 == 1
|
||||
printf("hitag2_crypt bitindex = %02x\n", bitindex);
|
||||
#endif
|
||||
|
||||
return (ht2_function5c >> bitindex) & 1;
|
||||
}
|
||||
|
||||
// try state
|
||||
|
||||
// todo, changes arguments, only what is needed
|
||||
|
||||
@@ -34,8 +34,6 @@
|
||||
#define pickbits2_1_1(S, A, B, C) ( ((S >> A) & 3) | ((S >> (B - 2)) & 4) | ((S >> (C - 3)) & 8) )
|
||||
#define pickbits1_2_1(S, A, B, C) ( ((S >> A) & 1) | ((S >> (B - 1)) & 6) | ((S >> (C - 3)) & 8) )
|
||||
|
||||
uint32_t hitag2_crypt(uint64_t x);
|
||||
|
||||
// try_state
|
||||
bool try_state(uint64_t s, uint32_t uid, uint32_t aR2, uint32_t nR1, uint32_t nR2, uint64_t *key);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user