Lines Matching +full:sha +full:- +full:1

1 // SPDX-License-Identifier: GPL-2.0-only
6 * Copyright (c) Jean-Luc Cooke <jlcooke@certainkey.com>
31 sctx->state[0] = SHA512_H0; in sha512_sparc64_init()
32 sctx->state[1] = SHA512_H1; in sha512_sparc64_init()
33 sctx->state[2] = SHA512_H2; in sha512_sparc64_init()
34 sctx->state[3] = SHA512_H3; in sha512_sparc64_init()
35 sctx->state[4] = SHA512_H4; in sha512_sparc64_init()
36 sctx->state[5] = SHA512_H5; in sha512_sparc64_init()
37 sctx->state[6] = SHA512_H6; in sha512_sparc64_init()
38 sctx->state[7] = SHA512_H7; in sha512_sparc64_init()
39 sctx->count[0] = sctx->count[1] = 0; in sha512_sparc64_init()
47 sctx->state[0] = SHA384_H0; in sha384_sparc64_init()
48 sctx->state[1] = SHA384_H1; in sha384_sparc64_init()
49 sctx->state[2] = SHA384_H2; in sha384_sparc64_init()
50 sctx->state[3] = SHA384_H3; in sha384_sparc64_init()
51 sctx->state[4] = SHA384_H4; in sha384_sparc64_init()
52 sctx->state[5] = SHA384_H5; in sha384_sparc64_init()
53 sctx->state[6] = SHA384_H6; in sha384_sparc64_init()
54 sctx->state[7] = SHA384_H7; in sha384_sparc64_init()
55 sctx->count[0] = sctx->count[1] = 0; in sha384_sparc64_init()
65 if ((sctx->count[0] += len) < len) in __sha512_sparc64_update()
66 sctx->count[1]++; in __sha512_sparc64_update()
68 done = SHA512_BLOCK_SIZE - partial; in __sha512_sparc64_update()
69 memcpy(sctx->buf + partial, data, done); in __sha512_sparc64_update()
70 sha512_sparc64_transform(sctx->state, sctx->buf, 1); in __sha512_sparc64_update()
72 if (len - done >= SHA512_BLOCK_SIZE) { in __sha512_sparc64_update()
73 const unsigned int rounds = (len - done) / SHA512_BLOCK_SIZE; in __sha512_sparc64_update()
75 sha512_sparc64_transform(sctx->state, data + done, rounds); in __sha512_sparc64_update()
79 memcpy(sctx->buf, data + done, len - done); in __sha512_sparc64_update()
86 unsigned int partial = sctx->count[0] % SHA512_BLOCK_SIZE; in sha512_sparc64_update()
90 if ((sctx->count[0] += len) < len) in sha512_sparc64_update()
91 sctx->count[1]++; in sha512_sparc64_update()
92 memcpy(sctx->buf + partial, data, len); in sha512_sparc64_update()
108 bits[1] = cpu_to_be64(sctx->count[0] << 3); in sha512_sparc64_final()
109 bits[0] = cpu_to_be64(sctx->count[1] << 3 | sctx->count[0] >> 61); in sha512_sparc64_final()
112 index = sctx->count[0] % SHA512_BLOCK_SIZE; in sha512_sparc64_final()
113 padlen = (index < 112) ? (112 - index) : ((SHA512_BLOCK_SIZE+112) - index); in sha512_sparc64_final()
117 if ((sctx->count[0] += padlen) < padlen) in sha512_sparc64_final()
118 sctx->count[1]++; in sha512_sparc64_final()
119 memcpy(sctx->buf + index, padding, padlen); in sha512_sparc64_final()
127 dst[i] = cpu_to_be64(sctx->state[i]); in sha512_sparc64_final()
155 .cra_driver_name= "sha512-sparc64",
170 .cra_driver_name= "sha384-sparc64",
204 pr_info("Using sparc64 sha512 opcode optimized SHA-512/SHA-384 implementation\n"); in sha512_sparc64_mod_init()
208 return -ENODEV; in sha512_sparc64_mod_init()
221 MODULE_DESCRIPTION("SHA-384 and SHA-512 Secure Hash Algorithm, sparc64 sha512 opcode accelerated");