aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRob Austein <sra@hactrn.net>2020-05-26 15:18:35 -0400
committerRob Austein <sra@hactrn.net>2020-05-26 15:18:35 -0400
commit6d797bffbd7571df98198df26977a39b86630ac7 (patch)
treed270af05d27bf746b4f4ba30a98542d93002f84f
parentf948d674351a2ca87d33c0e0d8558cbbb2f59682 (diff)
Wow, python-version-independent hexadecimal is painful
-rwxr-xr-xbin/dfu2
-rwxr-xr-xprojects/cli-test/filetransfer2
-rwxr-xr-xprojects/hsm/cryptech_probe10
-rwxr-xr-xprojects/hsm/cryptech_upload7
4 files changed, 15 insertions, 6 deletions
diff --git a/bin/dfu b/bin/dfu
index d37d3ba..50015da 100755
--- a/bin/dfu
+++ b/bin/dfu
@@ -80,7 +80,7 @@ def _write(dst, data):
dst.write(data[i])
time.sleep(0.1)
if len(data) == 4:
- print("Wrote 0x{}".format(hexlify(data)))
+ print("Wrote 0x{}".format(hexlify(data).decode("ascii")))
else:
print("Wrote {!r}".format(data))
diff --git a/projects/cli-test/filetransfer b/projects/cli-test/filetransfer
index 147f081..809c6b8 100755
--- a/projects/cli-test/filetransfer
+++ b/projects/cli-test/filetransfer
@@ -79,7 +79,7 @@ def parse_args():
def _write(dst, data):
dst.write(data)
if len(data) == 4:
- print(("Wrote 0x{!s}".format(hexlify(data))))
+ print(("Wrote 0x{!s}".format(hexlify(data).decode("ascii"))))
else:
print(("Wrote {!r}".format(data)))
diff --git a/projects/hsm/cryptech_probe b/projects/hsm/cryptech_probe
index 3d14484..68bcfd1 100755
--- a/projects/hsm/cryptech_probe
+++ b/projects/hsm/cryptech_probe
@@ -38,9 +38,15 @@ goes to stderr.
import sys
import time
import argparse
-import binascii
import serial.tools.list_ports_posix
+if sys.version_info.major == 2:
+ def colon_hex(raw):
+ return ":".join("{:02x}".format(ord(b)) for b in raw)
+else:
+ def colon_hex(raw):
+ return ":".join("{:02x}".format(b) for b in raw)
+
class positive_integer(int):
def __init__(self, value):
if self <= 0:
@@ -102,7 +108,7 @@ for port in ports:
response = tty.read(args.read_buffer_size)
if args.debug:
- sys.stderr.write("Received from {}: {!r} ({})\n".format(port, response, ":".join(binascii.hexlify(c) for c in response)))
+ sys.stderr.write("Received from {}: {!r} ({})\n".format(port, response, colon_hex(response)))
# Check whether we got a known console prompt.
diff --git a/projects/hsm/cryptech_upload b/projects/hsm/cryptech_upload
index 0c18f25..aaa0f1c 100755
--- a/projects/hsm/cryptech_upload
+++ b/projects/hsm/cryptech_upload
@@ -44,7 +44,7 @@ import tarfile
import argparse
import platform
-from binascii import crc32
+from binascii import crc32, hexlify
FIRMWARE_CHUNK_SIZE = 4096
FPGA_CHUNK_SIZE = 4096
@@ -147,7 +147,10 @@ class ManagementPortAbstract(object):
data = struct.pack("<I", data)
self.send(data)
if self.args.debug:
- print("Wrote {!r}".format(data))
+ if numeric:
+ print("Wrote 0x{}".format(hexlify(data).decode("ascii")))
+ else:
+ print("Wrote {!r}".format(data))
def read(self):
res = b""