summaryrefslogtreecommitdiffstats
path: root/crypto/sha2.c
diff options
context:
space:
mode:
authorKrzysztof Halasa <khc@pm.waw.pl>2012-06-07 15:05:11 +0200
committerSascha Hauer <s.hauer@pengutronix.de>2012-06-07 19:39:09 +0200
commit76c7d6b3c7d8593bbe0429e271a2a278f3e6e39f (patch)
treebf1aff31a1b4ae54a224fef088956196837ca221 /crypto/sha2.c
parentedfe50ce405ca41f83828a58d15278b1c9a470c7 (diff)
downloadbarebox-76c7d6b3c7d8593bbe0429e271a2a278f3e6e39f.tar.gz
barebox-76c7d6b3c7d8593bbe0429e271a2a278f3e6e39f.tar.xz
Fix SHA224 to produce 28 bytes of hash (instead of 32).
This fixes a panic in sha224sum. Signed-off-by: Krzysztof HaƂasa <khc@pm.waw.pl> Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Diffstat (limited to 'crypto/sha2.c')
-rw-r--r--crypto/sha2.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/crypto/sha2.c b/crypto/sha2.c
index 3096efe925..afbe0c3e31 100644
--- a/crypto/sha2.c
+++ b/crypto/sha2.c
@@ -274,7 +274,8 @@ static void sha2_finish(sha2_context * ctx, uint8_t digest[32])
PUT_UINT32_BE(ctx->state[4], digest, 16);
PUT_UINT32_BE(ctx->state[5], digest, 20);
PUT_UINT32_BE(ctx->state[6], digest, 24);
- PUT_UINT32_BE(ctx->state[7], digest, 28);
+ if (!ctx->is224)
+ PUT_UINT32_BE(ctx->state[7], digest, 28);
}
struct sha2 {