Re: [PATCH net-next v3 02/17] zinc: introduce minimal cryptography library
From: Ard Biesheuvel <hidden>
Date: 2018-09-14 06:21:07
Also in:
lkml, netdev
On 12 September 2018 at 20:34, Eric Biggers [off-list ref] wrote:
On Wed, Sep 12, 2018 at 08:19:21PM +0200, Ard Biesheuvel wrote:quoted
On 12 September 2018 at 20:16, Jason A. Donenfeld [off-list ref] wrote:quoted
Hi Eric, On Wed, Sep 12, 2018 at 12:08 AM Eric Biggers [off-list ref] wrote:quoted
I'd strongly prefer the assembly to be readable too. Jason, I'm not sure if you've actually read through the asm from the OpenSSL implementations, but the generated .S files actually do lose a lot of semantic information that was in the original .pl scripts.The thing to keep in mind is that the .S was not directly and blindly generated from the .pl. We started with the output of the .pl, and then, particularly in the case of x86_64, worked with it a lot, and now it's something a bit different. We've definitely spent a lot of time reading that assembly.Can we please have those changes as a separate patch? Preferably to the .pl file rather than the .S file, so we can easily distinguish the code from upstream from the code that you modified.quoted
I'll see if I can improve the readability with some register name remapping on ARM. No guarantees, but I'll play a bit and see if I can make it a bit better. JasonFWIW, yesterday I made a modified version of poly1305-armv4.pl that generates an asm file that works in kernel mode. The changes are actually pretty small, and I think we can get them upstream into OpenSSL like they were for sha256-armv4.pl and sha512-armv4.pl. I'll start a thread with Andy Polyakov and you two. But I don't have time to help with all the many OpenSSL asm files Jason is proposing, just maybe poly1305-armv4 and chacha-armv4 for now.
Thanks Eric. I reached out to Andy Polyakov off line, and he is happy to work with us again on this, although he did point out that our experiences on ARM may not extrapolate to x86_64, given the fact that the perl sources there also contain parameterization for the calling convention differences between Windows and SysV.