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