Added support for reading binary data.
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es>
This commit is contained in:
@@ -262,19 +262,8 @@ void scan_flash() {
|
|||||||
file_t *file = (file_t *)search_by_fid(fid, NULL, SPECIFY_EF);
|
file_t *file = (file_t *)search_by_fid(fid, NULL, SPECIFY_EF);
|
||||||
if (!file) {
|
if (!file) {
|
||||||
file = file_new(fid);
|
file = file_new(fid);
|
||||||
if ((fid & 0xff00) == (KEY_PREFIX << 8)) {
|
uint8_t pfx = fid >> 8;
|
||||||
//add_file_to_chain(file, &ef_kf);
|
if (pfx != KEY_PREFIX && pfx != PRKD_PREFIX && pfx != CD_PREFIX && pfx != EE_CERTIFICATE_PREFIX && pfx != DCOD_PREFIX && pfx != PROT_DATA_PREFIX && pfx != DATA_PREFIX) {
|
||||||
}
|
|
||||||
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 {
|
|
||||||
TU_LOG1("SCAN FOUND ORPHAN FILE: %x\r\n",fid);
|
TU_LOG1("SCAN FOUND ORPHAN FILE: %x\r\n",fid);
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -118,15 +118,13 @@ static int cmd_select() {
|
|||||||
//if ((fid & 0xff00) == (KEY_PREFIX << 8))
|
//if ((fid & 0xff00) == (KEY_PREFIX << 8))
|
||||||
// fid = (PRKD_PREFIX << 8) | (fid & 0xff);
|
// fid = (PRKD_PREFIX << 8) | (fid & 0xff);
|
||||||
|
|
||||||
if ((fid & 0xff00) == (PRKD_PREFIX << 8)) {
|
uint8_t pfx = fid >> 8;
|
||||||
if (!(pe = search_dynamic_file(fid)))
|
if (pfx == PRKD_PREFIX ||
|
||||||
return SW_FILE_NOT_FOUND();
|
pfx == CD_PREFIX ||
|
||||||
}
|
pfx == EE_CERTIFICATE_PREFIX ||
|
||||||
else if ((fid & 0xff00) == (CD_PREFIX << 8)) {
|
pfx == DCOD_PREFIX ||
|
||||||
if (!(pe = search_dynamic_file(fid)))
|
pfx == DATA_PREFIX ||
|
||||||
return SW_FILE_NOT_FOUND();
|
pfx == PROT_DATA_PREFIX) {
|
||||||
}
|
|
||||||
else if ((fid & 0xff00) == (EE_CERTIFICATE_PREFIX << 8)) {
|
|
||||||
if (!(pe = search_dynamic_file(fid)))
|
if (!(pe = search_dynamic_file(fid)))
|
||||||
return SW_FILE_NOT_FOUND();
|
return SW_FILE_NOT_FOUND();
|
||||||
}
|
}
|
||||||
@@ -297,6 +295,14 @@ static int cmd_list_keys()
|
|||||||
res_APDU[res_APDU_size++] = f->fid & 0xff;
|
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();
|
return SW_OK();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user