summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorGary R Hook <gary.hook@amd.com>2017-03-15 21:21:01 +0300
committerHerbert Xu <herbert@gondor.apana.org.au>2017-03-24 17:02:55 +0300
commit36cf515b9bbe298e1ce7384620f0d4ec45ad3328 (patch)
tree4772df5332d0e077e6eb51660a064c632ce3ec18 /include
parent990672d48515ce09c76fcf1ceccee48b0dd1942b (diff)
downloadlinux-36cf515b9bbe298e1ce7384620f0d4ec45ad3328.tar.xz
crypto: ccp - Enable support for AES GCM on v5 CCPs
A version 5 device provides the primitive commands required for AES GCM. This patch adds support for en/decryption. Signed-off-by: Gary R Hook <gary.hook@amd.com> Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Diffstat (limited to 'include')
-rw-r--r--include/linux/ccp.h9
1 files changed, 9 insertions, 0 deletions
diff --git a/include/linux/ccp.h b/include/linux/ccp.h
index fa0261748920..dbe8aa0f2940 100644
--- a/include/linux/ccp.h
+++ b/include/linux/ccp.h
@@ -123,6 +123,10 @@ enum ccp_aes_mode {
CCP_AES_MODE_CFB,
CCP_AES_MODE_CTR,
CCP_AES_MODE_CMAC,
+ CCP_AES_MODE_GHASH,
+ CCP_AES_MODE_GCTR,
+ CCP_AES_MODE_GCM,
+ CCP_AES_MODE_GMAC,
CCP_AES_MODE__LAST,
};
@@ -137,6 +141,9 @@ enum ccp_aes_action {
CCP_AES_ACTION_ENCRYPT,
CCP_AES_ACTION__LAST,
};
+/* Overloaded field */
+#define CCP_AES_GHASHAAD CCP_AES_ACTION_DECRYPT
+#define CCP_AES_GHASHFINAL CCP_AES_ACTION_ENCRYPT
/**
* struct ccp_aes_engine - CCP AES operation
@@ -181,6 +188,8 @@ struct ccp_aes_engine {
struct scatterlist *cmac_key; /* K1/K2 cmac key required for
* final cmac cmd */
u32 cmac_key_len; /* In bytes */
+
+ u32 aad_len; /* In bytes */
};
/***** XTS-AES engine *****/