Re: [PATCHv1 0/3] Enable crypto module on Amlogic GXBB SoC platform

From: Anand Moon
Date: Wed Dec 11 2019 - 04:38:08 EST


Hi Neil,

On Wed, 11 Dec 2019 at 14:23, Neil Armstrong <narmstrong@xxxxxxxxxxxx> wrote:
>
> hi,
>
>
> On 11/12/2019 09:41, Anand Moon wrote:
> > Below changes enable cryto module on Amlogic GXBB SoC.
> >
> > I was realy happy to get this feature working on Odroid C2 SBC.
> > I will try on other SBC in the future.
> >
> > Tested with loading tcrypt module.
> > # sudo modprobe tcrypt sec=1 mode=200
> > [sudo] password for alarm:
> > [ 903.867059] tcrypt:
> > [ 903.867059] testing speed of async ecb(aes) (ecb(aes-arm64)) encryption
> > [ 903.870265] tcrypt: test 0 (128 bit key, 16 byte blocks): 1922107 operations in 1 seconds (30753712 bytes)
> > [ 904.872802] tcrypt: test 1 (128 bit key, 64 byte blocks): 679032 operations in 1 seconds (43458048 bytes)
> > [ 905.872717] tcrypt: test 2 (128 bit key, 256 byte blocks): 190190 operations in 1 seconds (48688640 bytes)
> > [ 906.872793] tcrypt: test 3 (128 bit key, 1024 byte blocks): 49014 operations in 1 seconds (50190336 bytes)
> > [ 907.872808] tcrypt: test 4 (128 bit key, 1472 byte blocks): 34342 operations in 1 seconds (50551424 bytes)
> > [ 908.876828] tcrypt: test 5 (128 bit key, 8192 byte blocks): 6199 operations in 1 seconds (50782208 bytes)
> >
> > -Anand
> >
> > Anand Moon (3):
> > arm64: dts: amlogic: adds crypto hardware node for GXBB SoCs
> > dt-bindings: crypto: Add compatible string for amlogic GXBB SoC
> > crypto: amlogic: Add new compatible string for amlogic GXBB SoC
> >
> > .../devicetree/bindings/crypto/amlogic,gxl-crypto.yaml | 1 +
> > arch/arm64/boot/dts/amlogic/meson-gxbb.dtsi | 10 ++++++++++
> > drivers/crypto/amlogic/amlogic-gxl-core.c | 1 +
> > 3 files changed, 12 insertions(+)
> >
>
> Wow, I'm surprised it works on GXBB, Amlogic completely removed HW crypto for GXBB in all their
> vendor BSPs, in Linux, U-Boot and ATF chain.

Sorry I was not aware of this. :$

>
> Could you run more tests to be sure it's really functional ?
>
> Neil

>From the public datasheet for Odroid C2 [0] S905_Public_Datasheet_V1.1.4.pdf
Chapter 27.1 : "crypto engine is one encrypt/decrypt function accelerator"

AES block cipher with 128/192/256 Bits keys, standard 16 bytes block
size and streaming ECB, CBC and CTR modes
DES/TDES block cipher with ECB and CBC modes supporting 64 Bits key
for DES and 192 Bits key for 3DES
Hardware key-ladder operation and DVB-CSA for transport stream encryption
Built-in hardware True Random Number Generator (TRNG), CRC and
SHA-1/SHA-2 (SHA-224/SHA-256) engine

But in my testing I did not see any count increment in /proc/interrupts

32: 0 0 0 0 GICv2 201 Level ppmmu2
33: 0 0 0 0 GICv2 35 Edge meson
34: 0 0 0 0 GICv2 89 Edge
dw_hdmi_top_irq, c883a000.hdmi-tx
35: 0 0 0 0 GICv2 220 Edge
gxl-crypto
36: 0 0 0 0 GICv2 221 Edge
gxl-crypto

[0] https://dn.odroid.com/S905/DataSheet/S905_Public_Datasheet_V1.1.4.pdf

Attach is the some testing. *But not sure this is Hardware Accelerated.* :<

