Lines Matching +full:sha +full:- +full:256
1 // SPDX-License-Identifier: GPL-2.0-or-later
3 * Glue code for SHA-256 implementation for SPE instructions (PPC)
56 do { *ptr++ = 0; } while (--count); in ppc_sha256_clear_context()
63 sctx->state[0] = SHA256_H0; in ppc_spe_sha256_init()
64 sctx->state[1] = SHA256_H1; in ppc_spe_sha256_init()
65 sctx->state[2] = SHA256_H2; in ppc_spe_sha256_init()
66 sctx->state[3] = SHA256_H3; in ppc_spe_sha256_init()
67 sctx->state[4] = SHA256_H4; in ppc_spe_sha256_init()
68 sctx->state[5] = SHA256_H5; in ppc_spe_sha256_init()
69 sctx->state[6] = SHA256_H6; in ppc_spe_sha256_init()
70 sctx->state[7] = SHA256_H7; in ppc_spe_sha256_init()
71 sctx->count = 0; in ppc_spe_sha256_init()
80 sctx->state[0] = SHA224_H0; in ppc_spe_sha224_init()
81 sctx->state[1] = SHA224_H1; in ppc_spe_sha224_init()
82 sctx->state[2] = SHA224_H2; in ppc_spe_sha224_init()
83 sctx->state[3] = SHA224_H3; in ppc_spe_sha224_init()
84 sctx->state[4] = SHA224_H4; in ppc_spe_sha224_init()
85 sctx->state[5] = SHA224_H5; in ppc_spe_sha224_init()
86 sctx->state[6] = SHA224_H6; in ppc_spe_sha224_init()
87 sctx->state[7] = SHA224_H7; in ppc_spe_sha224_init()
88 sctx->count = 0; in ppc_spe_sha224_init()
97 const unsigned int offset = sctx->count & 0x3f; in ppc_spe_sha256_update()
98 const unsigned int avail = 64 - offset; in ppc_spe_sha256_update()
103 sctx->count += len; in ppc_spe_sha256_update()
104 memcpy((char *)sctx->buf + offset, src, len); in ppc_spe_sha256_update()
108 sctx->count += len; in ppc_spe_sha256_update()
111 memcpy((char *)sctx->buf + offset, src, avail); in ppc_spe_sha256_update()
114 ppc_spe_sha256_transform(sctx->state, (const u8 *)sctx->buf, 1); in ppc_spe_sha256_update()
117 len -= avail; in ppc_spe_sha256_update()
127 ppc_spe_sha256_transform(sctx->state, src, bytes >> 6); in ppc_spe_sha256_update()
131 len -= bytes; in ppc_spe_sha256_update()
134 memcpy((char *)sctx->buf, src, len); in ppc_spe_sha256_update()
141 const unsigned int offset = sctx->count & 0x3f; in ppc_spe_sha256_final()
142 char *p = (char *)sctx->buf + offset; in ppc_spe_sha256_final()
144 __be64 *pbits = (__be64 *)(((char *)&sctx->buf) + 56); in ppc_spe_sha256_final()
147 padlen = 55 - offset; in ppc_spe_sha256_final()
154 ppc_spe_sha256_transform(sctx->state, sctx->buf, 1); in ppc_spe_sha256_final()
155 p = (char *)sctx->buf; in ppc_spe_sha256_final()
160 *pbits = cpu_to_be64(sctx->count << 3); in ppc_spe_sha256_final()
161 ppc_spe_sha256_transform(sctx->state, sctx->buf, 1); in ppc_spe_sha256_final()
165 dst[0] = cpu_to_be32(sctx->state[0]); in ppc_spe_sha256_final()
166 dst[1] = cpu_to_be32(sctx->state[1]); in ppc_spe_sha256_final()
167 dst[2] = cpu_to_be32(sctx->state[2]); in ppc_spe_sha256_final()
168 dst[3] = cpu_to_be32(sctx->state[3]); in ppc_spe_sha256_final()
169 dst[4] = cpu_to_be32(sctx->state[4]); in ppc_spe_sha256_final()
170 dst[5] = cpu_to_be32(sctx->state[5]); in ppc_spe_sha256_final()
171 dst[6] = cpu_to_be32(sctx->state[6]); in ppc_spe_sha256_final()
172 dst[7] = cpu_to_be32(sctx->state[7]); in ppc_spe_sha256_final()
226 .cra_driver_name= "sha256-ppc-spe",
242 .cra_driver_name= "sha224-ppc-spe",
263 MODULE_DESCRIPTION("SHA-224 and SHA-256 Secure Hash Algorithm, SPE optimized");
266 MODULE_ALIAS_CRYPTO("sha224-ppc-spe");
268 MODULE_ALIAS_CRYPTO("sha256-ppc-spe");