diff options
-rwxr-xr-x | bin/dfu | 6 | ||||
-rwxr-xr-x | projects/hsm/cryptech_probe | 8 |
2 files changed, 9 insertions, 5 deletions
@@ -77,7 +77,7 @@ def parse_args(): def _write(dst, data): for i in range(len(data)): - dst.write(data[i]) + dst.write(data[i:i+1]) time.sleep(0.1) if len(data) == 4: print("Wrote 0x{}".format(hexlify(data).decode("ascii"))) @@ -111,7 +111,7 @@ def send_file(filename, args): except serial.SerialException: time.sleep(0.2) continue - dst.write('\r') + dst.write(b'\r') response = _read(dst, args.verbose) if 'OK' in response: dst.timeout=2 @@ -137,7 +137,7 @@ def send_file(filename, args): if len(ack_bytes) == 4: break print('ERROR: Did not receive an ACK, got {!r}'.format(ack_bytes)) - dst.write('\r') # eventually get back to the CLI prompt + dst.write(b'\r') # eventually get back to the CLI prompt ack = struct.unpack('<I', ack_bytes)[0] if ack != counter + 1: print('ERROR: Did not receive the expected counter as ACK (got {!r}/{!r}, not {!r})'.format(ack, ack_bytes, counter)) diff --git a/projects/hsm/cryptech_probe b/projects/hsm/cryptech_probe index 7c26bf4..84359b7 100755 --- a/projects/hsm/cryptech_probe +++ b/projects/hsm/cryptech_probe @@ -102,8 +102,12 @@ for port in ports: except serial.SerialException: time.sleep(0.2) - for c in probe_string: - tty.write(c) + # Not sure we really need to dribble the probe string out this slowly anymore, + # but once upon a time we did this for a reason and it's not like this program + # is a performance bottleneck, so stick with the safe version. + + for i in range(len(probe_string)): + tty.write(probe_string[i:i+1]) time.sleep(0.1) response = tty.read(args.read_buffer_size) |