X-Git-Url: https://git.zerfleddert.de/cgi-bin/gitweb.cgi/proxmark3-svn/blobdiff_plain/254687260c3f8262de56ec93ff089d06d083483e..refs/pull/165/head:/client/util.c diff --git a/client/util.c b/client/util.c index 32c06e91..e5cbc4aa 100644 --- a/client/util.c +++ b/client/util.c @@ -23,7 +23,7 @@ int ukbhit(void) static struct termios Otty, Ntty; - tcgetattr( 0, &Otty); + if ( tcgetattr( 0, &Otty) == -1 ) return -1; Ntty = Otty; Ntty.c_iflag = 0; /* input mode */ @@ -140,8 +140,9 @@ char *sprint_bin_break(const uint8_t *data, const size_t len, const uint8_t brea size_t in_index = 0; // loop through the out_index to make sure we don't go too far for (size_t out_index=0; out_index < max_len; out_index++) { - // set character - sprintf(tmp++, "%u", data[in_index]); + // set character - (should be binary but verify it isn't more than 1 digit) + if (data[in_index]<10) + sprintf(tmp++, "%u", data[in_index]); // 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 @@ -497,3 +498,13 @@ void xor(unsigned char *dst, unsigned char *src, size_t len) { int32_t le24toh (uint8_t data[3]) { return (data[2] << 16) | (data[1] << 8) | data[0]; } + +// RotateLeft - Ultralight, Desfire, works on byte level +// 00-01-02 >> 01-02-00 +void rol(uint8_t *data, const size_t len){ + uint8_t first = data[0]; + for (size_t i = 0; i < len-1; i++) { + data[i] = data[i+1]; + } + data[len-1] = first; +}