aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/crypto/ccp/ccp-crypto.h
diff options
context:
space:
mode:
authorTom Lendacky <thomas.lendacky@amd.com>2014-01-06 13:34:17 -0600
committerHerbert Xu <herbert@gondor.apana.org.au>2014-01-15 11:33:39 +0800
commit81a59f000e1d4a60a03081a1fc64aee46d6f0c3e (patch)
tree95c4c83dc6175c6aa6f286676fbbd6c77419d5b8 /drivers/crypto/ccp/ccp-crypto.h
parentcrypto: ccp - Check for caller result area before using it (diff)
downloadlinux-dev-81a59f000e1d4a60a03081a1fc64aee46d6f0c3e.tar.xz
linux-dev-81a59f000e1d4a60a03081a1fc64aee46d6f0c3e.zip
crypto: ccp - Change data length declarations to u64
When performing a hash operation if the amount of data buffered and a request at or near the maximum data length is received then the length calcuation could wrap causing an error in executing the hash operation. Fix this by using a u64 type for the input and output data lengths in all CCP operations. Signed-off-by: Tom Lendacky <thomas.lendacky@amd.com> Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Diffstat (limited to 'drivers/crypto/ccp/ccp-crypto.h')
-rw-r--r--drivers/crypto/ccp/ccp-crypto.h10
1 files changed, 8 insertions, 2 deletions
diff --git a/drivers/crypto/ccp/ccp-crypto.h b/drivers/crypto/ccp/ccp-crypto.h
index 13ea6ea4b45d..b222231b6169 100644
--- a/drivers/crypto/ccp/ccp-crypto.h
+++ b/drivers/crypto/ccp/ccp-crypto.h
@@ -110,7 +110,10 @@ struct ccp_aes_cmac_req_ctx {
unsigned int null_msg;
unsigned int final;
- unsigned int hash_cnt;
+ struct scatterlist *src;
+ unsigned int nbytes;
+
+ u64 hash_cnt;
unsigned int hash_rem;
struct sg_table data_sg;
@@ -149,7 +152,10 @@ struct ccp_sha_req_ctx {
unsigned int first;
unsigned int final;
- unsigned int hash_cnt;
+ struct scatterlist *src;
+ unsigned int nbytes;
+
+ u64 hash_cnt;
unsigned int hash_rem;
struct sg_table data_sg;