-Anand
# sudo modprobe tcrypt sec=1 mode=200
[sudo] password for alarm:
[ 384.901049] tcrypt:
[ 384.901049] testing speed of async ecb(aes) (ecb(aes-arm64)) encryption
[ 384.904181] tcrypt: test 0 (128 bit key, 16 byte blocks): 1877504 operations in 1 seconds (30040064 bytes)
[ 385.904322] tcrypt: test 1 (128 bit key, 64 byte blocks): 667190 operations in 1 seconds (42700160 bytes)
[ 386.908223] tcrypt: test 2 (128 bit key, 256 byte blocks): 186089 operations in 1 seconds (47638784 bytes)
[ 387.908341] tcrypt: test 3 (128 bit key, 1024 byte blocks): 48142 operations in 1 seconds (49297408 bytes)
[ 388.912326] tcrypt: test 4 (128 bit key, 1472 byte blocks): 33605 operations in 1 seconds (49466560 bytes)
[ 389.916322] tcrypt: test 5 (128 bit key, 8192 byte blocks): 6075 operations in 1 seconds (49766400 bytes)
[ 390.920350] tcrypt: test 6 (192 bit key, 16 byte blocks): 1681618 operations in 1 seconds (26905888 bytes)
[ 391.924306] tcrypt: test 7 (192 bit key, 64 byte blocks): 572487 operations in 1 seconds (36639168 bytes)
[ 392.924229] tcrypt: test 8 (192 bit key, 256 byte blocks): 158200 operations in 1 seconds (40499200 bytes)
[ 393.924325] tcrypt: test 9 (192 bit key, 1024 byte blocks): 40774 operations in 1 seconds (41752576 bytes)
[ 394.928323] tcrypt: test 10 (192 bit key, 1472 byte blocks): 28442 operations in 1 seconds (41866624 bytes)
[ 395.932438] tcrypt: test 11 (192 bit key, 8192 byte blocks): 5110 operations in 1 seconds (41861120 bytes)
[ 396.936356] tcrypt: test 12 (256 bit key, 16 byte blocks): 1544471 operations in 1 seconds (24711536 bytes)
[ 397.940415] tcrypt: test 13 (256 bit key, 64 byte blocks): 508196 operations in 1 seconds (32524544 bytes)
[ 398.944314] tcrypt: test 14 (256 bit key, 256 byte blocks): 138350 operations in 1 seconds (35417600 bytes)
[ 399.948417] tcrypt: test 15 (256 bit key, 1024 byte blocks): 35362 operations in 1 seconds (36210688 bytes)
[ 400.952430] tcrypt: test 16 (256 bit key, 1472 byte blocks): 24655 operations in 1 seconds (36292160 bytes)
[ 401.956447] tcrypt: test 17 (256 bit key, 8192 byte blocks): 4453 operations in 1 seconds (36478976 bytes)
[ 402.960408] tcrypt:
[ 402.960408] testing speed of async ecb(aes) (ecb(aes-arm64)) decryption
[ 402.969098] tcrypt: test 0 (128 bit key, 16 byte blocks): 1890540 operations in 1 seconds (30248640 bytes)
[ 403.972318] tcrypt: test 1 (128 bit key, 64 byte blocks): 679436 operations in 1 seconds (43483904 bytes)
[ 404.976233] tcrypt: test 2 (128 bit key, 256 byte blocks): 190826 operations in 1 seconds (48851456 bytes)
[ 405.976319] tcrypt: test 3 (128 bit key, 1024 byte blocks): 49490 operations in 1 seconds (50677760 bytes)
[ 406.980341] tcrypt: test 4 (128 bit key, 1472 byte blocks): 34562 operations in 1 seconds (50875264 bytes)
[ 407.984339] tcrypt: test 5 (128 bit key, 8192 byte blocks): 6224 operations in 1 seconds (50987008 bytes)
[ 408.988289] tcrypt: test 6 (192 bit key, 16 byte blocks): 1717604 operations in 1 seconds (27481664 bytes)
[ 409.988314] tcrypt: test 7 (192 bit key, 64 byte blocks): 594595 operations in 1 seconds (38054080 bytes)
[ 410.988236] tcrypt: test 8 (192 bit key, 256 byte blocks): 165116 operations in 1 seconds (42269696 bytes)
[ 411.988338] tcrypt: test 9 (192 bit key, 1024 byte blocks): 42620 operations in 1 seconds (43642880 bytes)
[ 412.992339] tcrypt: test 10 (192 bit key, 1472 byte blocks): 29735 operations in 1 seconds (43769920 bytes)
[ 413.996418] tcrypt: test 11 (192 bit key, 8192 byte blocks): 5341 operations in 1 seconds (43753472 bytes)
[ 415.000385] tcrypt: test 12 (256 bit key, 16 byte blocks): 1583219 operations in 1 seconds (25331504 bytes)
[ 416.004412] tcrypt: test 13 (256 bit key, 64 byte blocks): 526675 operations in 1 seconds (33707200 bytes)
[ 417.008337] tcrypt: test 14 (256 bit key, 256 byte blocks): 143999 operations in 1 seconds (36863744 bytes)
[ 418.012424] tcrypt: test 15 (256 bit key, 1024 byte blocks): 36859 operations in 1 seconds (37743616 bytes)
[ 419.016425] tcrypt: test 16 (256 bit key, 1472 byte blocks): 25704 operations in 1 seconds (37836288 bytes)
[ 420.020444] tcrypt: test 17 (256 bit key, 8192 byte blocks): 4635 operations in 1 seconds (37969920 bytes)
[ 421.036729] tcrypt:
[ 421.036729] testing speed of async cbc(aes) (cbc(aes-arm64)) encryption
[ 421.039861] tcrypt: test 0 (128 bit key, 16 byte blocks): 1784200 operations in 1 seconds (28547200 bytes)
[ 422.040331] tcrypt: test 1 (128 bit key, 64 byte blocks): 625414 operations in 1 seconds (40026496 bytes)
[ 423.044246] tcrypt: test 2 (128 bit key, 256 byte blocks): 173953 operations in 1 seconds (44531968 bytes)
[ 424.044348] tcrypt: test 3 (128 bit key, 1024 byte blocks): 44977 operations in 1 seconds (46056448 bytes)
[ 425.048334] tcrypt: test 4 (128 bit key, 1472 byte blocks): 31386 operations in 1 seconds (46200192 bytes)
[ 426.052346] tcrypt: test 5 (128 bit key, 8192 byte blocks): 5664 operations in 1 seconds (46399488 bytes)
[ 427.056395] tcrypt: test 6 (192 bit key, 16 byte blocks): 1612521 operations in 1 seconds (25800336 bytes)
[ 428.060330] tcrypt: test 7 (192 bit key, 64 byte blocks): 542315 operations in 1 seconds (34708160 bytes)
[ 429.060253] tcrypt: test 8 (192 bit key, 256 byte blocks): 149436 operations in 1 seconds (38255616 bytes)
[ 430.060346] tcrypt: test 9 (192 bit key, 1024 byte blocks): 38477 operations in 1 seconds (39400448 bytes)
[ 431.064346] tcrypt: test 10 (192 bit key, 1472 byte blocks): 26838 operations in 1 seconds (39505536 bytes)
[ 432.068443] tcrypt: test 11 (192 bit key, 8192 byte blocks): 4818 operations in 1 seconds (39469056 bytes)
[ 433.072385] tcrypt: test 12 (256 bit key, 16 byte blocks): 1480227 operations in 1 seconds (23683632 bytes)
[ 434.076429] tcrypt: test 13 (256 bit key, 64 byte blocks): 483284 operations in 1 seconds (30930176 bytes)
[ 435.080339] tcrypt: test 14 (256 bit key, 256 byte blocks): 131557 operations in 1 seconds (33678592 bytes)
[ 436.084426] tcrypt: test 15 (256 bit key, 1024 byte blocks): 33620 operations in 1 seconds (34426880 bytes)
[ 437.088434] tcrypt: test 16 (256 bit key, 1472 byte blocks): 23442 operations in 1 seconds (34506624 bytes)
[ 438.092438] tcrypt: test 17 (256 bit key, 8192 byte blocks): 4227 operations in 1 seconds (34627584 bytes)
[ 439.096564] tcrypt:
[ 439.096564] testing speed of async cbc(aes) (cbc(aes-arm64)) decryption
[ 439.105257] tcrypt: test 0 (128 bit key, 16 byte blocks): 1720992 operations in 1 seconds (27535872 bytes)
[ 440.108343] tcrypt: test 1 (128 bit key, 64 byte blocks): 627860 operations in 1 seconds (40183040 bytes)
[ 441.112259] tcrypt: test 2 (128 bit key, 256 byte blocks): 176810 operations in 1 seconds (45263360 bytes)
[ 442.112360] tcrypt: test 3 (128 bit key, 1024 byte blocks): 45973 operations in 1 seconds (47076352 bytes)
[ 443.116362] tcrypt: test 4 (128 bit key, 1472 byte blocks): 32147 operations in 1 seconds (47320384 bytes)
[ 444.120381] tcrypt: test 5 (128 bit key, 8192 byte blocks): 5803 operations in 1 seconds (47538176 bytes)
[ 445.124299] tcrypt: test 6 (192 bit key, 16 byte blocks): 1558792 operations in 1 seconds (24940672 bytes)
[ 446.124360] tcrypt: test 7 (192 bit key, 64 byte blocks): 546578 operations in 1 seconds (34980992 bytes)
[ 447.128265] tcrypt: test 8 (192 bit key, 256 byte blocks): 151914 operations in 1 seconds (38889984 bytes)
[ 448.128357] tcrypt: test 9 (192 bit key, 1024 byte blocks): 39255 operations in 1 seconds (40197120 bytes)
[ 449.132376] tcrypt: test 10 (192 bit key, 1472 byte blocks): 27396 operations in 1 seconds (40326912 bytes)
[ 450.136438] tcrypt: test 11 (192 bit key, 8192 byte blocks): 4918 operations in 1 seconds (40288256 bytes)
[ 451.140545] tcrypt: test 12 (256 bit key, 16 byte blocks): 1436091 operations in 1 seconds (22977456 bytes)
[ 452.144443] tcrypt: test 13 (256 bit key, 64 byte blocks): 484903 operations in 1 seconds (31033792 bytes)
[ 453.148351] tcrypt: test 14 (256 bit key, 256 byte blocks): 133471 operations in 1 seconds (34168576 bytes)
[ 454.152444] tcrypt: test 15 (256 bit key, 1024 byte blocks): 34219 operations in 1 seconds (35040256 bytes)
[ 455.156447] tcrypt: test 16 (256 bit key, 1472 byte blocks): 23861 operations in 1 seconds (35123392 bytes)
[ 456.160492] tcrypt: test 17 (256 bit key, 8192 byte blocks): 4304 operations in 1 seconds (35258368 bytes)
[ 457.176263] tcrypt: failed to load transform for lrw(aes): -2
[ 457.188096] tcrypt: failed to load transform for lrw(aes): -2
[ 457.200097] tcrypt: failed to load transform for xts(aes): -2
[ 457.212102] tcrypt: failed to load transform for xts(aes): -2
[ 457.224067] tcrypt: failed to load transform for cts(cbc(aes)): -2
[ 457.236390] tcrypt: failed to load transform for cts(cbc(aes)): -2
[ 457.236944] tcrypt:
[ 457.236944] testing speed of async ctr(aes) (ctr-aes-neonbs) encryption
[ 457.245668] tcrypt: test 0 (128 bit key, 16 byte blocks): 564743 operations in 1 seconds (9035888 bytes)
[ 458.248185] tcrypt: test 1 (128 bit key, 64 byte blocks): 557690 operations in 1 seconds (35692160 bytes)
[ 459.248274] tcrypt: test 2 (128 bit key, 256 byte blocks): 300277 operations in 1 seconds (76870912 bytes)
[ 460.248355] tcrypt: test 3 (128 bit key, 1024 byte blocks): 81277 operations in 1 seconds (83227648 bytes)
[ 461.252368] tcrypt: test 4 (128 bit key, 1472 byte blocks): 54691 operations in 1 seconds (80505152 bytes)
[ 462.256378] tcrypt: test 5 (128 bit key, 8192 byte blocks): 10223 operations in 1 seconds (83746816 bytes)
[ 463.260420] tcrypt: test 6 (192 bit key, 16 byte blocks): 490239 operations in 1 seconds (7843824 bytes)
[ 464.264182] tcrypt: test 7 (192 bit key, 64 byte blocks): 483660 operations in 1 seconds (30954240 bytes)
[ 465.264268] tcrypt: test 8 (192 bit key, 256 byte blocks): 257253 operations in 1 seconds (65856768 bytes)
[ 466.264354] tcrypt: test 9 (192 bit key, 1024 byte blocks): 68568 operations in 1 seconds (70213632 bytes)
[ 467.264369] tcrypt: test 10 (192 bit key, 1472 byte blocks): 46270 operations in 1 seconds (68109440 bytes)
[ 468.268457] tcrypt: test 11 (192 bit key, 8192 byte blocks): 8647 operations in 1 seconds (70836224 bytes)
[ 469.272409] tcrypt: test 12 (256 bit key, 16 byte blocks): 432474 operations in 1 seconds (6919584 bytes)
[ 470.276272] tcrypt: test 13 (256 bit key, 64 byte blocks): 426459 operations in 1 seconds (27293376 bytes)
[ 471.276374] tcrypt: test 14 (256 bit key, 256 byte blocks): 226683 operations in 1 seconds (58030848 bytes)
[ 472.280463] tcrypt: test 15 (256 bit key, 1024 byte blocks): 59935 operations in 1 seconds (61373440 bytes)
[ 473.284465] tcrypt: test 16 (256 bit key, 1472 byte blocks): 40300 operations in 1 seconds (59321600 bytes)
[ 474.288465] tcrypt: test 17 (256 bit key, 8192 byte blocks): 7537 operations in 1 seconds (61743104 bytes)
[ 475.292462] tcrypt:
[ 475.292462] testing speed of async ctr(aes) (ctr-aes-neonbs) decryption
[ 475.301157] tcrypt: test 0 (128 bit key, 16 byte blocks): 564970 operations in 1 seconds (9039520 bytes)
[ 476.304200] tcrypt: test 1 (128 bit key, 64 byte blocks): 557619 operations in 1 seconds (35687616 bytes)
[ 477.304276] tcrypt: test 2 (128 bit key, 256 byte blocks): 300072 operations in 1 seconds (76818432 bytes)
[ 478.304377] tcrypt: test 3 (128 bit key, 1024 byte blocks): 81259 operations in 1 seconds (83209216 bytes)
[ 479.308379] tcrypt: test 4 (128 bit key, 1472 byte blocks): 54690 operations in 1 seconds (80503680 bytes)
[ 480.312380] tcrypt: test 5 (128 bit key, 8192 byte blocks): 10218 operations in 1 seconds (83705856 bytes)
[ 481.316446] tcrypt: test 6 (192 bit key, 16 byte blocks): 490189 operations in 1 seconds (7843024 bytes)
[ 482.320197] tcrypt: test 7 (192 bit key, 64 byte blocks): 483675 operations in 1 seconds (30955200 bytes)
[ 483.320282] tcrypt: test 8 (192 bit key, 256 byte blocks): 257068 operations in 1 seconds (65809408 bytes)
[ 484.320384] tcrypt: test 9 (192 bit key, 1024 byte blocks): 68848 operations in 1 seconds (70500352 bytes)
[ 485.324370] tcrypt: test 10 (192 bit key, 1472 byte blocks): 46276 operations in 1 seconds (68118272 bytes)
[ 486.328464] tcrypt: test 11 (192 bit key, 8192 byte blocks): 8647 operations in 1 seconds (70836224 bytes)
[ 487.332484] tcrypt: test 12 (256 bit key, 16 byte blocks): 432371 operations in 1 seconds (6917936 bytes)
[ 488.336290] tcrypt: test 13 (256 bit key, 64 byte blocks): 427577 operations in 1 seconds (27364928 bytes)
[ 489.336384] tcrypt: test 14 (256 bit key, 256 byte blocks): 226940 operations in 1 seconds (58096640 bytes)
[ 490.340475] tcrypt: test 15 (256 bit key, 1024 byte blocks): 60023 operations in 1 seconds (61463552 bytes)
[ 491.344472] tcrypt: test 16 (256 bit key, 1472 byte blocks): 40299 operations in 1 seconds (59320128 bytes)
[ 492.348464] tcrypt: test 17 (256 bit key, 8192 byte blocks): 7535 operations in 1 seconds (61726720 bytes)
[ 493.364241] tcrypt: failed to load transform for cfb(aes): -2
[ 493.376530] tcrypt: failed to load transform for cfb(aes): -2


