chcr: Support for Chelsio's Crypto Hardware
authorHariprasad Shenai <hariprasad@chelsio.com>
Wed, 17 Aug 2016 07:03:05 +0000 (12:33 +0530)
committerDavid S. Miller <davem@davemloft.net>
Fri, 19 Aug 2016 06:59:30 +0000 (23:59 -0700)
commit324429d74127d0cc8a1a42d20035f8f986149ec4
tree05d9d8e48f8de04eea8640319630ce4e40b30660
parentd6657781b5a9d2e2c72da1af0d185899b2d7e2f1
chcr: Support for Chelsio's Crypto Hardware

The Chelsio's Crypto Hardware can perform the following operations:
SHA1, SHA224, SHA256, SHA384 and SHA512, HMAC(SHA1), HMAC(SHA224),
HMAC(SHA256), HMAC(SHA384), HAMC(SHA512), AES-128-CBC, AES-192-CBC,
AES-256-CBC, AES-128-XTS, AES-256-XTS

This patch implements the driver for above mentioned features. This
driver is an Upper Layer Driver which is attached to Chelsio's LLD
(cxgb4) and uses the queue allocated by the LLD for sending the crypto
requests to the Hardware and receiving the responses from it.

The crypto operations can be performed by Chelsio's hardware from the
userspace applications and/or from within the kernel space using the
kernel's crypto API.

The above mentioned crypto features have been tested using kernel's
tests mentioned in testmgr.h. They also have been tested from user
space using libkcapi and Openssl.

Signed-off-by: Atul Gupta <atul.gupta@chelsio.com>
Signed-off-by: Hariprasad Shenai <hariprasad@chelsio.com>
Acked-by: Herbert Xu <herbert@gondor.apana.org.au>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/crypto/chelsio/chcr_algo.c [new file with mode: 0644]
drivers/crypto/chelsio/chcr_algo.h [new file with mode: 0644]
drivers/crypto/chelsio/chcr_core.c [new file with mode: 0644]
drivers/crypto/chelsio/chcr_core.h [new file with mode: 0644]
drivers/crypto/chelsio/chcr_crypto.h [new file with mode: 0644]