crypto: ccp - Fix XTS-AES-128 support on v5 CCPs
Version 5 CCPs have some new requirements for XTS-AES: the type field must be specified, and the key requires 512 bits, with each part occupying 256 bits and padded with zeroes. cc: <stable@vger.kernel.org> # 4.9.x+ Signed-off-by: Gary R Hook <ghook@amd.com> Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
This commit is contained in:
@@ -145,6 +145,7 @@ union ccp_function {
|
||||
#define CCP_AES_MODE(p) ((p)->aes.mode)
|
||||
#define CCP_AES_TYPE(p) ((p)->aes.type)
|
||||
#define CCP_XTS_SIZE(p) ((p)->aes_xts.size)
|
||||
#define CCP_XTS_TYPE(p) ((p)->aes_xts.type)
|
||||
#define CCP_XTS_ENCRYPT(p) ((p)->aes_xts.encrypt)
|
||||
#define CCP_DES3_SIZE(p) ((p)->des3.size)
|
||||
#define CCP_DES3_ENCRYPT(p) ((p)->des3.encrypt)
|
||||
@@ -344,6 +345,7 @@ static int ccp5_perform_xts_aes(struct ccp_op *op)
|
||||
CCP5_CMD_PROT(&desc) = 0;
|
||||
|
||||
function.raw = 0;
|
||||
CCP_XTS_TYPE(&function) = op->u.xts.type;
|
||||
CCP_XTS_ENCRYPT(&function) = op->u.xts.action;
|
||||
CCP_XTS_SIZE(&function) = op->u.xts.unit_size;
|
||||
CCP5_CMD_FUNCTION(&desc) = function.raw;
|
||||
|
Reference in New Issue
Block a user