What changed, and why it matters
This change makes QR codes easier to scan by converting the encoded text to uppercase letters. It is a usability improvement, not a security fix. There is no indication it addresses any vulnerability.
No security action needed. Treat as a normal usability/quality improvement.
Security signals we found
No strong security signals were identified.
Evidence from the diff
The commit modifies src/krux/qr.py so that UR (Uniform Resource) QR code parts are emitted in uppercase via encoder.next_part().upper(). UR encoding is case-insensitive, so uppercasing reduces QR symbol density without changing the encoded data. The CHANGELOG describes this as improving scan reliability. No security issue is mentioned or evident in the diff.
Changed components
src/krux/qr.pyInspect captured patch +4 / −1
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 97935b8..f7408f5 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -9,6 +9,9 @@ From the wonderful land of Korea, a new creation arrives: the WonderK PRO. Creat
### Changed BIP39 Passphrase Validation
Krux now displays a warning instead of blocking QR-encoded passphrases that contain non-ASCII characters. Users are encouraged to use QR codes containing only ASCII passphrases or non-ASCII that have already been normalized to NFKD.
+### Easier to Scan UR QR Codes
+Exported Uniform Resource (UR) QR codes, a widely adopted standard for exchanging PSBTs, now use uppercase data to reduce QR density, improving scan reliability without increasing the number of frames.
+
### Other Bug Fixes and Improvements
- Added backtick ` to keypad
- Bugfix: Screensaver not activating in menu pages without statusbar
diff --git a/src/krux/qr.py b/src/krux/qr.py
index 34845e6..3524878 100644
--- a/src/krux/qr.py
+++ b/src/krux/qr.py
@@ -261,7 +261,7 @@ def to_qr_codes(data, max_width, qr_format):
encoder = UREncoder(data, part_size, 0)
while True:
- part = encoder.next_part()
+ part = encoder.next_part().upper()
code = qrcode.encode(part)
yield (code, encoder.fountain_encoder.seq_len())
elif qr_format == FORMAT_BBQR:
Why this scored 15/100
Community notes
Notes can correct, qualify, or add evidence to the AI analysis. Every note shown here has been validated by a human moderator.
The AI analysis stands alone for now. Submit a note if you can add evidence or important context.