[alarm@alarm ~]$ cat /proc/crypto
name : cbc(aes)
driver : cbc(aes-arm64)
module : kernel
priority : 200
refcnt : 1
selftest : passed
internal : no
type : skcipher
async : no
blocksize : 16
min keysize : 16
max keysize : 32
ivsize : 16
chunksize : 16
walksize : 16

name : ecb(aes)
driver : ecb(aes-arm64)
module : kernel
priority : 200
refcnt : 1
selftest : passed
internal : no
type : skcipher
async : no
blocksize : 16
min keysize : 16
max keysize : 32
ivsize : 0
chunksize : 16
walksize : 16

name : xts(aes)
driver : xts-aes-neonbs
module : aes_neon_bs
priority : 250
refcnt : 1
selftest : passed
internal : no
type : skcipher
async : yes
blocksize : 16
min keysize : 32
max keysize : 64
ivsize : 16
chunksize : 16
walksize : 16

name : ctr(aes)
driver : ctr-aes-neonbs
module : aes_neon_bs
priority : 250
refcnt : 1
selftest : passed
internal : no
type : skcipher
async : yes
blocksize : 1
min keysize : 16
max keysize : 32
ivsize : 16
chunksize : 16
walksize : 16

name : cbc(aes)
driver : cbc-aes-neonbs
module : aes_neon_bs
priority : 250
refcnt : 1
selftest : passed
internal : no
type : skcipher
async : yes
blocksize : 16
min keysize : 16
max keysize : 32
ivsize : 16
chunksize : 16
walksize : 16

