1
0
mirror of https://git.tartarus.org/simon/putty.git synced 2025-01-09 17:38:00 +00:00
putty-source/windows
Simon Tatham fca13a17b1 Break up crypto modules containing HW acceleration.
This applies to all of AES, SHA-1, SHA-256 and SHA-512. All those
source files previously contained multiple implementations of the
algorithm, enabled or disabled by ifdefs detecting whether they would
work on a given compiler. And in order to get advanced machine
instructions like AES-NI or NEON crypto into the output file when the
compile flags hadn't enabled them, we had to do nasty stuff with
compiler-specific pragmas or attributes.

Now we can do the detection at cmake time, and enable advanced
instructions in the more sensible way, by compile-time flags. So I've
broken up each of these modules into lots of sub-pieces: a file called
(e.g.) 'foo-common.c' containing common definitions across all
implementations (such as round constants), one called 'foo-select.c'
containing the top-level vtable(s), and a separate file for each
implementation exporting just the vtable(s) for that implementation.

One advantage of this is that it depends a lot less on compiler-
specific bodgery. My particular least favourite part of the previous
setup was the part where I had to _manually_ define some Arm ACLE
feature macros before including <arm_neon.h>, so that it would define
the intrinsics I wanted. Now I'm enabling interesting architecture
features in the normal way, on the compiler command line, there's no
need for that kind of trick: the right feature macros are already
defined and <arm_neon.h> does the right thing.

