]> cvs.zerfleddert.de Git - proxmark3-svn/blobdiff - client/util.c
Add: Emv first part of commands
[proxmark3-svn] / client / util.c
index a1caafdbf9ec925561e905aa306785a5c453690d..92b0e7a6ab22dadd8160252f6364734b8c7a870d 100644 (file)
@@ -154,6 +154,28 @@ char *sprint_hex(const uint8_t *data, const size_t len) {
        return buf;
 }
 
+char *sprint_hex_inrow_ex(const uint8_t *data, const size_t len, const size_t min_str_len) {
+       
+       int maxLen = ( len > 1024/2) ? 1024/2 : len;
+       static char buf[1024] = {0};
+       char *tmp = buf;
+       size_t i;
+
+       for (i = 0; i < maxLen; ++i, tmp += 2)
+               sprintf(tmp, "%02x", (unsigned int) data[i]);
+       
+       i *= 2;
+       int minStrLen = min_str_len > i ? min_str_len : 0;
+       for(; i < minStrLen; i++, tmp += 1) 
+               sprintf(tmp, " ");
+
+       return buf;
+}
+
+char *sprint_hex_inrow(const uint8_t *data, const size_t len) {
+       return sprint_hex_inrow_ex(data, len, 0);
+}
+
 char *sprint_bin_break(const uint8_t *data, const size_t len, const uint8_t breaks) {
        // make sure we don't go beyond our char array memory
        int max_len;
@@ -210,7 +232,7 @@ char *sprint_hex_ascii(const uint8_t *data, const size_t len) {
        return buf;
 }
 
-char *sprint_ascii(const uint8_t *data, const size_t len) {
+char *sprint_ascii_ex(const uint8_t *data, const size_t len, const size_t min_str_len) {
        static char buf[1024];
        char *tmp = buf;
        memset(buf, 0x00, 1024);
@@ -221,9 +243,18 @@ char *sprint_ascii(const uint8_t *data, const size_t len) {
                tmp[i] = ((c < 32) || (c == 127)) ? '.' : c;
                ++i;
        }
+       
+       int minStrLen = min_str_len > i ? min_str_len : 0;
+       for(; i < minStrLen; ++i) 
+               tmp[i] = ' ';
+       
        return buf;
 }
 
+char *sprint_ascii(const uint8_t *data, const size_t len) {
+       return sprint_ascii_ex(data, len, 0);
+}
+
 void num_to_bytes(uint64_t n, size_t len, uint8_t* dest)
 {
        while (len--) {
@@ -498,8 +529,10 @@ int param_gethex_to_eol(const char *line, int paramnum, uint8_t * data, int maxd
        
        int indx = bg;
        while (line[indx]) {
-               if (line[indx] == '\t' || line[indx] == ' ') 
+               if (line[indx] == '\t' || line[indx] == ' ') {
+                       indx++;
                        continue;
+               }
                
                if (isxdigit(line[indx])) {
                        buf[strlen(buf) + 1] = 0x00;
Impressum, Datenschutz