mbox series

[v8,0/6] Add SPAcc Crypto Driver

Message ID 20240905113050.237789-1-pavitrakumarm@vayavyalabs.com (mailing list archive)
Headers show
Series Add SPAcc Crypto Driver | expand

Message

Pavitrakumar Managutte Sept. 5, 2024, 11:30 a.m. UTC
Add the driver for SPAcc(Security Protocol Accelerator), which is a
crypto acceleration IP from Synopsys. The SPAcc supports multiple ciphers,
hashes and AEAD algorithms with various modes. The driver currently supports
below

AEAD:
- ccm(sm4)
- ccm(aes)
- gcm(sm4)
- gcm(aes)
- rfc7539(chacha20,poly1305)

cipher:
- cbc(sm4)
- ecb(sm4)
- ctr(sm4)
- xts(sm4)
- cts(cbc(sm4))
- cbc(aes)
- ecb(aes)
- xts(aes)
- cts(cbc(aes))
- ctr(aes)
- chacha20
- ecb(des)
- cbc(des)
- ecb(des3_ede)
- cbc(des3_ede)

hash:
- cmac(aes)
- xcbc(aes)
- cmac(sm4)
- xcbc(sm4) 
- hmac(md5)
- md5
- hmac(sha1)
- sha1
- sha224
- sha256
- sha384
- sha512
- hmac(sha224)
- hmac(sha256)
- hmac(sha384)
- hmac(sha512)
- sha3-224
- sha3-256
- sha3-384
- sha3-512
- hmac(sm3)
- sm3
- michael_mic

Pavitrakumar M (6):
  Add SPAcc Skcipher support
  Add SPAcc AUTODETECT support
  Add SPAcc ahash support
  Add SPAcc AEAD support
  Add SPAcc Kconfig and Makefile
  Add SPAcc compilation in crypto

 drivers/crypto/Kconfig                     |    1 +
 drivers/crypto/Makefile                    |    1 +
 drivers/crypto/dwc-spacc/Kconfig           |   94 +
 drivers/crypto/dwc-spacc/Makefile          |   16 +
 drivers/crypto/dwc-spacc/spacc_aead.c      | 1245 ++++++++++
 drivers/crypto/dwc-spacc/spacc_ahash.c     |  916 +++++++
 drivers/crypto/dwc-spacc/spacc_core.c      | 2514 ++++++++++++++++++++
 drivers/crypto/dwc-spacc/spacc_core.h      |  819 +++++++
 drivers/crypto/dwc-spacc/spacc_device.c    |  304 +++
 drivers/crypto/dwc-spacc/spacc_device.h    |  228 ++
 drivers/crypto/dwc-spacc/spacc_hal.c       |  367 +++
 drivers/crypto/dwc-spacc/spacc_hal.h       |  114 +
 drivers/crypto/dwc-spacc/spacc_interrupt.c |  317 +++
 drivers/crypto/dwc-spacc/spacc_manager.c   |  658 +++++
 drivers/crypto/dwc-spacc/spacc_skcipher.c  |  716 ++++++
 15 files changed, 8310 insertions(+)
 create mode 100644 drivers/crypto/dwc-spacc/Kconfig
 create mode 100644 drivers/crypto/dwc-spacc/Makefile
 create mode 100755 drivers/crypto/dwc-spacc/spacc_aead.c
 create mode 100644 drivers/crypto/dwc-spacc/spacc_ahash.c
 create mode 100644 drivers/crypto/dwc-spacc/spacc_core.c
 create mode 100644 drivers/crypto/dwc-spacc/spacc_core.h
 create mode 100644 drivers/crypto/dwc-spacc/spacc_device.c
 create mode 100644 drivers/crypto/dwc-spacc/spacc_device.h
 create mode 100644 drivers/crypto/dwc-spacc/spacc_hal.c
 create mode 100644 drivers/crypto/dwc-spacc/spacc_hal.h
 create mode 100644 drivers/crypto/dwc-spacc/spacc_interrupt.c
 create mode 100644 drivers/crypto/dwc-spacc/spacc_manager.c
 create mode 100644 drivers/crypto/dwc-spacc/spacc_skcipher.c


base-commit: b8fc70ab7b5f3afbc4fb0587782633d7fcf1e069