simon-git: putty (master): Simon Tatham
Commits to Tartarus hosted VCS
tartarus-commits at lists.tartarus.org
Wed Jan 16 22:18:50 GMT 2019
TL;DR:
1ce95c7a cryptsuite: another Python 3 compatibility fix.
53747ad3 Support hardware AES on Arm platforms.
Repository: https://git.tartarus.org/simon/putty.git
On the web: https://git.tartarus.org/?p=simon/putty.git
Branch updated: master
Committer: Simon Tatham <anakin at pobox.com>
Date: 2019-01-16 22:18:50
commit 1ce95c7ad86a5372a40559a3d8041b8cae6e7fa5
web diff https://git.tartarus.org/?p=simon/putty.git;a=commitdiff;h=1ce95c7ad86a5372a40559a3d8041b8cae6e7fa5;hp=8d88cd21ef760e691faf8fe075b38399e34a34ad
Author: Simon Tatham <anakin at pobox.com>
Date: Wed Jan 16 21:12:43 2019 +0000
cryptsuite: another Python 3 compatibility fix.
Ahem. Re-broke P3 compatibility later in the same batch of commits
that fixed it!
test/cryptsuite.py | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
commit 53747ad3ab6194ebd54958a4ca0abcf73a457466
web diff https://git.tartarus.org/?p=simon/putty.git;a=commitdiff;h=53747ad3ab6194ebd54958a4ca0abcf73a457466;hp=1ce95c7ad86a5372a40559a3d8041b8cae6e7fa5
Author: Simon Tatham <anakin at pobox.com>
Date: Wed Jan 16 22:08:45 2019 +0000
Support hardware AES on Arm platforms.
The refactored sshaes.c gives me a convenient slot to drop in a second
hardware-accelerated AES implementation, similar to the existing one
but using Arm NEON intrinsics in place of the x86 AES-NI ones.
This needed a minor structural change, because Arm systems are often
heterogeneous, containing more than one type of CPU which won't
necessarily all support the same set of architecture features. So you
can't test at run time for the presence of AES acceleration by
querying the CPU you're running on - even if you found a way to do it,
the answer wouldn't be reliable once the OS started migrating your
process between CPUs. Instead, you have to ask the OS itself, because
only that knows about _all_ the CPUs on the system. So that means the
aes_hw_available() mechanism has to extend a tentacle into each
platform subdirectory.
The trickiest part was the nest of ifdefs that tries to detect whether
the compiler can support the necessary parts. I had successful
test-compiles on several compilers, and was able to run the code
directly on an AArch64 tablet (so I know it passes cryptsuite), but
it's likely that at least some Arm platforms won't be able to build it
because of some path through the ifdefs that I haven't been able to
test yet.
Recipe | 4 +-
ssh.h | 8 ++
sshaes.c | 345 +++++++++++++++++++++++++++++++++++++++++++++++++++++
unix/uxutils.c | 26 ++++
windows/winmiscs.c | 9 ++
5 files changed, 390 insertions(+), 2 deletions(-)
More information about the tartarus-commits
mailing list