Added support for reading binary data.

Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es>
This commit is contained in:
Pol Henarejos 2022-04-05 18:07:20 +02:00
parent 6bc081a1e1
commit 24b1d6807b
No known key found for this signature in database
GPG Key ID: C0095B7870A4CCD3
2 changed files with 18 additions and 23 deletions

View File

@ -262,19 +262,8 @@ void scan_flash() {
file_t *file = (file_t *)search_by_fid(fid, NULL, SPECIFY_EF);
if (!file) {
file = file_new(fid);
if ((fid & 0xff00) == (KEY_PREFIX << 8)) {
//add_file_to_chain(file, &ef_kf);
}
else if ((fid & 0xff00) == (PRKD_PREFIX << 8)) {
//add_file_to_chain(file, &ef_prkdf);
}
else if ((fid & 0xff00) == (CD_PREFIX << 8)) {
//add_file_to_chain(file, &ef_cdf);
}
else if ((fid & 0xff00) == (EE_CERTIFICATE_PREFIX << 8)) {
//add_file_to_chain(file, &ef_pukdf);
}
else {
uint8_t pfx = fid >> 8;
if (pfx != KEY_PREFIX && pfx != PRKD_PREFIX && pfx != CD_PREFIX && pfx != EE_CERTIFICATE_PREFIX && pfx != DCOD_PREFIX && pfx != PROT_DATA_PREFIX && pfx != DATA_PREFIX) {
TU_LOG1("SCAN FOUND ORPHAN FILE: %x\r\n",fid);
continue;
}

View File

@ -117,16 +117,14 @@ static int cmd_select() {
//if ((fid & 0xff00) == (KEY_PREFIX << 8))
// fid = (PRKD_PREFIX << 8) | (fid & 0xff);
if ((fid & 0xff00) == (PRKD_PREFIX << 8)) {
if (!(pe = search_dynamic_file(fid)))
return SW_FILE_NOT_FOUND();
}
else if ((fid & 0xff00) == (CD_PREFIX << 8)) {
if (!(pe = search_dynamic_file(fid)))
return SW_FILE_NOT_FOUND();
}
else if ((fid & 0xff00) == (EE_CERTIFICATE_PREFIX << 8)) {
uint8_t pfx = fid >> 8;
if (pfx == PRKD_PREFIX ||
pfx == CD_PREFIX ||
pfx == EE_CERTIFICATE_PREFIX ||
pfx == DCOD_PREFIX ||
pfx == DATA_PREFIX ||
pfx == PROT_DATA_PREFIX) {
if (!(pe = search_dynamic_file(fid)))
return SW_FILE_NOT_FOUND();
}
@ -297,6 +295,14 @@ static int cmd_list_keys()
res_APDU[res_APDU_size++] = f->fid & 0xff;
}
}
for (int i = 0; i < dynamic_files; i++) {
file_t *f = &dynamic_file[i];
if ((f->fid & 0xff00) == (DCOD_PREFIX << 8)) {
res_APDU[res_APDU_size++] = DCOD_PREFIX;
res_APDU[res_APDU_size++] = f->fid & 0xff;
}
}
return SW_OK();
}