Another change in this reorganisation is that I've stopped assuming
there's just one hardware implementation per platform. Previously, the
accelerated vtables were called things like sha256_hw, and varied
between FOO-NI and NEON depending on platform; and the selection code
would simply ask 'is hw available? if so, use hw, else sw'. Now, each
HW acceleration strategy names its vtable its own way, and the
selection vtable has a whole list of possibilities to iterate over
looking for a supported one. So if someone feels like writing a second
accelerated implementation of something for a given platform - for
example, I've heard you can use plain NEON to speed up AES somewhat
even without the crypto extension - then it will now have somewhere to
drop in alongside the existing ones.
2021-04-21 21:55:26 +01:00
..
utils Break up crypto modules containing HW acceleration. 2021-04-21 21:55:26 +01:00
CMakeLists.txt Rename one of my cmake support functions. (NFC) 2021-04-19 18:26:56 +01:00
installer.wxs Whitespace rationalisation of entire code base. 2019-09-08 20:29:21 +01:00
make_install_images.sh Remove white dialog background in MSI user interface. 2020-06-21 16:39:47 +01:00
msifixup.py Remove white dialog background in MSI user interface. 2020-06-21 16:39:47 +01:00
pageant-rc.h winpgnt: add GUI button to re-encrypt an SSH-2 key. 2021-04-04 09:44:00 +01:00
pageant.ico Tweak the icon script, and the generated icons, to more closely 2007-01-07 10:17:12 +00:00
pageant.mft Whitespace rationalisation of entire code base. 2019-09-08 20:29:21 +01:00
pageant.rc winpgnt: add GUI button to re-encrypt an SSH-2 key. 2021-04-04 09:44:00 +01:00
pageants.ico Tweak the icon script, and the generated icons, to more closely 2007-01-07 10:17:12 +00:00
platform.h Make cmake.h available everywhere. 2021-04-19 18:26:56 +01:00
plink.rc
pscp.ico Tweak the icon script, and the generated icons, to more closely 2007-01-07 10:17:12 +00:00
pscp.rc
psftp.rc
putty.ico Tweak the icon script, and the generated icons, to more closely 2007-01-07 10:17:12 +00:00
putty.mft Windows 10: add per monitor DPI awareness support. 2021-04-02 19:04:19 +01:00
putty.rc Fix typo in application description. 2021-02-21 23:07:02 +00:00
puttycfg.ico Tweak the icon script, and the generated icons, to more closely 2007-01-07 10:17:12 +00:00
puttygen-rc.h PuTTYgen: option to control Argon2 flavour. 2021-02-23 18:26:50 +00:00
puttygen.ico Tweak the icon script, and the generated icons, to more closely 2007-01-07 10:17:12 +00:00
puttygen.mft Whitespace rationalisation of entire code base. 2019-09-08 20:29:21 +01:00
puttygen.rc PuTTYgen: use the term "passphrase hash". 2021-04-19 17:55:50 +01:00
puttyins.ico `installer.ico' doesn't fit into 8.3, so gets truncated to INSTALLE.ICO in 2007-02-06 22:39:15 +00:00
puttytel.mft Windows 10: add per monitor DPI awareness support. 2021-04-02 19:04:19 +01:00
puttytel.rc Tweak version string resources for EMBED_CHM. 2019-03-16 12:25:23 +00:00
rcstuff.h Replace mkfiles.pl with a CMake build system. 2021-04-17 13:53:02 +01:00
README-msi.txt Remove note about .CHM on network drives. 2019-03-18 21:53:45 +00:00
sizetip.c Formatting change to braces around one case of a switch. 2020-02-16 11:26:21 +00:00
version.rc2 FIXME about Windows resource CHMfulness hint. 2019-03-18 22:02:13 +00:00
website.url Switch chiark URLs to https. 2017-05-07 16:29:01 +01:00
win_res.h GUI host key prompts: add 'More info' subdialog. 2021-03-13 13:54:59 +00:00
win_res.rc2 GUI host key prompts: add 'More info' subdialog. 2021-03-13 13:54:59 +00:00
wincapi.h Remove the NO_SECURITY compile-time option. 2021-04-17 13:53:02 +01:00
wincfg.c Rework per-backend GUI configuration. 2020-03-10 21:27:57 +00:00
wincliloop.c Fix a few memory leaks spotted by Coverity. 2021-04-10 08:59:27 +01:00
wincons.c Console host key prompts: add 'more info' action. 2021-03-13 13:54:59 +00:00
winctrls.c dialog system: add a side-by-side alignment feature. 2021-04-10 09:43:25 +01:00
windlg.c Fix a mismatch of GetWindowLong with GWLP_*. 2021-04-11 09:55:21 +01:00
window.c Replace mkfiles.pl with a CMake build system. 2021-04-17 13:53:02 +01:00
wingss.c Replace mkfiles.pl with a CMake build system. 2021-04-17 13:53:02 +01:00
winhandl.c Fix a few 'triple letter in place of double' typos. 2021-01-17 09:18:42 +00:00
winhelp.c Remove most traces of WinHelp support. 2019-03-26 00:27:04 +00:00
winhelp.h winpgen: Context help for PPK params. 2021-04-20 16:06:01 +01:00
winhelp.rc2 Replace mkfiles.pl with a CMake build system. 2021-04-17 13:53:02 +01:00
winhsock.c Replace mkfiles.pl with a CMake build system. 2021-04-17 13:53:02 +01:00
winjump.c Make dupcat() into a variadic macro. 2019-10-14 19:42:37 +01:00
winnet.c Remove #ifdef COVERITY. 2021-04-10 14:45:24 +01:00
winnohlp.c Stop looking for putty.chm alongside the binary. 2019-03-16 12:25:23 +00:00
winnoise.c Whitespace rationalisation of entire code base. 2019-09-08 20:29:21 +01:00
winnojmp.c Fix up svn:eol-style and svn:keywords on new files. 2010-12-27 00:24:48 +00:00
winnpc.c Remove the NO_SECURITY compile-time option. 2021-04-17 13:53:02 +01:00
winnps.c Remove the NO_SECURITY compile-time option. 2021-04-17 13:53:02 +01:00
winpgen.c winpgen: Context help for PPK params. 2021-04-20 16:06:01 +01:00
winpgnt.c Remove stub functions that are no longer needed. 2021-04-18 08:30:44 +01:00
winpgntc.c Remove the NO_SECURITY compile-time option. 2021-04-17 13:53:02 +01:00
winplink.c Document -ssh-connection (and -ssh) options. 2021-04-19 16:36:23 +01:00
winprint.c Whitespace rationalisation of entire code base. 2019-09-08 20:29:21 +01:00
winproxy.c Make the plug_log type code into an enum. 2020-02-07 19:17:45 +00:00
winseat.h GUI PuTTY: stop using the global 'hwnd'. 2020-02-02 10:02:10 +00:00
winsecur.h Remove the NO_SECURITY compile-time option. 2021-04-17 13:53:02 +01:00
winselcli.c Const-correctness in do_select() return value. 2020-01-04 13:52:22 +00:00
winselgui.c Const-correctness in do_select() return value. 2020-01-04 13:52:22 +00:00
winser.c Fixes from an attempted winelib build. 2021-04-09 12:26:15 +01:00
winsftp.c winsftp.c: avoid creating multiple netevents. 2020-02-09 08:19:21 +00:00
winshare.c Remove the NO_SECURITY compile-time option. 2021-04-17 13:53:02 +01:00
winsocks.c Auxiliary application: 'psocks', a simple SOCKS server. 2020-02-23 16:36:27 +00:00
winstore.c Make dupcat() into a variadic macro. 2019-10-14 19:42:37 +01:00
winucs.c Whitespace rationalisation of entire code base. 2019-09-08 20:29:21 +01:00
winx11.c Whitespace rationalisation of entire code base. 2019-09-08 20:29:21 +01:00