Skip to content

Adapted crypto engine for Linux 5.13

atlas.luo requested to merge github/fork/cybergaszcz/beaglev-crypto into beaglev

Created by: cybergaszcz

I have merged and adapted crypto engine available in Linux 4.19 for Linux 5.13. Based on logs it looks that selftest are succed for ciphers:

[riscv@fedora-starfive ~]$ uname -a
Linux fedora-starfive 5.13.0-beaglev-gefcbc00d6753-dirty #1 SMP Tue Jun 29 16:50:51 CEST 2021 riscv64 riscv64 riscv64 GNU/Linux
[riscv@fedora-starfive ~]$ cat /proc/interrupts 
           CPU0       CPU1       
  5:       9031       8479  RISC-V INTC   5  riscv-timer
  7:        471          0  SiFive PLIC  73  ttyS0
  8:          0          0  SiFive PLIC   2  dw_axi_dmac_platform
 10:          0          0  SiFive PLIC   1  dw_axi_dmac_platform
 11:         86          0  SiFive PLIC  44  xhci-hcd:usb1
 13:          0          0  SiFive PLIC  43  104c0000.usb
 14:          0          0  SiFive PLIC  32  11910000.gpio
 15:        253          0  SiFive PLIC  96  118b0000.i2c
 16:          0          0  SiFive PLIC  97  118c0000.i2c
 17:          0          0  SiFive PLIC  74  12450000.i2c
 18:          7          0  SiFive PLIC  98  118d0000.trng
 19:          1          0  SiFive PLIC  31  100d0000.crypto
 20:          0          0  SiFive PLIC   6  eth0
 21:          0          0  SiFive PLIC   7  eth0
 22:          0          0  SiFive PLIC  22  11940000.nvdla
 26:          0          0  SiFive PLIC  70  12410000.spi
 29:      18786          0  SiFive PLIC   4  dw-mci
 30:       4985          0  SiFive PLIC   5  dw-mci
 31:       1657          0  SiFive PLIC 101  sf_lcdc
 32:          0          0  SiFive PLIC 103  sf_vpp1
 35:          5          0  SiFive PLIC 122  124a0000.tmon
IPI0:        95         90  Rescheduling interrupts
IPI1:      2163      11031  Function call interrupts
IPI2:         0          0  CPU stop interrupts
IPI3:         0          0  IRQ work interrupts
IPI4:         0          0  Timer broadcast interrupts
[riscv@fedora-starfive ~]$ cat /proc/crypto 
name         : pkcs1pad(rsa,sha256)
driver       : pkcs1pad(rsa-vic,sha256)
module       : kernel
priority     : 3000
refcnt       : 1
selftest     : passed
internal     : no
type         : akcipher

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

name         : ccm(aes)
driver       : vic-ccm-aes
module       : kernel
priority     : 200
refcnt       : 1
selftest     : passed
internal     : no
type         : aead
async        : yes
blocksize    : 1
ivsize       : 16
maxauthsize  : 16
geniv        : <none>

name         : gcm(aes)
driver       : vic-gcm-aes
module       : kernel
priority     : 200
refcnt       : 1
selftest     : passed
internal     : no
type         : aead
async        : yes
blocksize    : 1
ivsize       : 12
maxauthsize  : 16
geniv        : <none>

name         : ofb(aes)
driver       : vic-ofb-aes
module       : kernel
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         : cfb(aes)
driver       : vic-cfb-aes
module       : kernel
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         : ctr(aes)
driver       : vic-ctr-aes
module       : kernel
priority     : 200
refcnt       : 1
selftest     : passed
internal     : no
type         : skcipher
async        : yes
blocksize    : 1
min keysize  : 16
max keysize  : 32
ivsize       : 16
chunksize    : 1
walksize     : 1

name         : cbc(aes)
driver       : vic-cbc-aes
module       : kernel
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       : vic-ecb-aes
module       : kernel
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         : cmac(aes)
driver       : vic-cmac-aes
module       : kernel
priority     : 200
refcnt       : 1
selftest     : passed
internal     : no
type         : ahash
async        : yes
blocksize    : 16
digestsize   : 16

name         : hmac(sha384)
driver       : vic-hmac-sha384
module       : kernel
priority     : 200
refcnt       : 1
selftest     : passed
internal     : no
type         : ahash
async        : yes
blocksize    : 128
digestsize   : 48

name         : sha384
driver       : vic-sha384
module       : kernel
priority     : 200
refcnt       : 1
selftest     : passed
internal     : no
type         : ahash
async        : yes
blocksize    : 128
digestsize   : 48

name         : hmac(sha256)
driver       : vic-hmac-sha256
module       : kernel
priority     : 200
refcnt       : 1
selftest     : passed
internal     : no
type         : ahash
async        : yes
blocksize    : 64
digestsize   : 32

name         : sha256
driver       : vic-sha256
module       : kernel
priority     : 200
refcnt       : 1
selftest     : passed
internal     : no
type         : ahash
async        : yes
blocksize    : 64
digestsize   : 32

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

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

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

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

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

name         : blake2b-384
driver       : blake2b-384-generic
module       : kernel
priority     : 100
refcnt       : 1
selftest     : passed
internal     : no
type         : shash
blocksize    : 128
digestsize   : 48

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

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

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         : 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

Merge request reports