From d7b63d072afe370c1195aa01848012e6a0cc8093 Mon Sep 17 00:00:00 2001 From: scgbckbone Date: Wed, 13 Dec 2023 15:25:47 +0100 Subject: [PATCH] one instant retry on AE_FAIL (cherry picked from commit 84215b172119b6ddbcbaa77923c6b601ffa22f90) --- releases/ChangeLog.md | 1 + shared/pincodes.py | 8 +++++++- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/releases/ChangeLog.md b/releases/ChangeLog.md index 72a5cc0e..d9ce84c5 100644 --- a/releases/ChangeLog.md +++ b/releases/ChangeLog.md @@ -9,6 +9,7 @@ deferring card read (and decryption) until after `Restore Saved` menu item is selected. - Enhancement: `12 Words` menu option preferred on the top of the menu in all the seed menus (rather than 24 words). +- Enhancement: One instant retry on SE1 comm failures - Bugfix: Handle any failures in slot reading when loading settings - Bugfix: Add missing First Time UX for extended key import as master seed - Bugfix: Hide `Upgrade Firmware` menu item if temporary seed is active diff --git a/shared/pincodes.py b/shared/pincodes.py index 60402b36..732b421c 100644 --- a/shared/pincodes.py +++ b/shared/pincodes.py @@ -100,6 +100,12 @@ PIN_ATTEMPT_SIZE = const(248+32) # small cache of pin-prefix to words, for 608a based systems _word_cache = [] +def retry_ae_fail(*args): + err = ckcc.gate(*args) + if err == -106: # AE_FAIL + err = ckcc.gate(*args) + return err + class BootloaderError(RuntimeError): pass @@ -252,7 +258,7 @@ class PinAttempt: #print("> tx: %s" % b2a_hex(buf)) - err = ckcc.gate(18, buf, method_num) + err = retry_ae_fail(18, buf, method_num) #print("[%d] rx: %s" % (err, b2a_hex(buf)))