From 20a0713441abc3ff9d5bc4c17cf2948308eec0ed Mon Sep 17 00:00:00 2001 From: mwalker33 <51802811+mwalker33@users.noreply.github.com> Date: Sat, 17 Aug 2024 13:41:16 +1000 Subject: [PATCH 1/3] Update cmdlfindala.c 25 But parity diz --- client/src/cmdlfindala.c | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/client/src/cmdlfindala.c b/client/src/cmdlfindala.c index 0b5c7bd0a..4571ffedf 100644 --- a/client/src/cmdlfindala.c +++ b/client/src/cmdlfindala.c @@ -1136,6 +1136,7 @@ int getIndalaBits(uint8_t fc, uint16_t cn, uint8_t *bits) { bits[51] = ((cn >> 8) & 1); // b9 - c bits[46] = ((cn >> 7) & 1); // b8 bits[33] = ((cn >> 6) & 1); // b7 - c + // bits[61] = ((cn >> 6) & 1); // b7 - c bits[37] = ((cn >> 5) & 1); // b6 - c bits[54] = ((cn >> 4) & 1); // b5 bits[56] = ((cn >> 3) & 1); // b4 @@ -1164,11 +1165,25 @@ int getIndalaBits(uint8_t fc, uint16_t cn, uint8_t *bits) { } // add parity - bits[34] = 1; // p1 64 - 30 = 34 - bits[38] = 1; // p2 68 - 30 = 38 + // bits[34] = 1; // p1 64 - 30 = 34 + // bits[38] = 1; // p2 68 - 30 = 38 // 92 = 62 // 93 = 63 + + bits[34] = 0; // parity for odd bits + bits[38] = 0; // parity for even bits + uint8_t p1 = 1; + uint8_t p2 = 1; + + for (int i=33; i < 64; i++) { + if (i%2) + p1 ^= bits[i]; + else + p2 ^= bits[i]; + } + bits[34] = p1; // parity for odd bits + bits[38] = p2; // parity for even bits return PM3_SUCCESS; } From 059b657156edade40d52b073070e7643f5190143 Mon Sep 17 00:00:00 2001 From: mwalker33 <51802811+mwalker33@users.noreply.github.com> Date: Sat, 17 Aug 2024 13:47:23 +1000 Subject: [PATCH 2/3] Update cmdlfindala.c --- client/src/cmdlfindala.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/client/src/cmdlfindala.c b/client/src/cmdlfindala.c index 4571ffedf..049c8c24f 100644 --- a/client/src/cmdlfindala.c +++ b/client/src/cmdlfindala.c @@ -1175,7 +1175,7 @@ int getIndalaBits(uint8_t fc, uint16_t cn, uint8_t *bits) { bits[38] = 0; // parity for even bits uint8_t p1 = 1; uint8_t p2 = 1; - + for (int i=33; i < 64; i++) { if (i%2) p1 ^= bits[i]; From e705c3424757b2e1bfb0ee228d254d9a9381e954 Mon Sep 17 00:00:00 2001 From: mwalker33 <51802811+mwalker33@users.noreply.github.com> Date: Sat, 17 Aug 2024 13:49:22 +1000 Subject: [PATCH 3/3] Update cmdlfindala.c cleanup --- client/src/cmdlfindala.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/client/src/cmdlfindala.c b/client/src/cmdlfindala.c index 049c8c24f..d0c9557d9 100644 --- a/client/src/cmdlfindala.c +++ b/client/src/cmdlfindala.c @@ -1136,7 +1136,6 @@ int getIndalaBits(uint8_t fc, uint16_t cn, uint8_t *bits) { bits[51] = ((cn >> 8) & 1); // b9 - c bits[46] = ((cn >> 7) & 1); // b8 bits[33] = ((cn >> 6) & 1); // b7 - c - // bits[61] = ((cn >> 6) & 1); // b7 - c bits[37] = ((cn >> 5) & 1); // b6 - c bits[54] = ((cn >> 4) & 1); // b5 bits[56] = ((cn >> 3) & 1); // b4 @@ -1182,6 +1181,7 @@ int getIndalaBits(uint8_t fc, uint16_t cn, uint8_t *bits) { else p2 ^= bits[i]; } + bits[34] = p1; // parity for odd bits bits[38] = p2; // parity for even bits