aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2017-08-09 13:33:49 -0400
committerLinus Torvalds <torvalds@linux-foundation.org>2017-08-09 13:33:49 -0400
commitd555eb6b363455997f1e3ab8604e323c28972ad5 (patch)
treeaa35459d6c71b5887698ae7f1a0a5c7dd860dfe8
parent4530cca1989b70b2c487ad5bcf82e608ab55f734 (diff)
parent60c4081ec4195389f4fa1fce83eaad5e4b948748 (diff)
Merge branch 'linus' of git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6
Pull crypto fixes from Herbert Xu: "Fix two regressions in the inside-secure driver with respect to hmac(sha1)" * 'linus' of git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6: crypto: inside-secure - fix the sha state length in hmac_sha1_setkey crypto: inside-secure - fix invalidation check in hmac_sha1_setkey
-rw-r--r--drivers/crypto/inside-secure/safexcel_hash.c8
1 files changed, 4 insertions, 4 deletions
diff --git a/drivers/crypto/inside-secure/safexcel_hash.c b/drivers/crypto/inside-secure/safexcel_hash.c
index 8527a5899a2f..3f819399cd95 100644
--- a/drivers/crypto/inside-secure/safexcel_hash.c
+++ b/drivers/crypto/inside-secure/safexcel_hash.c
@@ -883,10 +883,7 @@ static int safexcel_hmac_sha1_setkey(struct crypto_ahash *tfm, const u8 *key,
883 if (ret) 883 if (ret)
884 return ret; 884 return ret;
885 885
886 memcpy(ctx->ipad, &istate.state, SHA1_DIGEST_SIZE); 886 for (i = 0; i < SHA1_DIGEST_SIZE / sizeof(u32); i++) {
887 memcpy(ctx->opad, &ostate.state, SHA1_DIGEST_SIZE);
888
889 for (i = 0; i < ARRAY_SIZE(istate.state); i++) {
890 if (ctx->ipad[i] != le32_to_cpu(istate.state[i]) || 887 if (ctx->ipad[i] != le32_to_cpu(istate.state[i]) ||
891 ctx->opad[i] != le32_to_cpu(ostate.state[i])) { 888 ctx->opad[i] != le32_to_cpu(ostate.state[i])) {
892 ctx->base.needs_inv = true; 889 ctx->base.needs_inv = true;
@@ -894,6 +891,9 @@ static int safexcel_hmac_sha1_setkey(struct crypto_ahash *tfm, const u8 *key,
894 } 891 }
895 } 892 }
896 893
894 memcpy(ctx->ipad, &istate.state, SHA1_DIGEST_SIZE);
895 memcpy(ctx->opad, &ostate.state, SHA1_DIGEST_SIZE);
896
897 return 0; 897 return 0;
898} 898}
899 899