From 75ba1e07ecd9387af40cdf2d55878c1683031900 Mon Sep 17 00:00:00 2001 From: kdmukai Date: Thu, 2 Jan 2025 17:31:34 -0600 Subject: [PATCH] Further bugfix; convert first, then check length --- src/seedsigner/models/decode_qr.py | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/src/seedsigner/models/decode_qr.py b/src/seedsigner/models/decode_qr.py index d2143921..e98a2c56 100644 --- a/src/seedsigner/models/decode_qr.py +++ b/src/seedsigner/models/decode_qr.py @@ -414,12 +414,17 @@ class DecodeQR: pass # Is it byte data? + if not isinstance(s, bytes): + try: + # TODO: remove this check & conversion once above cast to str is removed + s = s.encode() + except UnicodeError: + # Couldn't convert back to bytes; shouldn't happen + raise Exception("Conversion to bytes failed") + # 32 bytes for 24-word CompactSeedQR; 16 bytes for 12-word CompactSeedQR if len(s) == 32 or len(s) == 16: try: - if not isinstance(s, bytes): - # TODO: remove this check & conversion once above cast to str is removed - s = s.encode() bitstream = "" for b in s: bitstream += bin(b).lstrip('0b').zfill(8)