name : ecb(aes)
driver : ecb-aes-neonbs
module : aes_neon_bs
priority : 250
refcnt : 1
selftest : passed
internal : no
type : skcipher
async : yes
blocksize : 16
min keysize : 16
max keysize : 32
ivsize : 0
chunksize : 16
walksize : 16

name : __xts(aes)
driver : __xts-aes-neonbs
module : aes_neon_bs
priority : 250
refcnt : 1
selftest : passed
internal : yes
type : skcipher
async : no
blocksize : 16
min keysize : 32
max keysize : 64
ivsize : 16
chunksize : 16
walksize : 128

name : ctr(aes)
driver : ctr-aes-neonbs
module : aes_neon_bs
priority : 249
refcnt : 1
selftest : passed
internal : no
type : skcipher
async : no
blocksize : 1
min keysize : 16
max keysize : 32
ivsize : 16
chunksize : 16
walksize : 128

name : __ctr(aes)
driver : __ctr-aes-neonbs
module : aes_neon_bs
priority : 250
refcnt : 1
selftest : passed
internal : yes
type : skcipher
async : no
blocksize : 1
min keysize : 16
max keysize : 32
ivsize : 16
chunksize : 16
walksize : 128

name : __cbc(aes)
driver : __cbc-aes-neonbs
module : aes_neon_bs
priority : 250
refcnt : 1
selftest : passed
internal : yes
type : skcipher
async : no
blocksize : 16
min keysize : 16
max keysize : 32
ivsize : 16
chunksize : 16
walksize : 128

