]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
crypto: s390/sha512 - Initialise upper counter to zero for sha384
authorHerbert Xu <herbert@gondor.apana.org.au>
Mon, 5 May 2025 12:54:41 +0000 (20:54 +0800)
committerHerbert Xu <herbert@gondor.apana.org.au>
Mon, 5 May 2025 12:58:14 +0000 (20:58 +0800)
Initialise the high bit counter to zero in sha384_init.

Also change the state initialisation to use ctx->sha512.state
instead of ctx->state for consistency.

Fixes: 572b5c4682c7 ("crypto: s390/sha512 - Use API partial block handling")
Reported-by: Ingo Franzki <ifranzki@linux.ibm.com>
Reported-by: Harald Freudenberger <freude@linux.ibm.com>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
arch/s390/crypto/sha512_s390.c

index 3c5175e6dda61aa98e8b29304190351c420dfeec..33711a29618c3552efc4c551b5251e6485011e6a 100644 (file)
@@ -86,15 +86,16 @@ static int sha384_init(struct shash_desc *desc)
 {
        struct s390_sha_ctx *ctx = shash_desc_ctx(desc);
 
-       *(__u64 *)&ctx->state[0] = SHA384_H0;
-       *(__u64 *)&ctx->state[2] = SHA384_H1;
-       *(__u64 *)&ctx->state[4] = SHA384_H2;
-       *(__u64 *)&ctx->state[6] = SHA384_H3;
-       *(__u64 *)&ctx->state[8] = SHA384_H4;
-       *(__u64 *)&ctx->state[10] = SHA384_H5;
-       *(__u64 *)&ctx->state[12] = SHA384_H6;
-       *(__u64 *)&ctx->state[14] = SHA384_H7;
+       ctx->sha512.state[0] = SHA384_H0;
+       ctx->sha512.state[1] = SHA384_H1;
+       ctx->sha512.state[2] = SHA384_H2;
+       ctx->sha512.state[3] = SHA384_H3;
+       ctx->sha512.state[4] = SHA384_H4;
+       ctx->sha512.state[5] = SHA384_H5;
+       ctx->sha512.state[6] = SHA384_H6;
+       ctx->sha512.state[7] = SHA384_H7;
        ctx->count = 0;
+       ctx->sha512.count_hi = 0;
        ctx->func = CPACF_KIMD_SHA_512;
 
        return 0;