mirror of
https://github.com/trezor/trezor-firmware.git
synced 2024-12-27 08:38:07 +00:00
legacy: make fake/real words indistinguishable in simple recovery
(cherry picked from commit d9c02bb924
)
This commit is contained in:
parent
8190bf3819
commit
93ef10d564
@ -444,34 +444,25 @@ static void recovery_digit(const char digit) {
|
||||
* Ask the user for the next word.
|
||||
*/
|
||||
void next_word(void) {
|
||||
layoutLast = layoutDialogSwipe;
|
||||
layoutSwipe();
|
||||
oledDrawStringCenter(OLED_WIDTH / 2, 8, _("Please enter"), FONT_STANDARD);
|
||||
word_pos = word_order[word_index];
|
||||
if (word_pos == 0) {
|
||||
const char *const *wl = mnemonic_wordlist();
|
||||
strlcpy(fake_word, wl[random_uniform(2048)], sizeof(fake_word));
|
||||
|
||||
layoutLast = layoutDialogSwipe;
|
||||
layoutSwipe();
|
||||
oledDrawStringCenter(OLED_WIDTH / 2, 8, _("Please enter the word"), FONT_STANDARD);
|
||||
oledDrawStringCenter(OLED_WIDTH / 2, 24, fake_word, FONT_FIXED | FONT_DOUBLE);
|
||||
oledDrawStringCenter(OLED_WIDTH / 2, 48, _("on your computer"), FONT_STANDARD);
|
||||
// 30 is the maximum pixels used for a pixel row in the BIP39 word "abstract"
|
||||
oledSCA(24 - 2, 24 + 15 + 2, 30);
|
||||
oledInvert(0, 24 - 2, OLED_WIDTH - 1, 24 + 15 + 2);
|
||||
oledRefresh();
|
||||
} else {
|
||||
fake_word[0] = 0;
|
||||
char desc[] = "##th word";
|
||||
format_number(desc, word_pos);
|
||||
layoutLast = layoutDialogSwipe;
|
||||
layoutSwipe();
|
||||
oledDrawStringCenter(OLED_WIDTH / 2, 8, _("Please enter the"), FONT_STANDARD);
|
||||
oledDrawStringCenter(OLED_WIDTH / 2, 24, (word_pos < 10 ? desc + 1 : desc), FONT_FIXED | FONT_DOUBLE);
|
||||
oledDrawStringCenter(OLED_WIDTH / 2, 48, _("of your mnemonic"), FONT_STANDARD);
|
||||
// 30 is the maximum pixels used for a pixel row in the BIP39 word "abstract"
|
||||
oledSCA(24 - 2, 24 + 15 + 2, 30);
|
||||
oledInvert(0, 24 - 2, OLED_WIDTH - 1, 24 + 15 + 2);
|
||||
oledRefresh();
|
||||
char desc[] = "the ##th word";
|
||||
format_number(desc + 4, word_pos);
|
||||
oledDrawStringCenter(OLED_WIDTH / 2, 24, desc, FONT_FIXED | FONT_DOUBLE);
|
||||
}
|
||||
oledDrawStringCenter(OLED_WIDTH / 2, 48, _("on your computer"), FONT_STANDARD);
|
||||
// 35 is the maximum pixels used for a pixel row ("the 21st word")
|
||||
oledSCA(24 - 2, 24 + 15 + 2, 35);
|
||||
oledInvert(0, 24 - 2, OLED_WIDTH - 1, 24 + 15 + 2);
|
||||
oledRefresh();
|
||||
recovery_request();
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user