xref: /linux/lib/crypto/mips/chacha-glue.c (revision 13150742b09e720fdf021de14cd2b98b37415a89)
1*7e54e993SEric Biggers // SPDX-License-Identifier: GPL-2.0
2*7e54e993SEric Biggers /*
3*7e54e993SEric Biggers  * ChaCha and HChaCha functions (MIPS optimized)
4*7e54e993SEric Biggers  *
5*7e54e993SEric Biggers  * Copyright (C) 2019 Linaro, Ltd. <ard.biesheuvel@linaro.org>
6*7e54e993SEric Biggers  */
7*7e54e993SEric Biggers 
8*7e54e993SEric Biggers #include <crypto/chacha.h>
9*7e54e993SEric Biggers #include <linux/kernel.h>
10*7e54e993SEric Biggers #include <linux/module.h>
11*7e54e993SEric Biggers 
12*7e54e993SEric Biggers asmlinkage void chacha_crypt_arch(struct chacha_state *state,
13*7e54e993SEric Biggers 				  u8 *dst, const u8 *src,
14*7e54e993SEric Biggers 				  unsigned int bytes, int nrounds);
15*7e54e993SEric Biggers EXPORT_SYMBOL(chacha_crypt_arch);
16*7e54e993SEric Biggers 
17*7e54e993SEric Biggers asmlinkage void hchacha_block_arch(const struct chacha_state *state,
18*7e54e993SEric Biggers 				   u32 out[HCHACHA_OUT_WORDS], int nrounds);
19*7e54e993SEric Biggers EXPORT_SYMBOL(hchacha_block_arch);
20*7e54e993SEric Biggers 
chacha_is_arch_optimized(void)21*7e54e993SEric Biggers bool chacha_is_arch_optimized(void)
22*7e54e993SEric Biggers {
23*7e54e993SEric Biggers 	return true;
24*7e54e993SEric Biggers }
25*7e54e993SEric Biggers EXPORT_SYMBOL(chacha_is_arch_optimized);
26*7e54e993SEric Biggers 
27*7e54e993SEric Biggers MODULE_DESCRIPTION("ChaCha and HChaCha functions (MIPS optimized)");
28*7e54e993SEric Biggers MODULE_AUTHOR("Ard Biesheuvel <ard.biesheuvel@linaro.org>");
29*7e54e993SEric Biggers MODULE_LICENSE("GPL v2");
30