2 * libopenemv - a library to work with EMV family of smart cards
3 * Copyright (C) 2015 Dmitry Eremin-Solenikov
5 * This library is free software; you can redistribute it and/or
6 * modify it under the terms of the GNU Lesser General Public
7 * License as published by the Free Software Foundation; either
8 * version 2.1 of the License, or (at your option) any later version.
10 * This library is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13 * Lesser General Public License for more details.
24 #define PRINT_INDENT(level) {for (int i = 0; i < (level); i++) fprintf(f, "\t");}
26 void dump_buffer_simple(const unsigned char *ptr
, size_t len
, FILE *f
)
33 for (i
= 0; i
< len
; i
++)
34 fprintf(f
, "%s%02hhX", i
? " " : "", ptr
[i
]);
37 void dump_buffer(const unsigned char *ptr
, size_t len
, FILE *f
, int level
)
44 for (i
= 0; i
< len
; i
+= 16) {
46 fprintf(f
, "\t%02x:", i
);
47 for (j
= 0; j
< 16; j
++) {
49 fprintf(f
, " %02hhx", ptr
[i
+ j
]);
54 for (j
= 0; j
< 16 && i
+ j
< len
; j
++) {
55 fprintf(f
, "%c", (ptr
[i
+j
] >= 0x20 && ptr
[i
+j
] < 0x7f) ? ptr
[i
+j
] : '.' );