1
0
mirror of https://git.tartarus.org/simon/putty.git synced 2025-01-25 01:02:24 +00:00
Go to file
Simon Tatham efa89573ae Reorganise host key checking and confirmation.
Previously, checking the host key against the persistent cache managed
by the storage.h API was done as part of the seat_verify_ssh_host_key
method, i.e. separately by each Seat.

Now that check is done by verify_ssh_host_key(), which is a new
function in ssh/common.c that centralises all the parts of host key
checking that don't need an interactive prompt. It subsumes the
previous verify_ssh_manual_host_key() that checked against the Conf,
and it does the check against the storage API that each Seat was
previously doing separately. If it can't confirm or definitively
reject the host key by itself, _then_ it calls out to the Seat, once
an interactive prompt is definitely needed.

The main point of doing this is so that when SshProxy forwards a Seat
call from the proxy SSH connection to the primary Seat, it won't print
an announcement of which connection is involved unless it's actually
going to do something interactive. (Not that we're printing those
announcements _yet_ anyway, but this is a piece of groundwork that
works towards doing so.)

But while I'm at it, I've also taken the opportunity to clean things
up a bit by renaming functions sensibly. Previously we had three very
similarly named functions verify_ssh_manual_host_key(), SeatVtable's
'verify_ssh_host_key' method, and verify_host_key() in storage.h. Now
the Seat method is called 'confirm' rather than 'verify' (since its
job is now always to print an interactive prompt, so it looks more
like the other confirm_foo methods), and the storage.h function is
called check_stored_host_key(), which goes better with store_host_key
and avoids having too many functions with similar names. And the
'manual' function is subsumed into the new centralised code, so
there's now just *one* host key function with 'verify' in the name.

