Skip to content

fix(ui): mask passphrase entry like every other secret field - #146

Closed
subinita01 wants to merge 2 commits into
odudex:masterfrom
subinita01:fix/mask-passphrase-input
Closed

fix(ui): mask passphrase entry like every other secret field#146
subinita01 wants to merge 2 commits into
odudex:masterfrom
subinita01:fix/mask-passphrase-input

Conversation

@subinita01

Copy link
Copy Markdown
Contributor

Summary

  • The BIP39 passphrase field was the only secret entry in the app shown in plaintext, with no way to hide it, and the confirmation dialog echoed it back verbatim.
  • PIN and KEF-key entry already mask by default with an eye toggle to reveal on demand. This gives the passphrase field the same treatment and drops the plaintext echo from the confirm prompt.

Test plan

  • ./scripts/format.sh --check passes
  • ./scripts/test.sh passes (all suites)
  • Verified in the desktop simulator: passphrase field starts masked with dots, eye icon toggles reveal/hide, confirmation dialog no longer echoes the typed passphrase

@odudex

odudex commented Aug 19, 2026

Copy link
Copy Markdown
Owner

There's no point on keeping a confirmation dialog that confirms nothing.
What could be done is bring the fingerprint change to the confirmation dialog:
fingerprint_a > fingerprint_b.
In the case the fingerprint change is brought to the confirmation dialog, the change display can be removed from where it is now, the wallet settings page.

@subinita01
subinita01 force-pushed the fix/mask-passphrase-input branch from 5705ff0 to 9033f0b Compare August 20, 2026 01:54
@subinita01

Copy link
Copy Markdown
Contributor Author

@odudex , Is this the right approach?Please check!

The BIP39 passphrase field was the only secret entry in the app shown
in plaintext, with no way to hide it, and the confirmation dialog
echoed it back verbatim. PIN and KEF-key entry already mask by
default with an eye toggle to reveal on demand; give the passphrase
field the same treatment and drop the plaintext echo from the confirm
prompt.
A masked "Confirm passphrase?" dialog confirmed nothing: the user
can't compare it to anything, so it was just an extra tap. Show the
fingerprint transition instead (current > with-passphrase) -- a wrong
character still looks like plausible dots either way, but it derives
a different wallet, which a mismatched fingerprint makes visible
without ever putting the secret on screen.

Adds key_mnemonic_passphrase_fingerprint_hex() to core/key, generalizing
the existing no-passphrase-only helper.

Wallet Settings showed this same base > passphrase fingerprint pair
in its nav bar after the change was applied; now that the transition
is confirmed up front, that display is redundant. Simplified it to
show the single currently-active fingerprint instead.
@odudex

odudex commented Aug 21, 2026

Copy link
Copy Markdown
Owner

Thank you!

The commits from this PR were rebased and squashed into one.

Fingerprint icons were also added the confirmation prompt.

@odudex odudex closed this Aug 21, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants