Message ID | 20201117134714.3456446-5-thara.gopinath@linaro.org (mailing list archive) |
---|---|
State | Superseded |
Headers | show |
Series | Enable Qualcomm Crypto Engine on sdm845 | expand |
On Tue 17 Nov 07:47 CST 2020, Thara Gopinath wrote: > Partial hash was being copied into the final result buffer without the > entire message block processed. Depending on how the end user processes > this result buffer, errors vary from result buffer corruption to result > buffer poisoing. Fix this issue by ensuring that only the final hash value > is copied into the result buffer. > Looks reasonable to me Reviewed-by: Bjorn Andersson <bjorn.andersson@linaro.org> Regards, Bjorn > Signed-off-by: Thara Gopinath <thara.gopinath@linaro.org> > --- > drivers/crypto/qce/sha.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/drivers/crypto/qce/sha.c b/drivers/crypto/qce/sha.c > index 87be96a0b0bb..61c418c12345 100644 > --- a/drivers/crypto/qce/sha.c > +++ b/drivers/crypto/qce/sha.c > @@ -48,7 +48,7 @@ static void qce_ahash_done(void *data) > dma_unmap_sg(qce->dev, &rctx->result_sg, 1, DMA_FROM_DEVICE); > > memcpy(rctx->digest, result->auth_iv, digestsize); > - if (req->result) > + if (req->result && rctx->last_blk) > memcpy(req->result, result->auth_iv, digestsize); > > rctx->byte_count[0] = cpu_to_be32(result->auth_byte_count[0]); > -- > 2.25.1 >
diff --git a/drivers/crypto/qce/sha.c b/drivers/crypto/qce/sha.c index 87be96a0b0bb..61c418c12345 100644 --- a/drivers/crypto/qce/sha.c +++ b/drivers/crypto/qce/sha.c @@ -48,7 +48,7 @@ static void qce_ahash_done(void *data) dma_unmap_sg(qce->dev, &rctx->result_sg, 1, DMA_FROM_DEVICE); memcpy(rctx->digest, result->auth_iv, digestsize); - if (req->result) + if (req->result && rctx->last_blk) memcpy(req->result, result->auth_iv, digestsize); rctx->byte_count[0] = cpu_to_be32(result->auth_byte_count[0]);
Partial hash was being copied into the final result buffer without the entire message block processed. Depending on how the end user processes this result buffer, errors vary from result buffer corruption to result buffer poisoing. Fix this issue by ensuring that only the final hash value is copied into the result buffer. Signed-off-by: Thara Gopinath <thara.gopinath@linaro.org> --- drivers/crypto/qce/sha.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)