What changed, and why it matters
This commit only adds a new automated test case to the project's test suite. It checks that the Ledger Bitcoin app can display and return an extended public key (xpub) for a specific non-standard key path when the user approves on the device screen. There is no change to the actual app code, no security fix, and no vulnerability being introduced.
No security action required. This is a test-only change. Reviewers may optionally verify the expected tpub value is correct for path m/45' on the test network.
Security signals we found
No strong security signals were identified.
Evidence from the diff
The diff adds one new Python test function, test_get_extended_pubkey_nonstandard_display, in tests/test_get_extended_pubkey.py. The test exercises client.get_extended_pubkey(path="m/45'", display=True, ...) and asserts the returned tpub matches a known expected value. It uses Ragger navigator instructions to approve the on-device display. No application firmware code, APDU handlers, cryptography, or UI flow logic is modified.
Changed components
tests/test_get_extended_pubkey.pyInspect captured patch +15 / −0
diff --git a/tests/test_get_extended_pubkey.py b/tests/test_get_extended_pubkey.py
index 443fdb8..ee4f5d9 100644
--- a/tests/test_get_extended_pubkey.py
+++ b/tests/test_get_extended_pubkey.py
@@ -98,6 +98,21 @@ def test_get_extended_pubkey_nonstandard_nodisplay(client: RaggerClient):
assert DeviceException.exc.get(e.value.status) == NotSupportedError
assert len(e.value.data) == 0
+def test_get_extended_pubkey_nonstandard_display(navigator: Navigator, firmware: Firmware, client:
+ RaggerClient, test_name: str):
+ testcases = {
+ "m/45'": "tpubDA4runSouWhEn4C36dL1PwpMhWi1LCgc7EkYJXLExjVr3eWNE5p5ZRUe7LN7cY8YwCroQsLECcv9ufij8EUpDHM2WQM9Cba8Ztf6Zo8jpFf",
+ }
+
+ for path, pubkey in testcases.items():
+ assert pubkey == client.get_extended_pubkey(
+ path=path,
+ display=True,
+ navigator=navigator,
+ instructions=pubkey_instruction_approve(firmware),
+ testname=f"{test_name}_{path}"
+ )
+
def test_get_extended_pubkey_non_standard(navigator: Navigator, firmware: Firmware, client:
RaggerClient,
Why this scored 12/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.