mirror of
https://github.com/polhenarejos/pico-keys-sdk
synced 2026-06-18 20:35:57 +02:00
An app can be selected even if there is another selected previously.
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es>
This commit is contained in:
@@ -26,15 +26,14 @@ extern uint32_t timeout;
|
|||||||
|
|
||||||
int process_apdu() {
|
int process_apdu() {
|
||||||
led_set_blink(BLINK_PROCESSING);
|
led_set_blink(BLINK_PROCESSING);
|
||||||
if (!current_app)
|
|
||||||
{
|
|
||||||
if (INS(apdu) == 0xA4 && P1(apdu) == 0x04 && (P2(apdu) == 0x00 || P2(apdu) == 0x4)) { //select by AID
|
if (INS(apdu) == 0xA4 && P1(apdu) == 0x04 && (P2(apdu) == 0x00 || P2(apdu) == 0x4)) { //select by AID
|
||||||
|
if (current_app && current_app->unload)
|
||||||
|
current_app->unload();
|
||||||
for (int a = 0; a < num_apps; a++) {
|
for (int a = 0; a < num_apps; a++) {
|
||||||
if ((current_app = apps[a].select_aid(&apps[a], apdu.data, apdu.nc))) {
|
if ((current_app = apps[a].select_aid(&apps[a], apdu.data, apdu.nc))) {
|
||||||
return set_res_sw(0x90,0x00);
|
return set_res_sw(0x90,0x00);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
return set_res_sw(0x6a, 0x82);
|
return set_res_sw(0x6a, 0x82);
|
||||||
}
|
}
|
||||||
if (current_app->process_apdu)
|
if (current_app->process_apdu)
|
||||||
|
|||||||
Reference in New Issue
Block a user