FreeCalypso > hg > freecalypso-hwlab
annotate uicc/hexdump.c @ 151:d515cfbb3f39
fc-simtool: hex string parsing: add minimum length parameter
| author | Mychaela Falconia <falcon@freecalypso.org> | 
|---|---|
| date | Sun, 07 Feb 2021 00:18:30 +0000 | 
| parents | f691a19f191d | 
| children | 
| rev | line source | 
|---|---|
| 130 
f691a19f191d
fc-uicc-tool skeleton started
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1 #include <sys/types.h> | 
| 
f691a19f191d
fc-uicc-tool skeleton started
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 2 #include <stdio.h> | 
| 
f691a19f191d
fc-uicc-tool skeleton started
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 3 #include <stdlib.h> | 
| 
f691a19f191d
fc-uicc-tool skeleton started
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 4 #include <pcsclite.h> | 
| 
f691a19f191d
fc-uicc-tool skeleton started
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 5 #include <winscard.h> | 
| 
f691a19f191d
fc-uicc-tool skeleton started
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 6 #include "globals.h" | 
| 
f691a19f191d
fc-uicc-tool skeleton started
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 7 | 
| 
f691a19f191d
fc-uicc-tool skeleton started
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 8 display_sim_resp_in_hex() | 
| 
f691a19f191d
fc-uicc-tool skeleton started
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 9 { | 
| 
f691a19f191d
fc-uicc-tool skeleton started
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 10 unsigned off, cc, n, c; | 
| 
f691a19f191d
fc-uicc-tool skeleton started
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 11 | 
| 
f691a19f191d
fc-uicc-tool skeleton started
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 12 for (off = 0; off < sim_resp_data_len; off += cc) { | 
| 
f691a19f191d
fc-uicc-tool skeleton started
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 13 printf("%02X:", off); | 
| 
f691a19f191d
fc-uicc-tool skeleton started
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 14 cc = 16; | 
| 
f691a19f191d
fc-uicc-tool skeleton started
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 15 if (sim_resp_data_len - off < cc) | 
| 
f691a19f191d
fc-uicc-tool skeleton started
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 16 cc = sim_resp_data_len - off; | 
| 
f691a19f191d
fc-uicc-tool skeleton started
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 17 for (n = 0; n < 16; n++) { | 
| 
f691a19f191d
fc-uicc-tool skeleton started
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 18 if (n == 0 || n == 8) | 
| 
f691a19f191d
fc-uicc-tool skeleton started
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 19 putchar(' '); | 
| 
f691a19f191d
fc-uicc-tool skeleton started
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 20 putchar(' '); | 
| 
f691a19f191d
fc-uicc-tool skeleton started
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 21 if (n < cc) | 
| 
f691a19f191d
fc-uicc-tool skeleton started
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 22 printf("%02X", sim_resp_data[off + n]); | 
| 
f691a19f191d
fc-uicc-tool skeleton started
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 23 else { | 
| 
f691a19f191d
fc-uicc-tool skeleton started
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 24 putchar(' '); | 
| 
f691a19f191d
fc-uicc-tool skeleton started
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 25 putchar(' '); | 
| 
f691a19f191d
fc-uicc-tool skeleton started
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 26 } | 
| 
f691a19f191d
fc-uicc-tool skeleton started
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 27 } | 
| 
f691a19f191d
fc-uicc-tool skeleton started
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 28 putchar(' '); | 
| 
f691a19f191d
fc-uicc-tool skeleton started
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 29 putchar(' '); | 
| 
f691a19f191d
fc-uicc-tool skeleton started
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 30 for (n = 0; n < cc; n++) { | 
| 
f691a19f191d
fc-uicc-tool skeleton started
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 31 c = sim_resp_data[off + n]; | 
| 
f691a19f191d
fc-uicc-tool skeleton started
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 32 if (c < 0x20 || c > 0x7E) | 
| 
f691a19f191d
fc-uicc-tool skeleton started
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 33 c = '.'; | 
| 
f691a19f191d
fc-uicc-tool skeleton started
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 34 putchar(c); | 
| 
f691a19f191d
fc-uicc-tool skeleton started
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 35 } | 
| 
f691a19f191d
fc-uicc-tool skeleton started
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 36 putchar('\n'); | 
| 
f691a19f191d
fc-uicc-tool skeleton started
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 37 } | 
| 
f691a19f191d
fc-uicc-tool skeleton started
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 38 return(0); | 
| 
f691a19f191d
fc-uicc-tool skeleton started
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 39 } | 