name : __ecb(aes)
driver : __ecb-aes-neonbs
module : aes_neon_bs
priority : 250
refcnt : 1
selftest : passed
internal : yes
type : skcipher
async : no
blocksize : 16
min keysize : 16
max keysize : 32
ivsize : 0
chunksize : 16
walksize : 128

name : essiv(cbc(aes),sha256)
driver : essiv-cbc-aes-sha256-neon
module : aes_neon_blk
priority : 201
refcnt : 1
selftest : passed
internal : no
type : skcipher
async : yes
blocksize : 16
min keysize : 16
max keysize : 32
ivsize : 16
chunksize : 16
walksize : 16

name : cts(cbc(aes))
driver : cts-cbc-aes-neon
module : aes_neon_blk
priority : 200
refcnt : 1
selftest : passed
internal : no
type : skcipher
async : yes
blocksize : 16
min keysize : 16
max keysize : 32
ivsize : 16
chunksize : 16
walksize : 16

name : xts(aes)
driver : xts-aes-neon
module : aes_neon_blk
priority : 200
refcnt : 1
selftest : passed
internal : no
type : skcipher
async : yes
blocksize : 16
min keysize : 32
max keysize : 64
ivsize : 16
chunksize : 16
walksize : 16

name : ctr(aes)
driver : ctr-aes-neon
module : aes_neon_blk
priority : 200
refcnt : 1
selftest : passed
internal : no
type : skcipher
async : yes
blocksize : 1
min keysize : 16
max keysize : 32
ivsize : 16
chunksize : 16
walksize : 16

name : cbc(aes)
driver : cbc-aes-neon
module : aes_neon_blk
priority : 200
refcnt : 1
selftest : passed
internal : no
type : skcipher
async : yes
blocksize : 16
min keysize : 16
max keysize : 32
ivsize : 16
chunksize : 16
walksize : 16

name : ecb(aes)
driver : ecb-aes-neon
module : aes_neon_blk
priority : 200
refcnt : 1
selftest : passed
internal : no
type : skcipher
async : yes
blocksize : 16
min keysize : 16
max keysize : 32
ivsize : 0
chunksize : 16
walksize : 16

name : cbcmac(aes)
driver : cbcmac-aes-neon
module : aes_neon_blk
priority : 200
refcnt : 1
selftest : passed
internal : no
type : shash
blocksize : 1
digestsize : 16

name : xcbc(aes)
driver : xcbc-aes-neon
module : aes_neon_blk
priority : 200
refcnt : 1
selftest : passed
internal : no
type : shash
blocksize : 16
digestsize : 16

name : cmac(aes)
driver : cmac-aes-neon
module : aes_neon_blk
priority : 200
refcnt : 1
selftest : passed
internal : no
type : shash
blocksize : 16
digestsize : 16

name : __essiv(cbc(aes),sha256)
driver : __essiv-cbc-aes-sha256-neon
module : aes_neon_blk
priority : 201
refcnt : 1
selftest : passed
internal : yes
type : skcipher
async : no
blocksize : 16
min keysize : 16
max keysize : 32
ivsize : 16
chunksize : 16
walksize : 16

name : __cts(cbc(aes))
driver : __cts-cbc-aes-neon
module : aes_neon_blk
priority : 200
refcnt : 1
selftest : passed
internal : yes
type : skcipher
async : no
blocksize : 16
min keysize : 16
max keysize : 32
ivsize : 16
chunksize : 16
walksize : 32

name : __xts(aes)
driver : __xts-aes-neon
module : aes_neon_blk
priority : 200
refcnt : 1
selftest : passed
internal : yes
type : skcipher
async : no
blocksize : 16
min keysize : 32
max keysize : 64
ivsize : 16
chunksize : 16
walksize : 32

