Fix on AID selection. It should support shorter AID if matches.
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es>
This commit is contained in:
parent
711a4df490
commit
2d72a157d5
1 changed files with 4 additions and 4 deletions
|
|
@ -58,7 +58,7 @@ const uint8_t *ccid_atr = NULL;
|
|||
|
||||
bool app_exists(const uint8_t *aid, size_t aid_len) {
|
||||
for (int a = 0; a < num_apps; a++) {
|
||||
if (apps[a].aid[0] == aid_len && !memcmp(apps[a].aid + 1, aid, MIN(aid_len, apps[a].aid[0]))) {
|
||||
if (!memcmp(apps[a].aid + 1, aid, apps[a].aid[0])) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
|
@ -79,14 +79,14 @@ int register_app(int (*select_aid)(app_t *, uint8_t), const uint8_t *aid) {
|
|||
}
|
||||
|
||||
int select_app(const uint8_t *aid, size_t aid_len) {
|
||||
if (current_app && current_app->aid && current_app->aid[0] == aid_len && (current_app->aid + 1 == aid || !memcmp(current_app->aid + 1, aid, MIN(current_app->aid[0], aid_len)))) {
|
||||
if (current_app && current_app->aid && (current_app->aid + 1 == aid || !memcmp(current_app->aid + 1, aid, current_app->aid[0]))) {
|
||||
current_app->select_aid(current_app, 0);
|
||||
return PICOKEY_OK;
|
||||
}
|
||||
for (int a = 0; a < num_apps; a++) {
|
||||
if (apps[a].aid[0] == aid_len && !memcmp(apps[a].aid + 1, aid, MIN(aid_len, apps[a].aid[0]))) {
|
||||
if (!memcmp(apps[a].aid + 1, aid, apps[a].aid[0])) {
|
||||
if (current_app) {
|
||||
if (current_app->aid && !memcmp(current_app->aid + 1, aid, MIN(current_app->aid[0], aid_len))) {
|
||||
if (current_app->aid && !memcmp(current_app->aid + 1, aid, current_app->aid[0])) {
|
||||
current_app->select_aid(current_app, 1);
|
||||
return PICOKEY_OK;
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue