[Arm-dev] Fwd: Re: Does openssl pick low level interface or high level interface to do encrypt?
Robert Moskowitz
rgm at htt-consult.com
Fri Aug 11 13:00:50 UTC 2017
Gordon, thanks for the response.
On 08/11/2017 08:42 AM, Gordan Bobic wrote:
> Most ARMs have hardware crypto.
>
> IIRC, aarch64 chips have AES inline instruction like modern x86 CPUs.
> OpenSSL that ships with CentOS aarch64 already takes advantage of this.
Maybe when I retire (could be as early as start of '19, but by start of
'21), I will move to aarch64 SoC. :)
> On armv7hl and earlier, they typically come with an asynchronous
> crypto coprocessor. What this does is allows the application to
> provide a source data pointer, key, and target data pointer, and waits
> for the co-processor to do it's thing.
> The upshot of this is what while the process is iowaiting for the
> response, the kernel can schedule other things requiring CPU time to
> run, so the main CPU can be productively busy while something else is
> doing the crypto. On a Marvell Kirkwood, the crypto throughput of this
> co-processor is approximately the same as what the main CPU can
> produce, but does so while consuming less power and leaving the CPU
> free to do other things, potentially doubling the throughput.
>
> To use this, you will need to:
>
> 1) build and install this kernel module:
> http://cryptodev-linux.org/
> 2) Recompile your openssl package with a modified ./configure line to
> enable cryptodev offload
I would like to think this is in the C7-armv7hl we are working with...
> 3) Rebuild openssh package to back out RedHat's audit patch because it
> breaks things horribly. IIRC (it's been a while since I worked on
> this), RH's audit patch adds functionality to store the session crypto
> keys used in the audit log for debugging. Unfortunately, once you have
> passed the crypto keys to the crypto coprocessor, you cannot get to
> them, so the code attempts the equivalent of use-after-free, which
> (thankfully) fails and crashes sshd. In reality what you are much
> better off doing is creating a SRPM of a clean vanilla latest upstream
> openssh source and just using that, without any broken distro patches
> getting in the way.
I don't care so much about SSH. This is used occasionally for admin
work. https would be very frequent (and imaps, and ...).
>
>
>
> On Fri, Aug 11, 2017 at 1:08 PM, Robert Moskowitz <rgm at htt-consult.com
> <mailto:rgm at htt-consult.com>> wrote:
>
> How does OpenSSL work on ARM?
>
> Do any arms have hardware crypto?
>
> thanks
>
>
> -------- Forwarded Message --------
> Subject: Re: [openssl-users] Does openssl pick low level
> interface or high level interface to do encrypt?
> Date: Thu, 10 Aug 2017 15:16:09 +0000
> From: Salz, Rich via openssl-users <openssl-users at openssl.org>
> <mailto:openssl-users at openssl.org>
> Reply-To: Salz, Rich <rsalz at akamai.com>
> <mailto:rsalz at akamai.com>, openssl-users at openssl.org
> <mailto:openssl-users at openssl.org>
> To: openssl-users at openssl.org <mailto:openssl-users at openssl.org>
> <openssl-users at openssl.org> <mailto:openssl-users at openssl.org>
>
>
>
> What OpenSSL does is not necessarily obvious. The INSTALL
> document talks about the no-asm configuration option. Details
> about what the assembler code does in terms of optimization are
> only available by reading the source code comments in the various
> Perl files that generate the assembler, mostly.
>
> On x86, the assembly code uses the CPUID instruction (see the
> OPENSSL_ia32cap.pod manpage) to determine if various instructions
> (AES, SSE, MMX, etc) are available and will use them if so. For
> other processors, similar tests are performed if at all possible.
>
> I have added this to the FAQ
>
> --
>
> Senior Architect, Akamai Technologies
>
> Member, OpenSSL Dev Team
>
> IM: richsalz at jabber.at <mailto:richsalz at jabber.at> Twitter: RichSalz
>
> *From:*- JinsongJi [mailto:jjsbear at hotmail.com]
> *Sent:* Wednesday, August 09, 2017 9:09 AM
> *To:* openssl-users at openssl.org <mailto:openssl-users at openssl.org>
> *Subject:* [openssl-users] Does openssl pick low level interface
> or high level interface to do encrypt?
>
> Hi,
>
> For one simple operation: openssl enc -aes-256-cbc -salt -in
> foo.txt -out foo.enc
>
> Does openssl pick classic implementation or AES-NI implementation
> to do this encrypt?
>
> Does any user/application always pick classic implementation
> for AES operation regardless of AES-NI improves speed much?
>
> Is there any document about this interface selection?
>
> Thanks,
>
> Jinsong
>
>
> _______________________________________________
> Arm-dev mailing list
> Arm-dev at centos.org <mailto:Arm-dev at centos.org>
> https://lists.centos.org/mailman/listinfo/arm-dev
> <https://lists.centos.org/mailman/listinfo/arm-dev>
>
>
>
>
> _______________________________________________
> Arm-dev mailing list
> Arm-dev at centos.org
> https://lists.centos.org/mailman/listinfo/arm-dev
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.centos.org/pipermail/arm-dev/attachments/20170811/809e7fb7/attachment.html>
More information about the Arm-dev
mailing list