Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mRemoteNG/PuTTYNG.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2022-10-31Merge tag 'tags/0.78'HEADmasterDimitrij
2022-10-31mergeDimitrij
2022-10-30small adjustmentDimitrij
2022-10-28Update version number for 0.78 release.Simon Tatham
2022-10-28Unix: stop accessing ctrl->fileselect for font selectors.Simon Tatham
The setup code for CTRL_FILESELECT and CTRL_FONTSELECT is shared, which means it's a mistake to test ctrl->fileselect.just_button in it without first checking which control type we're actually dealing with. UBsan picks this up by complaining that the just_button field contains some byte value that's illegal for a boolean. I think it's also the cause of an intermittent assertion failure reported recently, in which dlg_fontsel_set finds that uc->entry is NULL when it never ought to be. If the byte from the wrong union branch happened to be 0 by sheer bad luck, that could give rise to exactly that failure.
2022-10-23Add missing initialisation of term->osc_strlen.Simon Tatham
An uninitialised value could have got as far as do_osc() via the relatively recent code path for early termination of an OSC before it's fully set up.
2022-10-23Restrict -pwfile / -pw to apply to server prompts only.Simon Tatham
Jacob spotted that an unused -pwfile input can be accidentally used as the answer to Plink's antispoof 'press Return to begin session' prompt, which is unintended and confusing. To fix that, I've made the use of a command-line password conditional on p->to_server, the flag in a prompts_t that indicates whether the results of the prompts are going to be sent directly to the server or consumed locally by PuTTY. (And I've also corrected the setting of to_server in the antispoof prompt, which was true when it should have been false.) A side effect of this is that -pwfile will no longer work to provide a private-key passphrase, if you're using public-key authentication without Pageant. This is deliberate, because if you're doing that on purpose then Pageant is a better way to achieve the same thing (or else just store the key unencrypted, which is no worse); but in the case of a server that sequentially demands public-key _and_ password authentication, the new behaviour makes -pwfile apply to the right one of the two prompts, i.e. the actual password.
2022-10-23Fix outdated comment relating to -pw.Jacob Nevins
2022-10-23README: remove mention of doc/Makefile.Jacob Nevins
While cmake might create it, it's not something we ship any more. This is a combined cherry-pick of: afebe8027fc27b284cd00b244f44f2ecc392f0fe f229aab20c1f2fa7461ff9cac559bcb450228350
2022-10-22Update the pre-release-candidate testing checklist.Simon Tatham
Removed 'try cmake 3.7 on Windows': I think that's not really necessary, because Windows doesn't have the concept of an old overall distro that makes it hard to upgrade a particular build tool. On the other hand, added a big pile of other things I'd like not to forget.
2022-10-22Fix build with GTK3 prior to 3.22.23.Simon Tatham
Those versions of GTK (or rather, GDK) don't support the GDK_WINDOW_STATE_TOP_TILED constants; they only support the non-directional GDK_WINDOW_STATE_TILED. And GTK < 3.10.0 doesn't even support that. All those constants were under #ifdef already; I've just made the ifdefs a bit more precise.
2022-10-22Document subdomain matching of cert expr wildcards.Jacob Nevins
In the manual, in comments, and in a new test.
2022-10-22Docs: fix trivial typo from 6472f7fc77.Jacob Nevins
2022-10-21Tweak certified-host-key prompt.Jacob Nevins
Add a specific reassurance that taking the add-to-cache action will not cause the CA that signed the key to be trusted in any wider context.
2022-10-21Windows host-key warning: reinstate shortcut.Jacob Nevins
The "Cancel" button's keyboard shortcut was accidentally removed by f1c8298000, having only just reinstated it in a77040afa1. (Also, fix a couple of blatantly fibbing "accelerators used" comments.)
2022-10-21Docs: tweak certified-host-key warning responses.Jacob Nevins
Mainly to try to clarify that if you're sat at this warning dialog/ prompt, no response you make to it will cause a new CA to be trusted for signing arbitrary host keys.
2022-10-21Docs: cross-reference host-key warning sections.Jacob Nevins
The 'certified host key' variant of the host key warning always comes with a scary 'POTENTIAL SECURITY BREACH!' message. So the error message section with the scary title that should acknowledge that variant, and the section about that variant should mention the scary warning.
2022-10-21Docs: note "wrong host key" warning is stronger.Jacob Nevins
To try to prime readers learning the often-seen "unknown host key" warning to recognise the rarer and scarier "wrong host key" warning, if they see it.
2022-10-21Fix regressions in Gtk host key "More info".Jacob Nevins
A description like "SHA256 fingerprint:" could run into the previous public key blob; and add a missing colon.
2022-10-21Rename NTRU Prime / Curve25519 kex in UI.Jacob Nevins
The previous name, which included '(quantum-resistant)', was too long to be completely seen in the Windows config dialog's kex list (which is narrower than the Gtk one, due to the Up/Down buttons). No point including that explanation if people can't actually read it, so we'll have to rely on docs to explain it. (I did try squashing the rest of the name to "SNTRUP/X25519 hybrid", but that wasn't enough.) As some sort of compensation, index it more thoroughly in the docs, and while I'm there, tweak the indexing of other key exchange algorithms too.
2022-10-21Docs: update Pageant key list description.Jacob Nevins
GUI Pageant stopped using SSH identifiers for key types in fea08bb244, but the docs were still referring to them. As part of this, ensure that the term "NIST" is thoroughly cross-referenced and indexed, since it now appears so prominently in Pageant. (While I'm there, reword the "it's OK that elliptic-curve keys are smaller than RSA ones" note, as I kept tripping over the old wording.)
2022-10-21Docs: MD5 is forced for SSH-1 key fingerprints.Jacob Nevins
2022-10-21Docs: prime generation defaults are usually fine.Jacob Nevins
2022-10-21Docs: note warning about <2048-bit RSA/DSA keys.Jacob Nevins
2022-10-21Docs: PuTTYgen: fix gratuitous exclusion of PSFTP.Jacob Nevins
2022-10-21Docs: add index alias for "ECDSA".Jacob Nevins
2022-10-21cmdgen: Fix docs and usage messages.Jacob Nevins
Some new cert-related stuff wasn't documented in the usage message and/or man page; and the longer-standing "-E fptype" was entirely omitted from the usage message.
2022-10-21Document Windows PuTTYgen "-t ed25519" / "ed448".Jacob Nevins
2022-10-21Windows PuTTYgen: fit cert info values in dialog.Jacob Nevins
(When an item is too long, as "Fingerprint including certificate" often is, you can at least drag the control to see all of the content.)
2022-10-19Fix installing man pages from our tarballs.Jacob Nevins
As of the cyclic-dependency fix in b01173c6b7, building from our tarball using the instructions in its README (using the source tree as build tree), in the absence of Halibut, would lead to the pre-built man pages not being installed. (Also, a load of "Could not build man page" complaints at cmake generation time, which is how I actually noticed.)
2022-10-12AES-GCM NEON: cope with missing vaddq_p128.Simon Tatham
In some compilers (I'm told clang 10, in particular), the NEON intrinsic vaddq_p128 is missing, even though its input type poly128_t is provided. vaddq_p128 is just an XOR of two vector registers, so that's easy to work around by casting to a more mundane type and back. Added a configure-time test for that intrinsic, and a workaround to be used in its absence.
2022-10-12Windows installer: remove explicit InstallScope setting.Simon Tatham
It turns out this isn't actually necessary after all to make the installer behave in the expected way in the default case (giving a UAC prompt and installing systemwide). And I'm told it has undesirable consequences in more complicated cases, which I'm not expert enough in MSI to fully understand.
2022-09-19Stop trying to include X11 headers in non-GTK builds.Simon Tatham
In commit 732ec31a17a7fea I made the check for libX11 conditional on GTK - but I forgot that if we're building without GTK, I should _define_ NOT_X_WINDOWS, rather than leaving it undefined. As a result, the build would fail on files like unix/utils/x11_ignore_error.c.
2022-09-19Use GTK_LDFLAGS when testing for Pango.Simon Tatham
On FreeBSD, the GTK libraries aren't stored on the standard library path, so pkg-config has to emit a -L option as well as -l options. This worked fine during the main build, but the -L option wasn't being passed through to check_symbol_exists() for the tests of Pango API function availability.
2022-09-19setpgrp cmake check: use #if, not #if defined.Simon Tatham
I still haven't got out of the habit of doing this the autotools way, which doesn't work in cmake. cmake's HAVE_FOO variables are always defined, and they take values 0 or 1, so testing them with 'defined' will return the wrong value.
2022-09-18Add cmake check for whether setpgrp takes arguments.Simon Tatham
FreeBSD declares setpgrp() as taking two arguments, like Linux's setpgid(). Detect that at configure time and adjust the call in Pageant appropriately.
2022-09-18Add explicit cmake setting for 'build without GTK'.Simon Tatham
If you have GTK installed on your system but want to build without it anyway (e.g. if you're buliding a package suitable for headless systems), it's useful to be able to explicitly instruct PuTTY's build system not to use GTK even if it's there. This would already work if you unilaterally set PUTTY_GTK_VERSION to some value other than 1, 2, 3 or ANY. Added NONE as an officially supported option, and included it in the list that cmake-gui will present. Also, made the check for libX11 conditional on having GTK, since there's no need to bother with it otherwise.
2022-09-17GSSAPI fix: don't pass GSS_C_NO_NAME to inquire_cred_by_mech.Simon Tatham
This was pointed out by another compiler warning. The 'name' parameter of inquire_cred_by_mech is not a gss_name_t (which is the type of GSS_C_NO_NAME); it's a gss_name_t *, because it's an _output_ parameter. We're not telling the library that we aren't _passing_ a name: we're telling it that we don't need it to _return_ us a name. So the appropriate null pointer representation is just NULL. (This was harmless apart from a compiler warning, because gss_name_t is a pointer type in turn and GSS_C_NO_NAME expands to a null pointer anyway. It was just a wrongly-typed null pointer.)
2022-09-17Unix GSSAPI: support static linking against Heimdal.Simon Tatham
Heimdal provides its own definitions of OIDs like GSS_C_NT_USER_NAME in the form of macros, which conflict with our attempt to redefine them as variables - the macro gets expanded into the middle of the variable declaration, leaving the poor C compiler trying to parse a non-declaration along the lines of const_gss_OID (&__gss_c_nt_anonymous_oid_desc) = oids+5; Easily fixed by just not redefining these at all if they're already defined as macros. To make that easier, I've broken up the oids[] array into individual gss_OID_desc declarations, so I can put each one inside the appropriate ifdef. In the process, I've removed the 'const' from the gss_OID_desc declarations. That's on purpose! The problem is that not all implementations of the GSSAPI headers make const_gss_OID a pointer to a *const* gss_OID_desc; sometimes it's just a plain one and the 'const' prefix is just a comment to the user. So removing that const prevents compiler warnings (or worse) about address-taking a const thing and assigning it into a non-const pointer.
2022-09-17Unix static GSSAPI: fix an uninitialised structure field.Simon Tatham
When linking statically against Kerberos, the setup code in ssh_got_ssh_version() was trying to look up want_id==0 in the list of one GSSAPI library, but unfortunately, the id field of that record was not initialised at all, so if it happened to be nonzero nonsense, the loop wouldn't find a library at all and would fail an assertion.
2022-09-17Unix GSSAPI: support krb5-config as well as pkg-config.Simon Tatham
On FreeBSD, I'm told, you can't configure Kerberos via pkg-config. So we need a fallback. Here's some manual code to run krb5-config and pick apart the result, similar to what I already did with gtk-config for our (still not dead!) GTK 1 support.
2022-09-14New FAQ entry about the Microsoft Store.Jacob Nevins
2022-09-13GSSAPI kex: don't call dh_is_gex() on ECDH algorithms.Simon Tatham
dh_is_gex() expects to find a 'struct dh_extra' in the 'extra' field of the kex_alg you pass in, and won't look kindly on finding an instance of some totally different structure type. We were being careful about that everywhere in the GSSAPI kex code except for the final free step.
2022-09-13windows/window.c: make random_save_seed call unconditional.Simon Tatham
The conditionalisation of that call on 'protocol == PROT_SSH' has been around since the beginning of our git history. But in those days, random_save_seed() was unconditional _internally_ - it would always create and write to the seed file regardless of whether the random pool had even been initialised, let alone used. Now random_save_seed() has its own internal condition which prevents it doing anything if the random subsystem was never started up in the first place. So it's better to call it unconditionally from cleanup_exit, and then it'll be able to do its thing whenever needed, without having to second-guess based on the top-level protocol. (In fact, that's what all the other implementations of cleanup_exit() have done all along. On Unix, and in Windows console apps, we do call random_save_seed() unconditionally, and expect it to uncomplainingly do nothing if there's nothing to do.) (cherry picked from commit 260aad5fcac562702a799d945d48ad8b0e26d29c)
2022-09-13wintw_request_resize: add missing NACKs.Simon Tatham
In cases where we refuse a resize request, either because it's too large or because the window is not currently resizable due to being maximised, we were failing to communicate that back to the Terminal so that it could stop waiting for the resize and resume processing input.
2022-09-13Windows: remove static variables in wintw_request_resize.Simon Tatham
Those have been there since around 2001. They're in a piece of code that calls get_fullscreen_rect to find the overall screen size, and then prevents attempts to resize the window larger than that. The static variables were arranging that we don't have to call get_fullscreen_rect more than once. But, firstly, computers are faster 20 years on; secondly, remote window-resize requests are intentionally rate-limited (as of commit d74308e90e3813a), so this shouldn't be the limiting factor anyway; and thirdly, multi-monitor support has appeared since then, which means that if the window has been dragged from one monitor to another then get_fullscreen_rect might _legitimately_ return a different bounding rectangle when called a second time. So we should just do the full check every time unconditionally. (cherry picked from commit 4b3a8cbf61ce4ee19227784ba27c52a9e47774fb)
2022-09-12Remove FTP from release machinery.Simon Tatham
We withdrew our FTP download links in July, when chiark's OS upgrade made its previous ftpd go away. We've had no complaints at all about that, so I think it's time to decide that FTP is officially obsolete, and remove it from the script that does the uploads, and from the release checklist.
2022-09-12Change priority of new Diffie-Hellman groups.Simon Tatham
In the initial commit 031d86ed5ba4dd4 that introduced them, I accidentally put them below the 'warn about insecurity' line, which I didn't mean to. Moved them up to just above the existing group14. Also, I've arranged them in a slightly weird order, so that the most preferred group of this collection is the medium-sized group16, followed by the larger ones (17 and 18) and then the smaller 15. Rationale: larger is better _until_ it starts costing way too much CPU time, and group18 can grind quite painfully on a slow machine. (And of course users are free to reconfigure if they have different preferences.) This isn't really ideal, of course. The idea that you might not want to use group18 *because it's slow* contradicts the basic concept of PuTTY's current crypto-preferences UI, which assumes that you rank things by security, which is why there's a dividing line below which things are assumed insecure. I hope that in a future release we'll rework the UI so that you can express more subtle ideas of what crypto you do and don't like. But this will do for the moment. The GSS versions of the same DH methods are reordered similarly.
2022-09-12opensshcert_components: switch expiry times to UTC.Simon Tatham
Jacob points out that the output of 'puttygen --dump', where the key_components are used, is much more likely to need to be machine- than human-readable, and so it makes more sense to use a date/time format that's invariant under external changes such as locale. (He also points out that Windows's time zone description strings are overly verbose!)
2022-09-12Standardise RFC URLs in docs and comments.Jacob Nevins
(Plus one internet-draft URL.)