FreeCalypso > hg > fc-pcsc-tools
comparison simtool/chv.c @ 166:febcbc6082df
fc-simtool: repeatable {dis,en}able-pin1-rpt commands implemented
author | Mychaela Falconia <falcon@freecalypso.org> |
---|---|
date | Fri, 26 Feb 2021 23:18:29 +0000 |
parents | 32d6186668cf |
children | afd6a805c518 |
comparison
equal
deleted
inserted
replaced
165:8a5c132fe871 | 166:febcbc6082df |
---|---|
103 return(-1); | 103 return(-1); |
104 } | 104 } |
105 return(0); | 105 return(0); |
106 } | 106 } |
107 | 107 |
108 cmd_disable_chv1_rpt(argc, argv) | |
109 char **argv; | |
110 { | |
111 u_char cmd[13]; | |
112 int rc; | |
113 | |
114 /* DISABLE CHV command APDU */ | |
115 cmd[0] = 0xA0; | |
116 cmd[1] = 0x26; | |
117 cmd[2] = 0x00; | |
118 cmd[3] = 0x01; | |
119 cmd[4] = 8; | |
120 rc = encode_pin_entry(argv[1], cmd + 5); | |
121 if (rc < 0) | |
122 return(rc); | |
123 rc = apdu_exchange(cmd, 13); | |
124 if (rc < 0) | |
125 return(rc); | |
126 if (sim_resp_sw != 0x9000 && sim_resp_sw != 0x9808) { | |
127 fprintf(stderr, "bad SW response: %04X\n", sim_resp_sw); | |
128 return(-1); | |
129 } | |
130 return(0); | |
131 } | |
132 | |
108 cmd_enable_chv(argc, argv) | 133 cmd_enable_chv(argc, argv) |
109 char **argv; | 134 char **argv; |
110 { | 135 { |
111 u_char cmd[13]; | 136 u_char cmd[13]; |
112 int rc; | 137 int rc; |
122 return(rc); | 147 return(rc); |
123 rc = apdu_exchange(cmd, 13); | 148 rc = apdu_exchange(cmd, 13); |
124 if (rc < 0) | 149 if (rc < 0) |
125 return(rc); | 150 return(rc); |
126 if (sim_resp_sw != 0x9000) { | 151 if (sim_resp_sw != 0x9000) { |
152 fprintf(stderr, "bad SW response: %04X\n", sim_resp_sw); | |
153 return(-1); | |
154 } | |
155 return(0); | |
156 } | |
157 | |
158 cmd_enable_chv1_rpt(argc, argv) | |
159 char **argv; | |
160 { | |
161 u_char cmd[13]; | |
162 int rc; | |
163 | |
164 /* ENABLE CHV command APDU */ | |
165 cmd[0] = 0xA0; | |
166 cmd[1] = 0x28; | |
167 cmd[2] = 0x00; | |
168 cmd[3] = 0x01; | |
169 cmd[4] = 8; | |
170 rc = encode_pin_entry(argv[1], cmd + 5); | |
171 if (rc < 0) | |
172 return(rc); | |
173 rc = apdu_exchange(cmd, 13); | |
174 if (rc < 0) | |
175 return(rc); | |
176 if (sim_resp_sw != 0x9000 && sim_resp_sw != 0x9808) { | |
127 fprintf(stderr, "bad SW response: %04X\n", sim_resp_sw); | 177 fprintf(stderr, "bad SW response: %04X\n", sim_resp_sw); |
128 return(-1); | 178 return(-1); |
129 } | 179 } |
130 return(0); | 180 return(0); |
131 } | 181 } |