name : ctr(aes)
driver : ctr-aes-neon
module : aes_neon_blk
priority : 199
refcnt : 1
selftest : passed
internal : no
type : skcipher
async : no
blocksize : 1
min keysize : 16
max keysize : 32
ivsize : 16
chunksize : 16
walksize : 16

name : __ctr(aes)
driver : __ctr-aes-neon
module : aes_neon_blk
priority : 200
refcnt : 1
selftest : passed
internal : yes
type : skcipher
async : no
blocksize : 1
min keysize : 16
max keysize : 32
ivsize : 16
chunksize : 16
walksize : 16

name : __cbc(aes)
driver : __cbc-aes-neon
module : aes_neon_blk
priority : 200
refcnt : 1
selftest : passed
internal : yes
type : skcipher
async : no
blocksize : 16
min keysize : 16
max keysize : 32
ivsize : 16
chunksize : 16
walksize : 16

name : __ecb(aes)
driver : __ecb-aes-neon
module : aes_neon_blk
priority : 200
refcnt : 1
selftest : passed
internal : yes
type : skcipher
async : no
blocksize : 16
min keysize : 16
max keysize : 32
ivsize : 0
chunksize : 16
walksize : 16

name : crct10dif
driver : crct10dif-arm64-neon
module : crct10dif_ce
priority : 100
refcnt : 2
selftest : passed
internal : no
type : shash
blocksize : 1
digestsize : 2

name : ecb(aes)
driver : ecb-aes-gxl
module : kernel
priority : 400
refcnt : 1
selftest : passed
internal : no
type : skcipher
async : yes
blocksize : 16
min keysize : 16
max keysize : 32
ivsize : 0
chunksize : 16
walksize : 16

name : cbc(aes)
driver : cbc-aes-gxl
module : kernel
priority : 400
refcnt : 1
selftest : passed
internal : no
type : skcipher
async : yes
blocksize : 16
min keysize : 16
max keysize : 32
ivsize : 16
chunksize : 16
walksize : 16

name : jitterentropy_rng
driver : jitterentropy_rng
module : kernel
priority : 100
refcnt : 1
selftest : passed
internal : no
type : rng
seedsize : 0

name : aes
driver : aes-arm64
module : kernel
priority : 200
refcnt : 1
selftest : passed
internal : no
type : cipher
blocksize : 16
min keysize : 16
max keysize : 32

name : sha224
driver : sha224-arm64-neon
module : kernel
priority : 150
refcnt : 1
selftest : passed
internal : no
type : shash
blocksize : 64
digestsize : 28

name : sha256
driver : sha256-arm64-neon
module : kernel
priority : 150
refcnt : 1
selftest : passed
internal : no
type : shash
blocksize : 64
digestsize : 32

name : sha224
driver : sha224-arm64
module : kernel
priority : 125
refcnt : 1
selftest : passed
internal : no
type : shash
blocksize : 64
digestsize : 28

name : sha256
driver : sha256-arm64
module : kernel
priority : 125
refcnt : 1
selftest : passed
internal : no
type : shash
blocksize : 64
digestsize : 32

name : ghash
driver : ghash-neon
module : kernel
priority : 100
refcnt : 1
selftest : passed
internal : no
type : shash
blocksize : 16
digestsize : 16

name : stdrng
driver : drbg_nopr_hmac_sha256
module : kernel
priority : 207
refcnt : 1
selftest : passed
internal : no
type : rng
seedsize : 0

name : stdrng
driver : drbg_nopr_hmac_sha512
module : kernel
priority : 206
refcnt : 1
selftest : passed
internal : no
type : rng
seedsize : 0

name : stdrng
driver : drbg_nopr_hmac_sha384
module : kernel
priority : 205
refcnt : 1
selftest : passed
internal : no
type : rng
seedsize : 0

name : stdrng
driver : drbg_nopr_hmac_sha1
module : kernel
priority : 204
refcnt : 1
selftest : passed
internal : no
type : rng
seedsize : 0

name : stdrng
driver : drbg_pr_hmac_sha256
module : kernel
priority : 203
refcnt : 1
selftest : passed
internal : no
type : rng
seedsize : 0

name : stdrng
driver : drbg_pr_hmac_sha512
module : kernel
priority : 202
refcnt : 1
selftest : passed
internal : no
type : rng
seedsize : 0

name : stdrng
driver : drbg_pr_hmac_sha384
module : kernel
priority : 201
refcnt : 1
selftest : passed
internal : no
type : rng
seedsize : 0

name : stdrng
driver : drbg_pr_hmac_sha1
module : kernel
priority : 200
refcnt : 1
selftest : passed
internal : no
type : rng
seedsize : 0

name : stdrng
driver : ansi_cprng
module : kernel
priority : 100
refcnt : 1
selftest : passed
internal : no
type : rng
seedsize : 48

name : crct10dif
driver : crct10dif-generic
module : kernel
priority : 100
refcnt : 1
selftest : passed
internal : no
type : shash
blocksize : 1
digestsize : 2

name : crc32c
driver : crc32c-generic
module : kernel
priority : 100
refcnt : 3
selftest : passed
internal : no
type : shash
blocksize : 1
digestsize : 4

name : zlib-deflate
driver : zlib-deflate-scomp
module : kernel
priority : 0
refcnt : 1
selftest : passed
internal : no
type : scomp

name : deflate
driver : deflate-scomp
module : kernel
priority : 0
refcnt : 1
selftest : passed
internal : no
type : scomp

