mirror of https://gerrit.osmocom.org/pysim
commands: Fix read_binary() for non-zero offset
Similar to the fix in Ie1aeaab29701946233ed73db3331039690d695da for update_binary(), read_binary() also contained a bug when treating non-zero offsets. Change-Id: Ic5c2f0ad1c1ec9c4e9c97e72895382f7b6fa9470 Related: OS#5254
This commit is contained in:
parent
b52feede25
commit
611dd783f6
|
@ -141,13 +141,14 @@ class SimCardCommands(object):
|
|||
if length is None:
|
||||
length = self.__len(r) - offset
|
||||
total_data = ''
|
||||
while offset < length:
|
||||
chunk_len = min(255, length-offset)
|
||||
pdu = self.cla_byte + 'b0%04x%02x' % (offset, chunk_len)
|
||||
chunk_offset = 0
|
||||
while chunk_offset < length:
|
||||
chunk_len = min(255, length-chunk_offset)
|
||||
pdu = self.cla_byte + 'b0%04x%02x' % (offset + chunk_offset, chunk_len)
|
||||
data,sw = self._tp.send_apdu(pdu)
|
||||
if sw == '9000':
|
||||
total_data += data
|
||||
offset += chunk_len
|
||||
chunk_offset += chunk_len
|
||||
else:
|
||||
raise ValueError('Failed to read (offset %d)' % (offset))
|
||||
return total_data, sw
|
||||
|
|
Loading…
Reference in New Issue