Several functions are reindented in this commit. Best viewed with
whitespace changes ignored.
2021-10-25 18:12:17 +01:00
charset Add missing dependencies on generated source files. 2021-04-18 17:01:50 +01:00
cmake Fix paste error in comment. 2021-10-21 20:42:25 +01:00
contrib New script contrib/proveprime.py. 2021-06-12 13:50:51 +01:00
crypto Add references for the Diffie-Hellman fixed primes. 2021-08-28 10:25:09 +01:00
doc New function-key mode similar to modern xterm. 2021-10-23 11:31:09 +01:00
icons Make Windows versions of the pterm icons. 2021-05-08 17:33:25 +01:00
keygen Make pcs_set_oneshot even more one-shot. 2021-08-27 18:04:49 +01:00
otherbackends Add 'description' methods for Backend and Plug. 2021-10-24 10:48:25 +01:00
ssh Reorganise host key checking and confirmation. 2021-10-25 18:12:17 +01:00
terminal New function-key mode similar to modern xterm. 2021-10-23 11:31:09 +01:00
test primegen.py: add a --probabilistic option. 2021-08-28 10:17:16 +01:00
unix Reorganise host key checking and confirmation. 2021-10-25 18:12:17 +01:00
utils Reorganise host key checking and confirmation. 2021-10-25 18:12:17 +01:00
windows Reorganise host key checking and confirmation. 2021-10-25 18:12:17 +01:00
.gitignore Add .gitignore rules for in-tree builds. 2021-04-19 18:26:56 +01:00
aqsync.c Build outgoing SSH agent requests in a strbuf. 2018-05-25 14:36:16 +01:00
be_all_s.c New GUI for protocol selection. 2021-04-10 09:51:29 +01:00
be_all.c New GUI for protocol selection. 2021-04-10 09:51:29 +01:00
be_misc.c Send PLUGLOG_CONNECT_SUCCESS in proxied socket types. 2021-09-13 14:38:44 +01:00
be_none.c New GUI for protocol selection. 2021-04-10 09:51:29 +01:00
be_nos_s.c New GUI for protocol selection. 2021-04-10 09:51:29 +01:00
be_nossh.c New GUI for protocol selection. 2021-04-10 09:51:29 +01:00
be_ssh.c New GUI for protocol selection. 2021-04-10 09:51:29 +01:00
Buildscr Merge tag '0.76' into main 2021-07-17 11:49:44 +01:00
Buildscr.cv Replace mkfiles.pl with a CMake build system. 2021-04-17 13:53:02 +01:00
callback.c Add lots of missing 'static' keywords. 2020-01-29 06:44:18 +00:00
cgtest.c cmdgen: support configurable key fingerprint type. 2021-03-13 11:01:35 +00:00
CHECKLST.txt Spelling errors in the release checklist. 2021-05-03 17:01:55 +01:00
clicons.c Change vtable defs to use C99 designated initialisers. 2020-03-10 21:06:29 +00:00
CMakeLists.txt Test rig for the new bidi algorithm. 2021-10-10 15:00:30 +01:00
cmdgen.c cmdgen: add missing null pointer check in --dump mode. 2021-06-12 14:08:10 +01:00
cmdline.c Add -pwfile option, a more secure version of -pw. 2021-09-28 18:04:15 +01:00
config.c Lowercase version of BackendVtable's displayname. 2021-10-24 09:59:05 +01:00
console.c Mention the host name in host-key prompts. 2021-09-16 14:33:59 +01:00
console.h Mention the host name in host-key prompts. 2021-09-16 14:33:59 +01:00
cproxy.c Remove 'calling_back' parameter from plug_closing. 2021-10-24 09:58:59 +01:00
defs.h bidi.c: update the API. 2021-10-10 14:55:16 +01:00
dialog.c dialog system: add a side-by-side alignment feature. 2021-04-10 09:43:25 +01:00
dialog.h dialog system: add a side-by-side alignment feature. 2021-04-10 09:43:25 +01:00
errsock.c Change vtable defs to use C99 designated initialisers. 2020-03-10 21:06:29 +00:00
fuzzterm.c win_set_[icon_]title: send a codepage along with the string. 2021-10-16 14:00:46 +01:00
import.c Spelling: standardise on "DSA", not "DSS". 2021-04-22 18:34:47 +01:00
LATEST.VER Update version number for 0.76 release. 2021-07-10 10:39:20 +01:00
ldisc.c free_prompts: deal with a reference from an Ldisc. 2021-09-16 13:55:10 +01:00
LICENCE It's a new year. 2021-01-11 21:37:51 +00:00
licence.pl Separate the functions of licence.pl. 2021-04-17 13:52:27 +01:00
logging.c sshproxy: share the caller's LogPolicy. 2021-09-13 17:18:31 +01:00
marshal.h Add some more marshalling functions, for file parsing. 2020-01-09 19:57:35 +00:00
misc.h win_set_[icon_]title: send a codepage along with the string. 2021-10-16 14:00:46 +01:00
mksrcarc.sh Replace mkfiles.pl with a CMake build system. 2021-04-17 13:53:02 +01:00
mkunxarc.sh Integrate the 'doc' subdir into the CMake system. 2021-05-03 17:01:55 +01:00
mpint.h Make mp_unsafe_mod_integer not be unsafe. 2021-08-27 17:43:40 +01:00
network.h Add 'description' methods for Backend and Plug. 2021-10-24 10:48:25 +01:00
nocmdline.c Make cmdline_tooltype a const int. 2020-01-30 06:40:22 +00:00
nocproxy.c Remove 'calling_back' parameter from plug_closing. 2021-10-24 09:58:59 +01:00
nogss.c Rewrite gprefs() in settings.c so that its input mapping includes 2011-06-25 17:37:31 +00:00
noprint.c noprint.c: fix compile failure. 2021-02-10 21:07:57 +00:00
noproxy.c Allow new_connection to take an optional Seat. (NFC) 2021-09-13 17:24:47 +01:00
norand.c Centralise 'no random numbers' stubs into norand.c. 2020-02-07 19:17:19 +00:00
nosshproxy.c sshproxy: borrow a Seat for host key and crypto dialogs. 2021-09-13 17:27:08 +01:00
noterm.c Complete rework of terminal userpass input system. 2021-09-14 13:19:33 +01:00
notiming.c Whitespace rationalisation of entire code base. 2019-09-08 20:29:21 +01:00
nullplug.c Remove 'calling_back' parameter from plug_closing. 2021-10-24 09:58:59 +01:00
pageant.c Remove 'calling_back' parameter from plug_closing. 2021-10-24 09:58:59 +01:00
pageant.h winpgnt: menu options to delete/reencrypt everything. 2021-04-04 10:02:24 +01:00
pinger.c Whitespace rationalisation of entire code base. 2019-09-08 20:29:21 +01:00
pproxy.c Get rid of lots of implicit pointer types. 2018-10-04 19:10:23 +01:00
proxy.c Remove 'calling_back' parameter from plug_closing. 2021-10-24 09:58:59 +01:00
proxy.h Remove 'calling_back' parameter from plug_closing. 2021-10-24 09:58:59 +01:00
pscp.c Reorganise host key checking and confirmation. 2021-10-25 18:12:17 +01:00
psftp.c Reorganise host key checking and confirmation. 2021-10-25 18:12:17 +01:00
psftp.h Remove FLAG_VERBOSE. 2020-01-30 06:40:21 +00:00
psftpcommon.c Move the SSH implementation into its own subdirectory. 2021-04-22 18:09:13 +01:00
psocks.c Reorganise host key checking and confirmation. 2021-10-25 18:12:17 +01:00
psocks.h Auxiliary application: 'psocks', a simple SOCKS server. 2020-02-23 16:36:27 +00:00
putty.h Reorganise host key checking and confirmation. 2021-10-25 18:12:17 +01:00
puttymem.h Whitespace rationalisation of entire code base. 2019-09-08 20:29:21 +01:00
README Replace mkfiles.pl with a CMake build system. 2021-04-17 13:53:02 +01:00
release.pl Replace mkfiles.pl with a CMake build system. 2021-04-17 13:53:02 +01:00
settings.c New config option for shifted arrow key handling. 2021-10-18 20:15:35 +01:00
sign.sh GPG key rollover. 2021-08-14 08:02:27 +01:00
ssh.h Reorganise host key checking and confirmation. 2021-10-25 18:12:17 +01:00
sshcr.h Assorted benign warning fixes. 2020-01-29 06:44:18 +00:00
sshkeygen.h Side-channel-safe rewrite of the Miller-Rabin test. 2021-08-27 18:04:49 +01:00
sshproxy.c Reorganise host key checking and confirmation. 2021-10-25 18:12:17 +01:00
sshpubk.c Fix tight loop on reading truncated key files. 2021-06-12 14:08:10 +01:00
sshrand.c Remove dependency of sshrand.c on SHA-512. 2020-09-13 09:11:31 +01:00
storage.h Reorganise host key checking and confirmation. 2021-10-25 18:12:17 +01:00
testcrypt.c Add some tests of Miller-Rabin to cryptsuite. 2021-08-27 17:43:40 +01:00
testcrypt.h Add some tests of Miller-Rabin to cryptsuite. 2021-08-27 17:43:40 +01:00
testsc.c testsc: remove log_discard(). 2021-09-07 13:46:37 +01:00
testzlib.c Move the SSH implementation into its own subdirectory. 2021-04-22 18:09:13 +01:00
timing.c Whitespace rationalisation of entire code base. 2019-09-08 20:29:21 +01:00
tree234.h Whitespace rationalisation of entire code base. 2019-09-08 20:29:21 +01:00
version.h Replace mkfiles.pl with a CMake build system. 2021-04-17 13:53:02 +01:00
x11disp.c Move the SSH implementation into its own subdirectory. 2021-04-22 18:09:13 +01:00

This is the README for PuTTY, a free Windows and Unix Telnet and SSH
client.

PuTTY is built using CMake <https://cmake.org/>. To compile in the
simplest way (on any of Linux, Windows or Mac), run these commands in
the source directory:

  cmake .
  cmake --build .

Documentation (in various formats including Windows Help and Unix
`man' pages) is built from the Halibut (`.but') files in the `doc'
subdirectory using `doc/Makefile'. If you aren't using one of our
source snapshots, you'll need to do this yourself. Halibut can be
found at <https://www.chiark.greenend.org.uk/~sgtatham/halibut/>.

The PuTTY home web site is

    https://www.chiark.greenend.org.uk/~sgtatham/putty/

If you want to send bug reports or feature requests, please read the
Feedback section of the web site before doing so. Sending one-line
reports saying `it doesn't work' will waste your time as much as
ours.

See the file LICENCE for the licence conditions.