name : deflate
driver : deflate-generic
module : kernel
priority : 0
refcnt : 1
selftest : passed
internal : no
type : compression

name : aes
driver : aes-generic
module : kernel
priority : 100
refcnt : 1
selftest : passed
internal : no
type : cipher
blocksize : 16
min keysize : 16
max keysize : 32

name : sha224
driver : sha224-generic
module : kernel
priority : 100
refcnt : 1
selftest : passed
internal : no
type : shash
blocksize : 64
digestsize : 28

name : sha256
driver : sha256-generic
module : kernel
priority : 100
refcnt : 1
selftest : passed
internal : no
type : shash
blocksize : 64
digestsize : 32

name : sha1
driver : sha1-generic
module : kernel
priority : 100
refcnt : 1
selftest : passed
internal : no
type : shash
blocksize : 64
digestsize : 20

name : ecb(cipher_null)
driver : ecb-cipher_null
module : kernel
priority : 100
refcnt : 1
selftest : passed
internal : no
type : skcipher
async : no
blocksize : 1
min keysize : 0
max keysize : 0
ivsize : 0
chunksize : 1
walksize : 1

name : digest_null
driver : digest_null-generic
module : kernel
priority : 0
refcnt : 1
selftest : passed
internal : no
type : shash
blocksize : 1
digestsize : 0

name : compress_null
driver : compress_null-generic
module : kernel
priority : 0
refcnt : 1
selftest : passed
internal : no
type : compression

name : cipher_null
driver : cipher_null-generic
module : kernel
priority : 0
refcnt : 1
selftest : passed
internal : no
type : cipher
blocksize : 1
min keysize : 0
max keysize : 0

name : rsa
driver : rsa-generic
module : kernel
priority : 100
refcnt : 1
selftest : passed
internal : no
type : akcipher


openssl speed md5 sha1 sha256 sha512 des des-ede3 aes-128-cbc aes-192-cbc aes-256-cbc rsa2048 dsa2048 | tee /tmp/sslspeed
echo "|" `awk 'match($0,/r[0-9]+/) {print substr($0,RSTART,RLENGTH)}' /etc/banner` `awk -v FS=": " -v ORS="" '/(Processor|BogoMIPS|Hardware|machine|cpu model|system type)/ { print "| " $2 " " } END { print "" }' /proc/cpuinfo` `awk -v ORS="" '$1 ~ /OpenSSL/ {print "| " $2 " |"} $1 ~ /(md5|sha)/ {print " " $5 " |"} $1 ~ /(des|aes)/ {b = b " " $6 " |"} $1 ~ /(rsa|dsa)/ {print b " " $6 " | " $7 " | ";b=""} END { print "" }' /tmp/sslspeed | sed 's/\.\(..\)k/\10/g'`
echo

