Initial support for GlobalPlatform
One can now select the Issuer Security Domain (hard-coded to
a000000003000000) and issue get_data requests. FCI and other TLV
objects are dcoded, e.g.
pySIM-shell (MF)> select ADF.ISD
{
"application_id": "a000000003000000",
"proprietary_data": {
"maximum_length_of_data_field_in_command_message": 255
}
}
pySIM-shell (MF/ADF.ISD)> get_data CardData
{
"card_data": [
{
"card_recognition_data": [
{
"object_identifier": "2a864886fc6b01"
},
{
"card_management_type_and_version": [
{
"object_identifier": "2a864886fc6b02020101"
}
]
},
{
"card_identification_scheme": [
{
"object_identifier": "2a864886fc6b03"
}
]
},
{
"secure_channel_protocol_of_isd": [
{
"object_identifier": "2a864886fc6b040215"
}
]
}
]
}
]
}
Change-Id: If11267d45ab7aa371eea8c143abd9320c32b54d0
diff --git a/pySim/commands.py b/pySim/commands.py
index df23393..a959851 100644
--- a/pySim/commands.py
+++ b/pySim/commands.py
@@ -621,3 +621,7 @@
negotiated_duration_secs = decode_duration(data[:4])
resume_token = data[4:]
return (negotiated_duration_secs, resume_token, sw)
+
+ def get_data(self, tag: int, cla: int = 0x00):
+ data, sw = self._tp.send_apdu('%02xca%04x00' % (cla, tag))
+ return (data, sw)