From: iceman1001 Date: Thu, 28 Jul 2016 18:41:54 +0000 (+0200) Subject: Merge branch 'master' of https://github.com/iceman1001/proxmark3 X-Git-Url: http://cvs.zerfleddert.de/cgi-bin/gitweb.cgi/proxmark3-svn/commitdiff_plain/4ccdc189bdf814137a8023397f7bf89b707b0465?hp=b82c2f85e457f361b119d21a31f3263ac3489cc8 Merge branch 'master' of https://github.com/iceman1001/proxmark3 --- diff --git a/client/nonce2key/crypto1_bs.c b/client/nonce2key/crypto1_bs.c index 9a0272dd..7fd1b715 100644 --- a/client/nonce2key/crypto1_bs.c +++ b/client/nonce2key/crypto1_bs.c @@ -80,7 +80,9 @@ inline const bitslice_value_t crypto1_bs_lfsr_rollback(const bitslice_value_t in // note that bytes are sliced and unsliced with reversed endianness inline void crypto1_bs_convert_states(bitslice_t bitsliced_states[], state_t regular_states[]){ size_t bit_idx = 0, slice_idx = 0; - state_t values[MAX_BITSLICES] = {{0x00}}; + state_t values[MAX_BITSLICES]; + memset(values, 0x0, sizeof(values)); + for(slice_idx = 0; slice_idx < MAX_BITSLICES; slice_idx++){ for(bit_idx = 0; bit_idx < STATE_SIZE; bit_idx++){ bool bit = get_vector_bit(slice_idx, bitsliced_states[bit_idx]); @@ -90,7 +92,8 @@ inline void crypto1_bs_convert_states(bitslice_t bitsliced_states[], state_t reg // swap endianness values[slice_idx].value = rev_state_t(values[slice_idx].value); // roll off unused bits - values[slice_idx].value >>= ((sizeof(state_t)*8)-STATE_SIZE); + //values[slice_idx].value >>= ((sizeof(state_t)*8)-STATE_SIZE); // - 48 + values[slice_idx].value >>= 16; } memcpy(regular_states, values, sizeof(values)); } diff --git a/client/util.c b/client/util.c index 99a26a40..4bbc992e 100644 --- a/client/util.c +++ b/client/util.c @@ -186,19 +186,16 @@ char *sprint_hex_ascii(const uint8_t *data, const size_t len) { return buf; } -void num_to_bytes(uint64_t n, size_t len, uint8_t* dest) -{ +void num_to_bytes(uint64_t n, size_t len, uint8_t* dest) { while (len--) { dest[len] = (uint8_t) n; n >>= 8; } } -uint64_t bytes_to_num(uint8_t* src, size_t len) -{ +uint64_t bytes_to_num(uint8_t* src, size_t len) { uint64_t num = 0; - while (len--) - { + while (len--) { num = (num << 8) | (*src); src++; } @@ -212,6 +209,7 @@ void num_to_bytebits(uint64_t n, size_t len, uint8_t *dest) { n >>= 1; } } + //least significant bit first void num_to_bytebitsLSBF(uint64_t n, size_t len, uint8_t *dest) { for(int i = 0 ; i < len ; ++i) { @@ -220,7 +218,6 @@ void num_to_bytebitsLSBF(uint64_t n, size_t len, uint8_t *dest) { } } - // aa,bb,cc,dd,ee,ff,gg,hh, ii,jj,kk,ll,mm,nn,oo,pp // to // hh,gg,ff,ee,dd,cc,bb,aa, pp,oo,nn,mm,ll,kk,jj,ii @@ -549,6 +546,7 @@ void rol(uint8_t *data, const size_t len){ } // Swap bit order on a uint32_t value. Can be limited by nrbits just use say 8bits reversal +// And clears the rest of the bits. uint32_t SwapBits(uint32_t value, int nrbits) { uint32_t newvalue = 0; for(int i = 0; i < nrbits; i++) {