mirror of
https://git.tartarus.org/simon/putty.git
synced 2025-07-05 21:42:47 -05:00
Add a TermWin method to draw a 'trust sigil'.
This is not yet used by anything, but the idea is that it'll be a graphic in the terminal window that can't be replicated by a server sending escape sequences, and hence can be used as a reliable indication that the text on a particular terminal line is generated by PuTTY itself and not passed through from the server. This will make it possible to detect a malicious server trying to mimic local prompts to trick you out of information that shouldn't be sent over the wire (such as private-key passphrases). The trust sigil I've picked is a small copy of the PuTTY icon, which is thematically nice (it can be read as if the PuTTY icon is the name of the speaker in a dialogue) and also convenient because we had that graphic available already on all platforms. (Though the contortions I had to go through to make the GTK 1 code draw it were quite annoying.) The trust sigil has the same dimensions as a CJK double-width character, i.e. it's 2 character cells wide by 1 high.
This commit is contained in:
@ -69,6 +69,10 @@ static void fuzz_draw_cursor(
|
||||
}
|
||||
printf("\n");
|
||||
}
|
||||
static void fuzz_draw_trust_sigil(TermWin *tw, int x, int y)
|
||||
{
|
||||
printf("TRUST@(%d,%d)\n", x, y);
|
||||
}
|
||||
static int fuzz_char_width(TermWin *tw, int uc) { return 1; }
|
||||
static void fuzz_free_draw_ctx(TermWin *tw) {}
|
||||
static void fuzz_set_cursor_pos(TermWin *tw, int x, int y) {}
|
||||
@ -101,6 +105,7 @@ static const TermWinVtable fuzz_termwin_vt = {
|
||||
fuzz_setup_draw_ctx,
|
||||
fuzz_draw_text,
|
||||
fuzz_draw_cursor,
|
||||
fuzz_draw_trust_sigil,
|
||||
fuzz_char_width,
|
||||
fuzz_free_draw_ctx,
|
||||
fuzz_set_cursor_pos,
|
||||
|
Reference in New Issue
Block a user