X-Git-Url: http://cvs.zerfleddert.de/cgi-bin/gitweb.cgi/proxmark3-svn/blobdiff_plain/e0c635d19c58423d88ae698788a31c865e5554ab..f6c18637ca504d2eea0bc3accaabddd132d749fb:/client/util.c diff --git a/client/util.c b/client/util.c index 0673f181..1ebfebea 100644 --- a/client/util.c +++ b/client/util.c @@ -10,9 +10,10 @@ #include "util.h" -#ifndef WIN32 +#ifndef _WIN32 #include #include + int ukbhit(void) { int cnt = 0; @@ -112,6 +113,17 @@ char * sprint_hex(const uint8_t * data, const size_t len) { return buf; } +char * sprint_bin(const uint8_t * data, const size_t len) { + static char buf[1024]; + char * tmp = buf; + size_t i; + + for (i=0; i < len && i < 1024; i++, tmp++) + sprintf(tmp, "%u", data[i]); + + return buf; +} + void num_to_bytes(uint64_t n, size_t len, uint8_t* dest) { while (len--) { @@ -131,6 +143,28 @@ uint64_t bytes_to_num(uint8_t* src, size_t len) return num; } +//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; +} + // ------------------------------------------------------------------------- // string parameters lib // ------------------------------------------------------------------------- @@ -188,7 +222,7 @@ uint8_t param_get8ex(const char *line, int paramnum, int deflt, int base) int bg, en; if (!param_getptr(line, &bg, &en, paramnum)) - return strtol(&line[bg], NULL, base) & 0xff; + return strtoul(&line[bg], NULL, base) & 0xff; else return deflt; } @@ -198,7 +232,7 @@ uint32_t param_get32ex(const char *line, int paramnum, int deflt, int base) int bg, en; if (!param_getptr(line, &bg, &en, paramnum)) - return strtol(&line[bg], NULL, base); + return strtoul(&line[bg], NULL, base); else return deflt; } @@ -208,7 +242,7 @@ uint64_t param_get64ex(const char *line, int paramnum, int deflt, int base) int bg, en; if (!param_getptr(line, &bg, &en, paramnum)) - return strtoll(&line[bg], NULL, base); + return strtoull(&line[bg], NULL, base); else return deflt;