crypto: padlock - Fix hashing of partial blocks
When we encounter partial blocks in finup, we'll invoke the xsha
instruction with a bogus count that is not a multiple of the block
size. This patch fixes it.
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
diff --git a/drivers/crypto/padlock-sha.c b/drivers/crypto/padlock-sha.c
index a936ba4..76cb6b3 100644
--- a/drivers/crypto/padlock-sha.c
+++ b/drivers/crypto/padlock-sha.c
@@ -94,6 +94,7 @@
memcpy(state.buffer + leftover, in, count);
in = state.buffer;
count += leftover;
+ state.count &= ~(SHA1_BLOCK_SIZE - 1);
}
}
@@ -157,6 +158,7 @@
memcpy(state.buf + leftover, in, count);
in = state.buf;
count += leftover;
+ state.count &= ~(SHA1_BLOCK_SIZE - 1);
}
}