What changed, and why it matters
This commit only changes test scripts for the COLDCARD hardware wallet firmware. It adds small timing delays, adjusts the order of test assertions, and fills in missing steps in automated UI tests. There are no changes to the actual firmware or wallet code that users rely on, so this cannot affect real device security.
No security action needed. Review as normal test-quality improvement.
Security signals we found
No strong security signals were identified.
Evidence from the diff
The diff touches five files under the testing/ directory. Changes include: adding ‘Mash Keys’ entropy entry steps in seedless_tests.py; reordering an assertion and increasing a sleep in test_bip39pw.py; adding time.sleep(0.1) calls around keypresses in test_ephemeral.py; calling clear_ms() before re-importing a multisig config in test_multisig.py; and adding enable_nfc() fixture usage in test_ux.py. All modifications are test-framework or test-case adjustments.
Changed components
testing/seedless_tests.pytesting/test_bip39pw.pytesting/test_ephemeral.pytesting/test_multisig.pytesting/test_ux.pyInspect captured patch +19 / −4
### testing/seedless_tests.py
@@ -20,6 +20,17 @@ def test_status_bar_rewrite_after_restore_master():
_need_keypress(device, "4")
_pick_menu_item(device, True, "Generate Words")
_pick_menu_item(device, True, "12 Words")
+
+ _pick_menu_item(device, True, "Mash Keys")
+ time.sleep(.1)
+ _press_select(device, True)
+
+ for i in range(65):
+ _need_keypress(device, str(i % 10))
+
+ time.sleep(.2)
+ _press_select(device, True)
+
_need_keypress(device, "6")
_press_select(device, True)
_press_select(device, True)
### testing/test_bip39pw.py
@@ -260,16 +260,16 @@ def test_bip39_complex(target, pick_menu_item, cap_story, goto_home,
for _ in range(3):
screen = cap_screen()
- assert 'Passphrase:' not in screen
if 'Scroll down to' in screen:
break
- scroll_down()
time.sleep(.01)
else:
pytest.fail('passphrase scroll notice not shown')
+ assert 'Passphrase:' not in screen
+
scroll_down()
- time.sleep(.01)
+ time.sleep(.1)
assert 'Passphrase:' in cap_screen()
press_select()
### testing/test_ephemeral.py
@@ -1652,7 +1652,9 @@ def test_import_master_as_tmp(reset_seed_words, goto_eph_seed_menu, cap_story,
pick_menu_item("Generate Words")
pick_menu_item(f"12 Words")
enter_mash_entropy()
+ time.sleep(0.1)
need_keypress("6") # skip quiz
+ time.sleep(0.1)
press_select() # yes - I'm sure
confirm_tmp_seed(seedvault=False)
### testing/test_multisig.py
@@ -1321,6 +1321,7 @@ def select_wallet(idx, no_import=False):
print(f"--- switch to another leg of MS: {idx} ---")
xfp = set_bip39_pw(passwords[idx])
if do_import and not no_import:
+ clear_ms()
offer_ms_import(config)
time.sleep(.1)
press_select()
### testing/test_ux.py
@@ -1196,9 +1196,10 @@ def clear(fname):
assert not os.path.exists(fpath)
-def test_bip39_pw_signing_xfp_ux(pick_menu_item, press_select, cap_story, enter_complex,
+def test_bip39_pw_signing_xfp_ux(pick_menu_item, press_select, cap_story, enter_complex, enable_nfc,
reset_seed_words, cap_menu, go_to_passphrase, microsd_wipe):
microsd_wipe() # need to wipe all PSBT on SD card so we do not proceed to signing
+ enable_nfc()
go_to_passphrase()
enter_complex("21coinkite21", apply=True)
time.sleep(0.3)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.