mirror of
https://gitea.osmocom.org/sim-card/pysim.git
synced 2026-03-25 23:08:34 +03:00
commands.py: fix read_binary for lengths > 256
fixed commit with commented changes Change-Id: Ie9c61caa1412606254b44a3a24f26ad44950e73a
This commit is contained in:
committed by
guilly@gmail.com
parent
0dc8f69217
commit
0e9f93fdd6
@@ -119,8 +119,17 @@ class SimCardCommands(object):
|
|||||||
return (None, None)
|
return (None, None)
|
||||||
if length is None:
|
if length is None:
|
||||||
length = self.__len(r) - offset
|
length = self.__len(r) - offset
|
||||||
pdu = self.cla_byte + 'b0%04x%02x' % (offset, (min(256, length) & 0xff))
|
total_data = ''
|
||||||
return self._tp.send_apdu(pdu)
|
while offset < length:
|
||||||
|
chunk_len = min(255, length-offset)
|
||||||
|
pdu = self.cla_byte + 'b0%04x%02x' % (offset, chunk_len)
|
||||||
|
data,sw = self._tp.send_apdu(pdu)
|
||||||
|
if sw == '9000':
|
||||||
|
total_data += data
|
||||||
|
offset += chunk_len
|
||||||
|
else:
|
||||||
|
raise ValueError('Failed to read (offset %d)' % (offset))
|
||||||
|
return total_data, sw
|
||||||
|
|
||||||
def update_binary(self, ef, data, offset=0, verify=False):
|
def update_binary(self, ef, data, offset=0, verify=False):
|
||||||
self.select_file(ef)
|
self.select_file(ef)
|
||||||
|
|||||||
Reference in New Issue
Block a user