xref: /linux/lib/crypto/mips/poly1305-glue.c (revision 22c55fb9eb92395d999b8404d73e58540d11bdd8)
1 // SPDX-License-Identifier: GPL-2.0
2 /*
3  * OpenSSL/Cryptogams accelerated Poly1305 transform for MIPS
4  *
5  * Copyright (C) 2019 Linaro Ltd. <ard.biesheuvel@linaro.org>
6  */
7 
8 #include <crypto/internal/poly1305.h>
9 #include <linux/cpufeature.h>
10 #include <linux/kernel.h>
11 #include <linux/module.h>
12 #include <linux/unaligned.h>
13 
14 asmlinkage void poly1305_block_init_arch(
15 	struct poly1305_block_state *state,
16 	const u8 raw_key[POLY1305_BLOCK_SIZE]);
17 EXPORT_SYMBOL_GPL(poly1305_block_init_arch);
18 asmlinkage void poly1305_blocks_arch(struct poly1305_block_state *state,
19 				     const u8 *src, u32 len, u32 hibit);
20 EXPORT_SYMBOL_GPL(poly1305_blocks_arch);
21 asmlinkage void poly1305_emit_arch(const struct poly1305_state *state,
22 				   u8 digest[POLY1305_DIGEST_SIZE],
23 				   const u32 nonce[4]);
24 EXPORT_SYMBOL_GPL(poly1305_emit_arch);
25 
26 bool poly1305_is_arch_optimized(void)
27 {
28 	return true;
29 }
30 EXPORT_SYMBOL(poly1305_is_arch_optimized);
31 
32 MODULE_DESCRIPTION("Poly1305 transform (MIPS accelerated");
33 MODULE_LICENSE("GPL v2");
34