Decode compact access bitmap

This commit is contained in:
Henryk Plötz 2011-01-08 03:50:37 +01:00
parent c5b4a68c26
commit 9a3af066b0
1 changed files with 18 additions and 1 deletions

View File

@ -710,6 +710,23 @@ def decode_access_rule(mask, value):
result.append("__");
return " " + " ".join(result)
compact_access_descriptions = (
(0xc0, 0xc0, None, "proprietary"),
(0xa0, 0xa0, None, "proprietary"),
(0x90, 0x90, None, "proprietary"),
(0x88, 0x88, None, "proprietary"),
(0xc0, 0x40, None, "DF: DELETE FILE(self); EF: DELETE FILE; DO: RFU"),
(0xa0, 0x20, None, "DF: TERMINATE MF / DF; EF: TERMINATE EF; DO: RFU"),
(0x90, 0x10, None, "DF: ACTIVATE FILE; EF: ACTIVATE FILE; DO: RFU"),
(0x88, 0x08, None, "DF: DEACTIVATE FILE; EF: DEACTIVATE FILE; DO: RFU"),
(0x04, 0x04, None, "DF: CREATE FILE (DF); EF: APPEND RECORD; DO: MANAGE SECURITY ENVIRONMENT"),
(0x02, 0x02, None, "DF: CREATE FILE (EF); EF: UPDATE BINARY/RECORD; DO: PUT DATA"),
(0x01, 0x01, None, "DF: DELETE FILE (child); EF: READ/SEARCH BINARY/RECORD; DO: GET DATA"),
)
def decode_compact_access_bitmap(value):
return (" %s \n" % utils.hexdump(value, short=True)) + "\n\t".join(utils.parse_binary(ord(value[0]), compact_access_descriptions, True))
class TCOS_3_Card(TCOS_Card):
DRIVER_NAME = ["TCOS 3.0"]
APDU_DELETE_FILE = C_APDU(cla=0x80,ins=0xe4)
@ -753,7 +770,7 @@ class TCOS_3_Card(TCOS_Card):
0xA1: (TLV_utils.recurse, "Interface mode template", None),
},
context_ardo: {
0x80: (TLV_utils.binary, "Compact bitmap"),
0x80: (decode_compact_access_bitmap, "Compact bitmap"),
0x81: (lambda a: decode_access_rule(1, a), "APDU equals"),
0x82: (lambda a: decode_access_rule(2, a), "APDU equals"),