mirror of
https://git.tartarus.org/simon/putty.git
synced 2025-07-12 16:47:42 -05:00
Seat method to set the current trust status.
In terminal-based GUI applications, this is passed through to term_set_trust_status, to toggle whether lines are prefixed with the new trust sigil. In console applications, the function returns false, indicating to the backend that it should employ some other technique for spoofing protection.
This commit is contained in:
21
putty.h
21
putty.h
@ -952,6 +952,20 @@ struct SeatVtable {
|
||||
*/
|
||||
StripCtrlChars *(*stripctrl_new)(
|
||||
Seat *seat, BinarySink *bs_out, SeatInteractionContext sic);
|
||||
|
||||
/*
|
||||
* Set the seat's current idea of where output is coming from.
|
||||
* True means that output is being generated by our own code base
|
||||
* (and hence, can be trusted if it's asking you for secrets such
|
||||
* as your passphrase); false means output is coming from the
|
||||
* server.
|
||||
*
|
||||
* Returns true if the seat has a way to indicate this
|
||||
* distinction. Returns false if not, in which case the backend
|
||||
* should use a fallback defence against spoofing of PuTTY's local
|
||||
* prompts by malicious servers.
|
||||
*/
|
||||
bool (*set_trust_status)(Seat *seat, bool trusted);
|
||||
};
|
||||
|
||||
static inline size_t seat_output(
|
||||
@ -995,6 +1009,8 @@ static inline bool seat_get_window_pixel_size(Seat *seat, int *w, int *h)
|
||||
static inline StripCtrlChars *seat_stripctrl_new(
|
||||
Seat *seat, BinarySink *bs, SeatInteractionContext sic)
|
||||
{ return seat->vt->stripctrl_new(seat, bs, sic); }
|
||||
static inline bool seat_set_trust_status(Seat *seat, bool trusted)
|
||||
{ return seat->vt->set_trust_status(seat, trusted); }
|
||||
|
||||
/* Unlike the seat's actual method, the public entry point
|
||||
* seat_connection_fatal is a wrapper function with a printf-like API,
|
||||
@ -1045,6 +1061,8 @@ bool nullseat_get_windowid(Seat *seat, long *id_out);
|
||||
bool nullseat_get_window_pixel_size(Seat *seat, int *width, int *height);
|
||||
StripCtrlChars *nullseat_stripctrl_new(
|
||||
Seat *seat, BinarySink *bs_out, SeatInteractionContext sic);
|
||||
bool nullseat_set_trust_status(Seat *seat, bool trusted);
|
||||
bool nullseat_set_trust_status_vacuously(Seat *seat, bool trusted);
|
||||
|
||||
/*
|
||||
* Seat functions provided by the platform's console-application
|
||||
@ -1064,6 +1082,7 @@ int console_confirm_weak_cached_hostkey(
|
||||
void (*callback)(void *ctx, int result), void *ctx);
|
||||
StripCtrlChars *console_stripctrl_new(
|
||||
Seat *seat, BinarySink *bs_out, SeatInteractionContext sic);
|
||||
bool console_set_trust_status(Seat *seat, bool trusted);
|
||||
|
||||
/*
|
||||
* Other centralised seat functions.
|
||||
@ -1627,7 +1646,7 @@ void term_provide_logctx(Terminal *term, LogContext *logctx);
|
||||
void term_set_focus(Terminal *term, bool has_focus);
|
||||
char *term_get_ttymode(Terminal *term, const char *mode);
|
||||
int term_get_userpass_input(Terminal *term, prompts_t *p, bufchain *input);
|
||||
void term_set_trust_status(Terminal *term, SeatTrustStatus status);
|
||||
void term_set_trust_status(Terminal *term, bool trusted);
|
||||
|
||||
typedef enum SmallKeypadKey {
|
||||
SKK_HOME, SKK_END, SKK_INSERT, SKK_DELETE, SKK_PGUP, SKK_PGDN,
|
||||
|
Reference in New Issue
Block a user