FreeCalypso > hg > fc-pcsc-tools
comparison simtool/stktest.c @ 144:60411fd4b803
simtool code: cmd_get_response() factored out of stktest.c
author | Mychaela Falconia <falcon@freecalypso.org> |
---|---|
date | Thu, 25 Feb 2021 05:44:27 +0000 |
parents | a1aa8ee2da85 |
children |
comparison
equal
deleted
inserted
replaced
143:be1a759453ef | 144:60411fd4b803 |
---|---|
77 if (rc < 0) | 77 if (rc < 0) |
78 return(rc); | 78 return(rc); |
79 printf("%04X\n", sim_resp_sw); | 79 printf("%04X\n", sim_resp_sw); |
80 return(0); | 80 return(0); |
81 } | 81 } |
82 | |
83 cmd_get_response(argc, argv, outf) | |
84 char **argv; | |
85 FILE *outf; | |
86 { | |
87 u_char cmd[5]; | |
88 int rc; | |
89 unsigned len; | |
90 | |
91 len = strtoul(argv[1], 0, 0); | |
92 if (len < 1 || len > 256) { | |
93 fprintf(stderr, "error: length argument is out of range\n"); | |
94 return(-1); | |
95 } | |
96 /* GET RESPONSE command APDU */ | |
97 cmd[0] = 0xA0; | |
98 cmd[1] = 0xC0; | |
99 cmd[2] = 0; | |
100 cmd[3] = 0; | |
101 cmd[4] = len; | |
102 rc = apdu_exchange(cmd, 5); | |
103 if (rc < 0) | |
104 return(rc); | |
105 if (sim_resp_sw != 0x9000) { | |
106 fprintf(stderr, "bad SW resp to GET RESPONSE: %04X\n", | |
107 sim_resp_sw); | |
108 return(-1); | |
109 } | |
110 display_sim_resp_in_hex(outf); | |
111 return(0); | |
112 } |