diff --git a/ledgerblue/hexLoader.py b/ledgerblue/hexLoader.py index de461a7..3281ae8 100644 --- a/ledgerblue/hexLoader.py +++ b/ledgerblue/hexLoader.py @@ -311,13 +311,13 @@ class HexLoader: bootadr |= 1 data = b'\x09' + struct.pack('>I', bootadr) if (signature != None): - data += chr(len(signature)) + signature + data += struct.pack('>B', len(signature)) + signature self.exchange(self.cla, 0x00, 0x00, 0x00, data) def commit(self, signature=None): data = b'\x09' if (signature != None): - data += chr(len(signature)) + signature + data += struct.pack('>B', len(signature)) + signature self.exchange(self.cla, 0x00, 0x00, 0x00, data) def createAppNoInstallParams(self, appflags, applength, appname, icon=None, path=None, iconOffset=None, iconSize=None, appversion=None): diff --git a/ledgerblue/loadApp.py b/ledgerblue/loadApp.py index fcdc76a..2d8d065 100644 --- a/ledgerblue/loadApp.py +++ b/ledgerblue/loadApp.py @@ -56,12 +56,13 @@ def auto_int(x): return int(x, 0) def parse_bip32_path(path, apilevel): + import struct if len(path) == 0: return b"" result = b"" elements = path.split('/') if apilevel >= 5: - result = result + chr(len(elements)) + result = result + struct.pack('>B', len(elements)) for pathElement in elements: element = pathElement.split('\'') if len(element) == 1: