[openssl-dev] AF_ALG engine support and kernel versions

Grandi, Andrea andrea.grandi at intel.com
Wed Mar 30 12:34:15 UTC 2016


Hi Jeffrey,

I have checked with Tadeusz, which is one of the contributors for AF_alg .
Here is what he said with regard to your question about the version number.

_______
The async operation on a socket has been added with this this commit:

commit 0345f93138b2224e0d7ce91fcffdb3dd23f364d7
Author: tadeusz.struk at intel.com <tadeusz.struk at intel.com>
Date:   Thu Mar 19 12:31:25 2015 -0700

    net: socket: add support for async operations
    
    Add support for async operations.
    
    Signed-off-by: Tadeusz Struk <tadeusz.struk at intel.com>
    Signed-off-by: David S. Miller <davem at davemloft.net>

Before this change it didn't work i.e it was translated to a sync call.
This change has been released in 4.1 kernel.
______

Hope this is useful!!

Andrea


-----Original Message-----
From: openssl-dev [mailto:openssl-dev-bounces at openssl.org] On Behalf Of Jeffrey Walton
Sent: Saturday, March 26, 2016 6:56 PM
To: OpenSSL Developer ML
Subject: Re: [openssl-dev] AF_ALG engine support and kernel versions

On Thu, Mar 17, 2016 at 11:38 PM, Jeffrey Walton <noloader at gmail.com> wrote:
> Hi Everyone,
>
> Looking at the code in engines/afalg/e_afalg.c, there is the following:
>
>   ...
>   #define K_MAJ   4
>   #define K_MIN1  1
>   #define K_MIN2  0
>   #if LINUX_VERSION_CODE <= KERNEL_VERSION(K_MAJ, K_MIN1, K_MIN2)
>   # warning "AFALG ENGINE requires Kernel Headers >= 4.1.0"
>   # warning "Skipping Compilation of AFALG engine"
>   #else
>   ...
>
> It appears AF_ALG was added to the kernel at 2.6.38. Asynchronous I/O 
> support appears to have surfaced in the kernel at 2.5.23.
>
> Where is the requirement for 4.1 coming from?

This requirement does not look quite right. I've got a Ubuntu 3.19.0-56-generic kernel running on a 5th gen i7 that provides some async drivers for the ciphers. I've also got a Ubuntu 4.2.0-34-generic kernel running on an old VIA C7 that does not provide any async ciphers.

I'm also building out-of-tree crypto kernel modules that have the latest patches. In this case, the kernel version has nothing to do with availability of async ciphers.

Does anyone know where the requirement is coming from?

Thanks in advance.

**********

# Newer, Intel 5th gen Core-i7

$ uname -r
3.19.0-56-generic

$ sudo cat /proc/crypto | egrep '^(name|driver|async|$)'
name         : crct10dif
driver       : crct10dif-pclmul

name         : crc32
driver       : crc32-pclmul

name         : xts(aes)
driver       : xts-aes-aesni
async        : yes

name         : lrw(aes)
driver       : lrw-aes-aesni
async        : yes

name         : __xts-aes-aesni
driver       : __driver-xts-aes-aesni

name         : __lrw-aes-aesni
driver       : __driver-lrw-aes-aesni

name         : pcbc(aes)
driver       : pcbc-aes-aesni
async        : yes

name         : rfc4106(gcm(aes))
driver       : rfc4106-gcm-aesni
async        : yes

name         : __gcm-aes-aesni
driver       : __driver-gcm-aes-aesni
async        : no

name         : ctr(aes)
driver       : ctr-aes-aesni
async        : yes

name         : __ctr-aes-aesni
driver       : __driver-ctr-aes-aesni

name         : cbc(aes)
driver       : cbc-aes-aesni
async        : yes

name         : ecb(aes)
driver       : ecb-aes-aesni
async        : yes

name         : __cbc-aes-aesni
driver       : __driver-cbc-aes-aesni

name         : __ecb-aes-aesni
driver       : __driver-ecb-aes-aesni

name         : __aes-aesni
driver       : __driver-aes-aesni

name         : aes
driver       : aes-aesni

name         : aes
driver       : aes-asm

name         : hmac(sha256)
driver       : hmac(sha256-generic)

name         : hmac(sha1)
driver       : hmac(sha1-generic)

name         : skein1024
driver       : skein

name         : skein512
driver       : skein

name         : skein256
driver       : skein

name         : stdrng
driver       : krng

name         : lzo
driver       : lzo-generic

name         : crct10dif
driver       : crct10dif-generic

name         : crc32c
driver       : crc32c-generic

name         : aes
driver       : aes-generic

name         : sha384
driver       : sha384-generic

name         : sha512
driver       : sha512-generic

name         : sha224
driver       : sha224-generic

name         : sha256
driver       : sha256-generic

name         : sha1
driver       : sha1-generic

name         : md5
driver       : md5-generic

name         : crc32c
driver       : crc32c-intel

*****

# Older, VIA C7 machine

$ uname -r
4.2.0-34-generic

$ sudo cat /proc/crypto | egrep '^(name|driver|async|$)'
name         : sha256
driver       : sha256-padlock

name         : sha1
driver       : sha1-padlock

name         : cbc(aes)
driver       : cbc-aes-padlock

name         : ecb(aes)
driver       : ecb-aes-padlock

name         : aes
driver       : aes-padlock

name         : lzo
driver       : lzo-generic

name         : crct10dif
driver       : crct10dif-generic

name         : crc32c
driver       : crc32c-generic

name         : aes
driver       : aes-generic

name         : sha384
driver       : sha384-generic

name         : sha512
driver       : sha512-generic

name         : sha224
driver       : sha224-generic

name         : sha256
driver       : sha256-generic

name         : sha1
driver       : sha1-generic

name         : md5
driver       : md5-generic

via:linux$
--
openssl-dev mailing list
To unsubscribe: https://mta.openssl.org/mailman/listinfo/openssl-dev
--------------------------------------------------------------
Intel Research and Development Ireland Limited
Registered in Ireland
Registered Office: Collinstown Industrial Park, Leixlip, County Kildare
Registered Number: 308263


This e-mail and any attachments may contain confidential material for the sole
use of the intended recipient(s). Any review or distribution by others is
strictly prohibited. If you are not the intended recipient, please contact the
sender and delete all copies.



More information about the openssl-dev mailing list