Lines Matching +full:sha +full:- +full:1
1 // SPDX-License-Identifier: GPL-2.0-only
6 * Copyright (c) Jean-Luc Cooke <jlcooke@certainkey.com>
32 sctx->state[0] = SHA224_H0; in sha224_sparc64_init()
33 sctx->state[1] = SHA224_H1; in sha224_sparc64_init()
34 sctx->state[2] = SHA224_H2; in sha224_sparc64_init()
35 sctx->state[3] = SHA224_H3; in sha224_sparc64_init()
36 sctx->state[4] = SHA224_H4; in sha224_sparc64_init()
37 sctx->state[5] = SHA224_H5; in sha224_sparc64_init()
38 sctx->state[6] = SHA224_H6; in sha224_sparc64_init()
39 sctx->state[7] = SHA224_H7; in sha224_sparc64_init()
40 sctx->count = 0; in sha224_sparc64_init()
48 sctx->state[0] = SHA256_H0; in sha256_sparc64_init()
49 sctx->state[1] = SHA256_H1; in sha256_sparc64_init()
50 sctx->state[2] = SHA256_H2; in sha256_sparc64_init()
51 sctx->state[3] = SHA256_H3; in sha256_sparc64_init()
52 sctx->state[4] = SHA256_H4; in sha256_sparc64_init()
53 sctx->state[5] = SHA256_H5; in sha256_sparc64_init()
54 sctx->state[6] = SHA256_H6; in sha256_sparc64_init()
55 sctx->state[7] = SHA256_H7; in sha256_sparc64_init()
56 sctx->count = 0; in sha256_sparc64_init()
66 sctx->count += len; in __sha256_sparc64_update()
68 done = SHA256_BLOCK_SIZE - partial; in __sha256_sparc64_update()
69 memcpy(sctx->buf + partial, data, done); in __sha256_sparc64_update()
70 sha256_sparc64_transform(sctx->state, sctx->buf, 1); in __sha256_sparc64_update()
72 if (len - done >= SHA256_BLOCK_SIZE) { in __sha256_sparc64_update()
73 const unsigned int rounds = (len - done) / SHA256_BLOCK_SIZE; in __sha256_sparc64_update()
75 sha256_sparc64_transform(sctx->state, data + done, rounds); in __sha256_sparc64_update()
79 memcpy(sctx->buf, data + done, len - done); in __sha256_sparc64_update()
86 unsigned int partial = sctx->count % SHA256_BLOCK_SIZE; in sha256_sparc64_update()
90 sctx->count += len; in sha256_sparc64_update()
91 memcpy(sctx->buf + partial, data, len); in sha256_sparc64_update()
106 bits = cpu_to_be64(sctx->count << 3); in sha256_sparc64_final()
109 index = sctx->count % SHA256_BLOCK_SIZE; in sha256_sparc64_final()
110 padlen = (index < 56) ? (56 - index) : ((SHA256_BLOCK_SIZE+56) - index); in sha256_sparc64_final()
114 sctx->count += padlen; in sha256_sparc64_final()
115 memcpy(sctx->buf + index, padding, padlen); in sha256_sparc64_final()
123 dst[i] = cpu_to_be32(sctx->state[i]); in sha256_sparc64_final()
170 .cra_driver_name= "sha256-sparc64",
185 .cra_driver_name= "sha224-sparc64",
219 pr_info("Using sparc64 sha256 opcode optimized SHA-256/SHA-224 implementation\n"); in sha256_sparc64_mod_init()
223 return -ENODEV; in sha256_sparc64_mod_init()
236 MODULE_DESCRIPTION("SHA-224 and SHA-256 Secure Hash Algorithm, sparc64 sha256 opcode accelerated");