Added support for TokenInfo and StaticTokenInfo files.

Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es>
This commit is contained in:
Pol Henarejos 2023-04-04 09:53:26 +02:00
parent b5b6dcd2e6
commit 405bf92e18
No known key found for this signature in database
GPG key ID: C0095B7870A4CCD3
3 changed files with 12 additions and 7 deletions

View file

@ -47,26 +47,26 @@ int cmd_select() {
// return SW_INCORRECT_P1P2();
//}
if (apdu.nc >= 2) {
if (apdu.nc == 2) {
fid = get_uint16_t(apdu.data, 0);
}
//if ((fid & 0xff00) == (KEY_PREFIX << 8))
// fid = (PRKD_PREFIX << 8) | (fid & 0xff);
uint8_t pfx = fid >> 8;
if (pfx == PRKD_PREFIX ||
/*uint8_t pfx = fid >> 8;*/
/*if (pfx == PRKD_PREFIX ||
pfx == CD_PREFIX ||
pfx == CA_CERTIFICATE_PREFIX ||
pfx == KEY_PREFIX ||
pfx == EE_CERTIFICATE_PREFIX ||
pfx == DCOD_PREFIX ||
pfx == DATA_PREFIX ||
pfx == PROT_DATA_PREFIX) {
if (!(pe = search_dynamic_file(fid)) && !(pe = search_by_fid(fid, NULL, SPECIFY_EF))) {
pfx == PROT_DATA_PREFIX) {*/
if (fid != 0x0 && !(pe = search_dynamic_file(fid)) && !(pe = search_by_fid(fid, NULL, SPECIFY_EF))) {
return SW_FILE_NOT_FOUND();
}
}
/*}*/
if (!pe) {
if (p1 == 0x0) { //Select MF, DF or EF - File identifier or absent
if (apdu.nc == 0) {

View file

@ -33,11 +33,14 @@ int cmd_update_ef() {
if (fid == 0x0) {
ef = currentEF;
}
/*
// This should not happen
else if (p1 != EE_CERTIFICATE_PREFIX && p1 != PRKD_PREFIX && p1 != CA_CERTIFICATE_PREFIX &&
p1 != CD_PREFIX && p1 != DATA_PREFIX && p1 != DCOD_PREFIX &&
p1 != PROT_DATA_PREFIX) {
return SW_INCORRECT_P1P2();
}
*/
if (ef && !authenticate_action(ef, ACL_OP_UPDATE_ERASE)) {
return SW_SECURITY_STATUS_NOT_SATISFIED();

View file

@ -40,7 +40,9 @@
#define EF_PRKD_DEV 0xC400
#define EF_EE_DEV 0xCE00
#define EF_TERMCA 0x2f02
#define EF_TERMCA 0x2F02
#define EF_TOKENINFO 0x2F03
#define EF_STATICTOKEN 0xCB00
extern file_t *file_pin1;
extern file_t *file_retries_pin1;