X-Git-Url: http://git.zerfleddert.de/cgi-bin/gitweb.cgi/proxmark3-svn/blobdiff_plain/58a0fa747eab16c1997da619c2994a9cda640b00..refs/heads/graphwork:/armsrc/crypto1.c diff --git a/armsrc/crypto1.c b/armsrc/crypto1.c index 9d103c7f..3d56fab4 100644 --- a/armsrc/crypto1.c +++ b/armsrc/crypto1.c @@ -52,6 +52,7 @@ uint8_t crypto1_bit(struct Crypto1State *s, uint8_t in, int is_encrypted) { uint32_t feedin; uint8_t ret = filter(s->odd); + uint32_t tmp; feedin = ret & !!is_encrypted; feedin ^= !!in; @@ -59,7 +60,9 @@ uint8_t crypto1_bit(struct Crypto1State *s, uint8_t in, int is_encrypted) feedin ^= LF_POLY_EVEN & s->even; s->even = s->even << 1 | parity(feedin); - s->odd ^= (s->odd ^= s->even, s->even ^= s->odd); + tmp = s->odd; + s->odd = s->even; + s->even = tmp; return ret; }