crypto: nx - fix SHA-2 for chunks bigger than block size
Each call to the co-processor, with exception of the last call, needs to send data that is multiple of block size. As consequence, any remaining data is kept in the internal NX context. This patch fixes a bug in the driver that causes it to save incorrect data into the context when data is bigger than the block size. Reviewed-by: Joy Latten <jmlatten@linux.vnet.ibm.com> Signed-off-by: Marcelo Cerri <mhcerri@linux.vnet.ibm.com> Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
This commit is contained in:
parent
dec0ed6c1b
commit
069fa0453f
|
@ -129,7 +129,7 @@ static int nx_sha256_update(struct shash_desc *desc, const u8 *data,
|
|||
NX_CPB_FDM(csbcpb) |= NX_FDM_CONTINUATION;
|
||||
|
||||
total -= to_process;
|
||||
data += to_process;
|
||||
data += to_process - sctx->count;
|
||||
sctx->count = 0;
|
||||
in_sg = nx_ctx->in_sg;
|
||||
} while (leftover >= SHA256_BLOCK_SIZE);
|
||||
|
|
|
@ -131,7 +131,7 @@ static int nx_sha512_update(struct shash_desc *desc, const u8 *data,
|
|||
NX_CPB_FDM(csbcpb) |= NX_FDM_CONTINUATION;
|
||||
|
||||
total -= to_process;
|
||||
data += to_process;
|
||||
data += to_process - sctx->count[0];
|
||||
sctx->count[0] = 0;
|
||||
in_sg = nx_ctx->in_sg;
|
||||
} while (leftover >= SHA512_BLOCK_SIZE);
|
||||
|
|
Loading…
Reference in New Issue