6017051 md5's in 2.99s
Doing md5 for 3s on 64 size blocks: 3747162 md5's in 3.00s
Doing md5 for 3s on 256 size blocks: 1759645 md5's in 2.99s
Doing md5 for 3s on 1024 size blocks: 560895 md5's in 3.00s
Doing md5 for 3s on 8192 size blocks: 76613 md5's in 3.00s
Doing md5 for 3s on 16384 size blocks: 38552 md5's in 2.99s
Doing sha1 for 3s on 16 size blocks: 5302800 sha1's in 3.00s
Doing sha1 for 3s on 64 size blocks: 3306365 sha1's in 3.00s
Doing sha1 for 3s on 256 size blocks: 1584946 sha1's in 2.99s
Doing sha1 for 3s on 1024 size blocks: 513369 sha1's in 3.00s
Doing sha1 for 3s on 8192 size blocks: 70336 sha1's in 3.00s
Doing sha1 for 3s on 16384 size blocks: 35404 sha1's in 2.99s
Doing sha256 for 3s on 16 size blocks: 3357872 sha256's in 3.00s
Doing sha256 for 3s on 64 size blocks: 1929438 sha256's in 2.99s
Doing sha256 for 3s on 256 size blocks: 869289 sha256's in 3.00s
Doing sha256 for 3s on 1024 size blocks: 274438 sha256's in 3.00s
Doing sha256 for 3s on 8192 size blocks: 37155 sha256's in 2.99s
Doing sha256 for 3s on 16384 size blocks: 18682 sha256's in 3.00s
Doing sha512 for 3s on 16 size blocks: 2799557 sha512's in 3.00s
Doing sha512 for 3s on 64 size blocks: 2783520 sha512's in 2.99s
Doing sha512 for 3s on 256 size blocks: 1105915 sha512's in 3.00s
Doing sha512 for 3s on 1024 size blocks: 397144 sha512's in 3.00s
Doing sha512 for 3s on 8192 size blocks: 56976 sha512's in 2.99s
Doing sha512 for 3s on 16384 size blocks: 28777 sha512's in 3.00s
Doing des cbc for 3s on 16 size blocks: 4738723 des cbc's in 2.99s
Doing des cbc for 3s on 64 size blocks: 1281858 des cbc's in 3.00s
Doing des cbc for 3s on 256 size blocks: 327964 des cbc's in 3.00s
Doing des cbc for 3s on 1024 size blocks: 82477 des cbc's in 2.99s
Doing des cbc for 3s on 8192 size blocks: 10327 des cbc's in 3.00s
Doing des cbc for 3s on 16384 size blocks: 5164 des cbc's in 3.00s
Doing des ede3 for 3s on 16 size blocks: 1798759 des ede3's in 3.00s
Doing des ede3 for 3s on 64 size blocks: 463662 des ede3's in 2.99s
Doing des ede3 for 3s on 256 size blocks: 116943 des ede3's in 3.00s
Doing des ede3 for 3s on 1024 size blocks: 29298 des ede3's in 2.99s
Doing des ede3 for 3s on 8192 size blocks: 3665 des ede3's in 3.00s
Doing des ede3 for 3s on 16384 size blocks: 1833 des ede3's in 3.00s
Doing aes-128 cbc for 3s on 16 size blocks: 10693352 aes-128 cbc's in 3.00s
Doing aes-128 cbc for 3s on 64 size blocks: 2904495 aes-128 cbc's in 2.99s
Doing aes-128 cbc for 3s on 256 size blocks: 747016 aes-128 cbc's in 3.00s
Doing aes-128 cbc for 3s on 1024 size blocks: 187873 aes-128 cbc's in 3.00s
Doing aes-128 cbc for 3s on 8192 size blocks: 23552 aes-128 cbc's in 2.99s
Doing aes-128 cbc for 3s on 16384 size blocks: 11785 aes-128 cbc's in 3.00s
Doing aes-192 cbc for 3s on 16 size blocks: 9372353 aes-192 cbc's in 3.00s
Doing aes-192 cbc for 3s on 64 size blocks: 2519655 aes-192 cbc's in 2.99s
Doing aes-192 cbc for 3s on 256 size blocks: 645518 aes-192 cbc's in 3.00s
Doing aes-192 cbc for 3s on 1024 size blocks: 162204 aes-192 cbc's in 3.00s
Doing aes-192 cbc for 3s on 8192 size blocks: 20339 aes-192 cbc's in 2.99s
Doing aes-192 cbc for 3s on 16384 size blocks: 10170 aes-192 cbc's in 3.00s
Doing aes-256 cbc for 3s on 16 size blocks: 8351975 aes-256 cbc's in 3.00s
Doing aes-256 cbc for 3s on 64 size blocks: 2230407 aes-256 cbc's in 2.99s
Doing aes-256 cbc for 3s on 256 size blocks: 569997 aes-256 cbc's in 3.00s
Doing aes-256 cbc for 3s on 1024 size blocks: 143151 aes-256 cbc's in 3.00s
Doing aes-256 cbc for 3s on 8192 size blocks: 17939 aes-256 cbc's in 2.99s
Doing aes-256 cbc for 3s on 16384 size blocks: 8970 aes-256 cbc's in 3.00s
Doing 2048 bits private rsa's for 10s: 1399 2048 bits private RSA's in 9.99s
Doing 2048 bits public rsa's for 10s: 53024 2048 bits public RSA's in 9.99s
Doing 2048 bits sign dsa's for 10s: 3820 2048 bits DSA signs in 9.98s
Doing 2048 bits verify dsa's for 10s: 4173 2048 bits DSA verify in 9.99s
OpenSSL 1.1.1d 10 Sep 2019
built on: Wed Sep 11 18:07:42 2019 UTC
options:bn(64,64) rc4(char) des(int) aes(partial) idea(int) blowfish(ptr)
compiler: gcc -fPIC -pthread -Wa,--noexecstack -march=armv8-a -O2 -pipe -fstack-protector-strong -fno-plt -Wa,--noexecstack -D_FORTIFY_SOURCE=2 -march=armv8-a -O2 -pipe -fstack-protector-strong -fno-plt -Wl,-O1,--sort-common,--as-needed,-z,relro,-z,now -DOPENSSL_USE_NODELETE -DOPENSSL_PIC -DOPENSSL_CPUID_OBJ -DOPENSSL_BN_ASM_MONT -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DKECCAK1600_ASM -DVPAES_ASM -DECP_NISTZ256_ASM -DPOLY1305_ASM -DNDEBUG -D_FORTIFY_SOURCE=2
The 'numbers' are in 1000s of bytes per second processed.
type 16 bytes 64 bytes 256 bytes 1024 bytes 8192 bytes 16384 bytes
md5 32198.27k 79939.46k 150658.57k 191452.16k 209204.57k 211249.49k
sha1 28281.60k 70535.79k 135701.06k 175229.95k 192064.17k 193999.71k
des cbc 25357.72k 27346.30k 27986.26k 28246.30k 28199.59k 28202.33k
des ede3 9593.38k 9924.54k 9979.14k 10033.83k 10007.89k 10010.62k
aes-128 cbc 57031.21k 62169.79k 63745.37k 64127.32k 64527.75k 64361.81k
aes-192 cbc 49985.88k 53932.41k 55084.20k 55365.63k 55724.78k 55541.76k
aes-256 cbc 44543.87k 47741.15k 48639.74k 48862.21k 49149.26k 48988.16k
sha256 17908.65k 41299.01k 74179.33k 93674.84k 101797.24k 102028.63k
sha512 14930.97k 59580.36k 94371.41k 135558.49k 156102.81k 157160.79k
sign verify sign/s verify/s
rsa 2048 bits 0.007141s 0.000188s 140.0 5307.7
sign verify sign/s verify/s
dsa 2048 bits 0.002613s 0.002394s 382.8 417.7
/g'` " | " $7 " | ";b=""} END { print "" }' /tmp/sslspeed | sed 's/\.\(..\)k/\10/
awk: fatal: cannot open file `/etc/banner' for reading (No such file or directory)
| | 48.00 | 48.00 | 48.00 | 48.00 | 1.1.1d | 192044030 | 175338500 | 93675520 | 135603200 | 28157270 | 10017790 | 64203090 | 55428780 | 48919210 | 140.0 | 5308.2 | 382.6 | 410.8 |
[root@alarm ~]# echo