Lines Matching +full:sha +full:- +full:256

1 // SPDX-License-Identifier: GPL-2.0-or-later
5 * SHA-224 and SHA-256 Secure Hash Algorithm.
11 * Copyright (c) Jean-Luc Cooke <jlcooke@certainkey.com>
26 #include "octeon-crypto.h"
29 * We pass everything as 64-bit. OCTEON can handle misaligned data.
34 u64 *hash = (u64 *)sctx->state; in octeon_sha256_store_hash()
44 u64 *hash = (u64 *)sctx->state; in octeon_sha256_read_hash()
70 sctx->state[0] = SHA224_H0; in octeon_sha224_init()
71 sctx->state[1] = SHA224_H1; in octeon_sha224_init()
72 sctx->state[2] = SHA224_H2; in octeon_sha224_init()
73 sctx->state[3] = SHA224_H3; in octeon_sha224_init()
74 sctx->state[4] = SHA224_H4; in octeon_sha224_init()
75 sctx->state[5] = SHA224_H5; in octeon_sha224_init()
76 sctx->state[6] = SHA224_H6; in octeon_sha224_init()
77 sctx->state[7] = SHA224_H7; in octeon_sha224_init()
78 sctx->count = 0; in octeon_sha224_init()
87 sctx->state[0] = SHA256_H0; in octeon_sha256_init()
88 sctx->state[1] = SHA256_H1; in octeon_sha256_init()
89 sctx->state[2] = SHA256_H2; in octeon_sha256_init()
90 sctx->state[3] = SHA256_H3; in octeon_sha256_init()
91 sctx->state[4] = SHA256_H4; in octeon_sha256_init()
92 sctx->state[5] = SHA256_H5; in octeon_sha256_init()
93 sctx->state[6] = SHA256_H6; in octeon_sha256_init()
94 sctx->state[7] = SHA256_H7; in octeon_sha256_init()
95 sctx->count = 0; in octeon_sha256_init()
107 partial = sctx->count % SHA256_BLOCK_SIZE; in __octeon_sha256_update()
108 sctx->count += len; in __octeon_sha256_update()
114 done = -partial; in __octeon_sha256_update()
115 memcpy(sctx->buf + partial, data, in __octeon_sha256_update()
117 src = sctx->buf; in __octeon_sha256_update()
128 memcpy(sctx->buf + partial, src, len - done); in __octeon_sha256_update()
143 if ((sctx->count % SHA256_BLOCK_SIZE) + len < SHA256_BLOCK_SIZE) in octeon_sha256_update()
170 bits = cpu_to_be64(sctx->count << 3); in octeon_sha256_final()
173 index = sctx->count & 0x3f; in octeon_sha256_final()
174 pad_len = (index < 56) ? (56 - index) : ((64+56) - index); in octeon_sha256_final()
189 dst[i] = cpu_to_be32(sctx->state[i]); in octeon_sha256_final()
236 .cra_driver_name= "octeon-sha256",
249 .cra_driver_name= "octeon-sha224",
258 return -ENOTSUPP; in octeon_sha256_mod_init()
273 MODULE_DESCRIPTION("SHA-224 and SHA-256 Secure Hash Algorithm (OCTEON)");