Lines Matching +full:data +full:- +full:out

1 // SPDX-License-Identifier: GPL-2.0-or-later
6 * using SSSE3, AVX, AVX2, and SHA-NI instructions.
12 * Copyright (c) Jean-Francois Dive <[email protected]>
41 static int sha1_update(struct shash_desc *desc, const u8 *data, in sha1_update() argument
47 (sctx->count % SHA1_BLOCK_SIZE) + len < SHA1_BLOCK_SIZE) in sha1_update()
48 return crypto_sha1_update(desc, data, len); in sha1_update()
52 * 160-bit internal state, as this is what the asm functions expect. in sha1_update()
57 sha1_base_do_update(desc, data, len, sha1_xform); in sha1_update()
63 static int sha1_finup(struct shash_desc *desc, const u8 *data, in sha1_finup() argument
64 unsigned int len, u8 *out, sha1_block_fn *sha1_xform) in sha1_finup() argument
67 return crypto_sha1_finup(desc, data, len, out); in sha1_finup()
71 sha1_base_do_update(desc, data, len, sha1_xform); in sha1_finup()
75 return sha1_base_finish(desc, out); in sha1_finup()
79 const u8 *data, int blocks);
81 static int sha1_ssse3_update(struct shash_desc *desc, const u8 *data, in sha1_ssse3_update() argument
84 return sha1_update(desc, data, len, sha1_transform_ssse3); in sha1_ssse3_update()
87 static int sha1_ssse3_finup(struct shash_desc *desc, const u8 *data, in sha1_ssse3_finup() argument
88 unsigned int len, u8 *out) in sha1_ssse3_finup() argument
90 return sha1_finup(desc, data, len, out, sha1_transform_ssse3); in sha1_ssse3_finup()
94 static int sha1_ssse3_final(struct shash_desc *desc, u8 *out) in sha1_ssse3_final() argument
96 return sha1_ssse3_finup(desc, NULL, 0, out); in sha1_ssse3_final()
108 .cra_driver_name = "sha1-ssse3",
129 const u8 *data, int blocks);
131 static int sha1_avx_update(struct shash_desc *desc, const u8 *data, in sha1_avx_update() argument
134 return sha1_update(desc, data, len, sha1_transform_avx); in sha1_avx_update()
137 static int sha1_avx_finup(struct shash_desc *desc, const u8 *data, in sha1_avx_finup() argument
138 unsigned int len, u8 *out) in sha1_avx_finup() argument
140 return sha1_finup(desc, data, len, out, sha1_transform_avx); in sha1_avx_finup()
143 static int sha1_avx_final(struct shash_desc *desc, u8 *out) in sha1_avx_final() argument
145 return sha1_avx_finup(desc, NULL, 0, out); in sha1_avx_final()
157 .cra_driver_name = "sha1-avx",
191 const u8 *data, int blocks);
204 const u8 *data, int blocks) in sha1_apply_transform_avx2() argument
206 /* Select the optimal transform based on data block size */ in sha1_apply_transform_avx2()
208 sha1_transform_avx2(state, data, blocks); in sha1_apply_transform_avx2()
210 sha1_transform_avx(state, data, blocks); in sha1_apply_transform_avx2()
213 static int sha1_avx2_update(struct shash_desc *desc, const u8 *data, in sha1_avx2_update() argument
216 return sha1_update(desc, data, len, sha1_apply_transform_avx2); in sha1_avx2_update()
219 static int sha1_avx2_finup(struct shash_desc *desc, const u8 *data, in sha1_avx2_finup() argument
220 unsigned int len, u8 *out) in sha1_avx2_finup() argument
222 return sha1_finup(desc, data, len, out, sha1_apply_transform_avx2); in sha1_avx2_finup()
225 static int sha1_avx2_final(struct shash_desc *desc, u8 *out) in sha1_avx2_final() argument
227 return sha1_avx2_finup(desc, NULL, 0, out); in sha1_avx2_final()
239 .cra_driver_name = "sha1-avx2",
260 asmlinkage void sha1_ni_transform(struct sha1_state *digest, const u8 *data,
263 static int sha1_ni_update(struct shash_desc *desc, const u8 *data, in sha1_ni_update() argument
266 return sha1_update(desc, data, len, sha1_ni_transform); in sha1_ni_update()
269 static int sha1_ni_finup(struct shash_desc *desc, const u8 *data, in sha1_ni_finup() argument
270 unsigned int len, u8 *out) in sha1_ni_finup() argument
272 return sha1_finup(desc, data, len, out, sha1_ni_transform); in sha1_ni_finup()
275 static int sha1_ni_final(struct shash_desc *desc, u8 *out) in sha1_ni_final() argument
277 return sha1_ni_finup(desc, NULL, 0, out); in sha1_ni_final()
289 .cra_driver_name = "sha1-ni",
317 return -ENODEV; in sha1_ssse3_mod_init()
342 return -ENODEV; in sha1_ssse3_mod_init()
360 MODULE_ALIAS_CRYPTO("sha1-ssse3");
361 MODULE_ALIAS_CRYPTO("sha1-avx");
362 MODULE_ALIAS_CRYPTO("sha1-avx2");
364 MODULE_ALIAS_CRYPTO("sha1-ni");