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