X-Git-Url: https://git.zerfleddert.de/cgi-bin/gitweb.cgi/proxmark3-svn/blobdiff_plain/0c97a4562dfc38dbda89277434b077d084e21588..b64712d7f9fdbdd5ebc41f1babc162045f9d943a:/client/util.c diff --git a/client/util.c b/client/util.c index 29914667..a3672130 100644 --- a/client/util.c +++ b/client/util.c @@ -140,7 +140,7 @@ char *sprint_bin_break(const uint8_t *data, const size_t len, const uint8_t brea for (size_t out_index=0; out_index < max_len; out_index++) { // set character sprintf(tmp++, "%u", data[in_index]); - // check if a line break is needed + // check if a line break is needed and we have room to print it in our array if ( (breaks > 0) && !((in_index+1) % breaks) && (out_index+1 != max_len) ) { // increment and print line break out_index++; @@ -159,6 +159,8 @@ char *sprint_bin(const uint8_t *data, const size_t len) { char *sprint_hex_ascii(const uint8_t *data, const size_t len) { static char buf[1024]; memset(buf, 0x00, 1024); + char *tmp = buf; + sprintf(tmp, "%s| %s", sprint_hex(data, len) , data); return buf; } void num_to_bytes(uint64_t n, size_t len, uint8_t* dest) @@ -192,7 +194,6 @@ void num_to_bytebits(uint64_t n, size_t len, uint8_t *dest) { // hh,gg,ff,ee,dd,cc,bb,aa, pp,oo,nn,mm,ll,kk,jj,ii // up to 64 bytes or 512 bits uint8_t *SwapEndian64(const uint8_t *src, const size_t len, const uint8_t blockSize){ - //static uint8_t buf[64]; uint8_t buf[64]; memset(buf, 0x00, 64); uint8_t *tmp = buf; @@ -204,28 +205,15 @@ uint8_t *SwapEndian64(const uint8_t *src, const size_t len, const uint8_t blockS return tmp; } -//assumes little endian -char * printBits(size_t const size, void const * const ptr) -{ - unsigned char *b = (unsigned char*) ptr; - unsigned char byte; - static char buf[1024]; - char * tmp = buf; - int i, j; - - for (i=size-1;i>=0;i--) - { - for (j=7;j>=0;j--) - { - byte = b[i] & (1<>= j; - sprintf(tmp, "%u", byte); - tmp++; - } - } - return buf; +void SwapEndian64ex(const uint8_t *src, const size_t len, const uint8_t blockSize, uint8_t *dest){ + for (uint8_t block=0; block < (uint8_t)(len/blockSize); block++){ + for (size_t i = 0; i < blockSize; i++){ + dest[i+(blockSize*block)] = src[(blockSize-1-i)+(blockSize*block)]; + } + } } + // ------------------------------------------------------------------------- // string parameters lib // ------------------------------------------------------------------------- @@ -344,13 +332,11 @@ int param_gethex(const char *line, int paramnum, uint8_t * data, int hexcnt) { int bg, en, temp, i; - if (hexcnt % 2) - return 1; + if (hexcnt & 1) return 1; if (param_getptr(line, &bg, &en, paramnum)) return 1; - if (en - bg + 1 != hexcnt) - return 1; + if (en - bg + 1 != hexcnt) return 1; for(i = 0; i < hexcnt; i += 2) { if (!(isxdigit(line[bg + i]) && isxdigit(line[bg + i + 1])) ) return 1;