[strongSwan] Parallel crypto questions on Centos 7
Eric Germann
ekgermann at semperen.com
Mon Oct 31 18:47:57 CET 2016
Hello all,
I’m working through trying to parallelize crypto as found in https://wiki.strongswan.org/projects/strongswan/wiki/Pcrypt <https://wiki.strongswan.org/projects/strongswan/wiki/Pcrypt>
Running Centos 7 HVM AMI in AWS supplied by the Centos project.
Linux ip-100-125-0-18.ec2.internal 3.10.0-327.36.3.el7.x86_64 #1 SMP Mon Oct 24 16:09:20 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux
The crypto I’m using is
ike = aes128gcm16-aes128gmac-prfsha256-ecp256!
esp = aes128gcm16-ecp256!
When I load the drivers:
modprobe pcrypt
modprobe tcrypt alg="pcrypt(rfc4106(gcm(aes)))" type=3
I don’t see the expected messages in dmesg.
[ 7532.356768] tcrypt: one or more tests failed!
Further up in dmesg, I see:
[ 3.542310] alg: No test for __gcm-aes-aesni (__driver-gcm-aes-aesni)
Questions:
1) Are the messages benign (and the wiki is a bit out of date for C7?
2) I don’t see a significant change in performance between the two hosts (shooting a 1GB file via nc over the link). Should I or does it need to be loaded up with multiple flows going on to see an impact?
For reference, here’s the output of /proc/crypto
name : rfc4106(gcm(aes))
driver : pcrypt(rfc4106-gcm-aesni)
module : pcrypt
priority : 500
refcnt : 1
selftest : passed
type : aead
async : yes
blocksize : 1
ivsize : 8
maxauthsize : 16
geniv : seqiv
name : __ctr-aes-aesni
driver : cryptd(__driver-ctr-aes-aesni)
module : cryptd
priority : 50
refcnt : 1
selftest : passed
type : ablkcipher
async : yes
blocksize : 1
min keysize : 16
max keysize : 32
ivsize : 16
geniv : <default>
name : ctr(aes)
driver : ctr-aes-aesni
module : kernel
priority : 400
refcnt : 1
selftest : passed
type : givcipher
async : yes
blocksize : 1
min keysize : 16
max keysize : 32
ivsize : 16
geniv : chainiv
name : __gcm-aes-aesni
driver : cryptd(__driver-gcm-aes-aesni)
module : cryptd
priority : 50
refcnt : 14
selftest : passed
type : aead
async : yes
blocksize : 1
ivsize : 0
maxauthsize : 0
geniv : <built-in>
name : rfc4106(gcm(aes))
driver : rfc4106-gcm-aesni
module : kernel
priority : 400
refcnt : 14
selftest : passed
type : aead
async : yes
blocksize : 1
ivsize : 8
maxauthsize : 16
geniv : seqiv
name : stdrng
driver : drbg_nopr_hmac_sha256
module : drbg
priority : 221
refcnt : 2
selftest : passed
type : rng
seedsize : 0
name : stdrng
driver : drbg_nopr_hmac_sha512
module : drbg
priority : 220
refcnt : 1
selftest : passed
type : rng
seedsize : 0
name : stdrng
driver : drbg_nopr_hmac_sha384
module : drbg
priority : 219
refcnt : 1
selftest : passed
type : rng
seedsize : 0
name : stdrng
driver : drbg_nopr_hmac_sha1
module : drbg
priority : 218
refcnt : 1
selftest : passed
type : rng
seedsize : 0
name : stdrng
driver : drbg_nopr_sha256
module : drbg
priority : 217
refcnt : 1
selftest : passed
type : rng
seedsize : 0
name : stdrng
driver : drbg_nopr_sha512
module : drbg
priority : 216
refcnt : 1
selftest : passed
type : rng
seedsize : 0
name : stdrng
driver : drbg_nopr_sha384
module : drbg
priority : 215
refcnt : 1
selftest : passed
type : rng
seedsize : 0
name : stdrng
driver : drbg_nopr_sha1
module : drbg
priority : 214
refcnt : 1
selftest : passed
type : rng
seedsize : 0
name : stdrng
driver : drbg_nopr_ctr_aes256
module : drbg
priority : 213
refcnt : 1
selftest : passed
type : rng
seedsize : 0
name : stdrng
driver : drbg_nopr_ctr_aes192
module : drbg
priority : 212
refcnt : 1
selftest : passed
type : rng
seedsize : 0
name : stdrng
driver : drbg_nopr_ctr_aes128
module : drbg
priority : 211
refcnt : 1
selftest : passed
type : rng
seedsize : 0
name : stdrng
driver : drbg_pr_hmac_sha256
module : drbg
priority : 210
refcnt : 1
selftest : passed
type : rng
seedsize : 0
name : stdrng
driver : drbg_pr_hmac_sha512
module : drbg
priority : 209
refcnt : 1
selftest : passed
type : rng
seedsize : 0
name : stdrng
driver : drbg_pr_hmac_sha384
module : drbg
priority : 208
refcnt : 1
selftest : passed
type : rng
seedsize : 0
name : stdrng
driver : drbg_pr_hmac_sha1
module : drbg
priority : 207
refcnt : 1
selftest : passed
type : rng
seedsize : 0
name : stdrng
driver : drbg_pr_sha256
module : drbg
priority : 206
refcnt : 1
selftest : passed
type : rng
seedsize : 0
name : stdrng
driver : drbg_pr_sha512
module : drbg
priority : 205
refcnt : 1
selftest : passed
type : rng
seedsize : 0
name : stdrng
driver : drbg_pr_sha384
module : drbg
priority : 204
refcnt : 1
selftest : passed
type : rng
seedsize : 0
name : stdrng
driver : drbg_pr_sha1
module : drbg
priority : 203
refcnt : 1
selftest : passed
type : rng
seedsize : 0
name : stdrng
driver : drbg_pr_ctr_aes256
module : drbg
priority : 202
refcnt : 1
selftest : passed
type : rng
seedsize : 0
name : stdrng
driver : drbg_pr_ctr_aes192
module : drbg
priority : 201
refcnt : 1
selftest : passed
type : rng
seedsize : 0
name : ecb(aes)
driver : ecb(aes-aesni)
module : kernel
priority : 300
refcnt : 1
selftest : passed
type : blkcipher
blocksize : 16
min keysize : 16
max keysize : 32
ivsize : 0
geniv : <default>
name : stdrng
driver : drbg_pr_ctr_aes128
module : drbg
priority : 200
refcnt : 1
selftest : passed
type : rng
seedsize : 0
name : fips(ansi_cprng)
driver : fips_ansi_cprng
module : ansi_cprng
priority : 300
refcnt : 1
selftest : passed
type : rng
seedsize : 48
name : stdrng
driver : ansi_cprng
module : ansi_cprng
priority : 100
refcnt : 1
selftest : passed
type : rng
seedsize : 48
name : crc32
driver : crc32-pclmul
module : crc32_pclmul
priority : 200
refcnt : 1
selftest : passed
type : shash
blocksize : 1
digestsize : 4
name : __ghash
driver : cryptd(__ghash-pclmulqdqni)
module : cryptd
priority : 50
refcnt : 1
selftest : passed
type : ahash
async : yes
blocksize : 16
digestsize : 16
name : ghash
driver : ghash-clmulni
module : ghash_clmulni_intel
priority : 400
refcnt : 1
selftest : passed
type : ahash
async : yes
blocksize : 16
digestsize : 16
name : __ghash
driver : __ghash-pclmulqdqni
module : ghash_clmulni_intel
priority : 0
refcnt : 1
selftest : passed
type : shash
blocksize : 16
digestsize : 16
name : xts(aes)
driver : xts-aes-aesni
module : aesni_intel
priority : 400
refcnt : 1
selftest : passed
type : ablkcipher
async : yes
blocksize : 16
min keysize : 32
max keysize : 64
ivsize : 16
geniv : <default>
name : lrw(aes)
driver : lrw-aes-aesni
module : aesni_intel
priority : 400
refcnt : 1
selftest : passed
type : ablkcipher
async : yes
blocksize : 16
min keysize : 32
max keysize : 48
ivsize : 16
geniv : <default>
name : __xts-aes-aesni
driver : __driver-xts-aes-aesni
module : aesni_intel
priority : 0
refcnt : 1
selftest : passed
type : blkcipher
blocksize : 16
min keysize : 32
max keysize : 64
ivsize : 16
geniv : <default>
name : __lrw-aes-aesni
driver : __driver-lrw-aes-aesni
module : aesni_intel
priority : 0
refcnt : 1
selftest : passed
type : blkcipher
blocksize : 16
min keysize : 32
max keysize : 48
ivsize : 16
geniv : <default>
name : pcbc(aes)
driver : pcbc-aes-aesni
module : aesni_intel
priority : 400
refcnt : 1
selftest : passed
type : ablkcipher
async : yes
blocksize : 16
min keysize : 16
max keysize : 32
ivsize : 16
geniv : <default>
name : rfc4106(gcm(aes))
driver : rfc4106-gcm-aesni
module : aesni_intel
priority : 400
refcnt : 14
selftest : passed
type : nivaead
async : yes
blocksize : 1
ivsize : 8
maxauthsize : 16
geniv : seqiv
name : __gcm-aes-aesni
driver : __driver-gcm-aes-aesni
module : aesni_intel
priority : 0
refcnt : 14
selftest : passed
type : aead
async : no
blocksize : 1
ivsize : 0
maxauthsize : 0
geniv : <built-in>
name : ctr(aes)
driver : ctr-aes-aesni
module : aesni_intel
priority : 400
refcnt : 1
selftest : passed
type : ablkcipher
async : yes
blocksize : 1
min keysize : 16
max keysize : 32
ivsize : 16
geniv : chainiv
name : __ctr-aes-aesni
driver : __driver-ctr-aes-aesni
module : aesni_intel
priority : 0
refcnt : 1
selftest : passed
type : blkcipher
blocksize : 1
min keysize : 16
max keysize : 32
ivsize : 16
geniv : <default>
name : cbc(aes)
driver : cbc-aes-aesni
module : aesni_intel
priority : 400
refcnt : 1
selftest : passed
type : ablkcipher
async : yes
blocksize : 16
min keysize : 16
max keysize : 32
ivsize : 16
geniv : <default>
name : __ecb-aes-aesni
driver : cryptd(__driver-ecb-aes-aesni)
module : cryptd
priority : 50
refcnt : 1
selftest : passed
type : ablkcipher
async : yes
blocksize : 16
min keysize : 16
max keysize : 32
ivsize : 0
geniv : <default>
name : ecb(aes)
driver : ecb-aes-aesni
module : aesni_intel
priority : 400
refcnt : 1
selftest : passed
type : ablkcipher
async : yes
blocksize : 16
min keysize : 16
max keysize : 32
ivsize : 0
geniv : <default>
name : __cbc-aes-aesni
driver : __driver-cbc-aes-aesni
module : aesni_intel
priority : 0
refcnt : 1
selftest : passed
type : blkcipher
blocksize : 16
min keysize : 16
max keysize : 32
ivsize : 0
geniv : <default>
name : __ecb-aes-aesni
driver : __driver-ecb-aes-aesni
module : aesni_intel
priority : 0
refcnt : 1
selftest : passed
type : blkcipher
blocksize : 16
min keysize : 16
max keysize : 32
ivsize : 0
geniv : <default>
name : __aes-aesni
driver : __driver-aes-aesni
module : aesni_intel
priority : 0
refcnt : 1
selftest : passed
type : cipher
blocksize : 16
min keysize : 16
max keysize : 32
name : aes
driver : aes-aesni
module : aesni_intel
priority : 300
refcnt : 1
selftest : passed
type : cipher
blocksize : 16
min keysize : 16
max keysize : 32
name : crct10dif
driver : crct10dif-pclmul
module : crct10dif_pclmul
priority : 200
refcnt : 1
selftest : passed
type : shash
blocksize : 1
digestsize : 2
name : crc32c
driver : crc32c-intel
module : crc32c_intel
priority : 200
refcnt : 2
selftest : passed
type : shash
blocksize : 1
digestsize : 4
name : hmac(sha256)
driver : hmac(sha256-ssse3)
module : kernel
priority : 150
refcnt : 2
selftest : passed
type : shash
blocksize : 64
digestsize : 32
name : hmac(sha1)
driver : hmac(sha1-ssse3)
module : kernel
priority : 150
refcnt : 2
selftest : passed
type : shash
blocksize : 64
digestsize : 20
name : lzo
driver : lzo-generic
module : kernel
priority : 0
refcnt : 1
selftest : passed
type : compression
name : crc32c
driver : crc32c-generic
module : kernel
priority : 100
refcnt : 1
selftest : passed
type : shash
blocksize : 1
digestsize : 4
name : aes
driver : aes-generic
module : kernel
priority : 100
refcnt : 1
selftest : passed
type : cipher
blocksize : 16
min keysize : 16
max keysize : 32
name : sha224
driver : sha224-generic
module : kernel
priority : 0
refcnt : 1
selftest : passed
type : shash
blocksize : 64
digestsize : 28
name : sha256
driver : sha256-generic
module : kernel
priority : 0
refcnt : 1
selftest : passed
type : shash
blocksize : 64
digestsize : 32
name : sha1
driver : sha1-generic
module : kernel
priority : 0
refcnt : 1
selftest : passed
type : shash
blocksize : 64
digestsize : 20
name : md5
driver : md5-generic
module : kernel
priority : 0
refcnt : 1
selftest : passed
type : shash
blocksize : 64
digestsize : 16
name : sha256
driver : sha256-ssse3
module : kernel
priority : 150
refcnt : 3
selftest : passed
type : shash
blocksize : 64
digestsize : 32
name : sha1
driver : sha1-ssse3
module : kernel
priority : 150
refcnt : 5
selftest : passed
type : shash
blocksize : 64
digestsize : 20
name : aes
driver : aes-asm
module : kernel
priority : 200
refcnt : 1
selftest : passed
type : cipher
blocksize : 16
min keysize : 16
max keysize : 32
Thanks
EKG
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.strongswan.org/pipermail/users/attachments/20161031/b54999d8/attachment-0001.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: smime.p7s
Type: application/pkcs7-signature
Size: 3705 bytes
Desc: not available
URL: <http://lists.strongswan.org/pipermail/users/attachments/20161031/b54999d8/attachment-0001.bin>
More information about the Users
mailing list