summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--openpicc/application/iso14443a_diffmiller.c9
1 files changed, 5 insertions, 4 deletions
diff --git a/openpicc/application/iso14443a_diffmiller.c b/openpicc/application/iso14443a_diffmiller.c
index e6eb6d8..97017f7 100644
--- a/openpicc/application/iso14443a_diffmiller.c
+++ b/openpicc/application/iso14443a_diffmiller.c
@@ -191,13 +191,14 @@ static inline void end_frame(struct diffmiller_state * const state, const u_int3
#define DO_BIT_1 { \
last_data_bit = 1; \
- if(++counter==9) { \
- append_to_frame(state, state->byte, 1, 8); \
- counter=state->byte=state->parity=0; \
- } else { \
+ if(counter<8) { \
state->byte |= (1<<counter); \
state->parity ^= 1; \
} \
+ if(++counter==9) { \
+ append_to_frame(state, state->byte, 1, 8); \
+ counter=state->byte=state->parity=0; \
+ } \
PRINT_BIT(" 1"); \
}
personal git repositories of Harald Welte. Your mileage may vary