obj-$(CONFIG_CRYPTO_LIB_DES)                   += libdes.o
 libdes-y                                       := des.o
 
-obj-$(CONFIG_CRYPTO_LIB_POLY1305_GENERIC)      += libpoly1305.o
-libpoly1305-y                                  := poly1305-donna32.o
-libpoly1305-$(CONFIG_ARCH_SUPPORTS_INT128)     := poly1305-donna64.o
+obj-$(CONFIG_CRYPTO_LIB_POLY1305)              += libpoly1305.o
 libpoly1305-y                                  += poly1305.o
 
+obj-$(CONFIG_CRYPTO_LIB_POLY1305_GENERIC)      += libpoly1305-generic.o
+libpoly1305-generic-y                          := poly1305-donna32.o
+libpoly1305-generic-$(CONFIG_ARCH_SUPPORTS_INT128) := poly1305-donna64.o
+libpoly1305-generic-y                          += poly1305-generic.o
+
 obj-$(CONFIG_CRYPTO_LIB_SHA1)                  += libsha1.o
 libsha1-y                                      := sha1.o
 
 
--- /dev/null
+// SPDX-License-Identifier: GPL-2.0-or-later
+/*
+ * Poly1305 authenticator algorithm, RFC7539
+ *
+ * Copyright (C) 2015 Martin Willi
+ *
+ * Based on public domain code by Andrew Moon and Daniel J. Bernstein.
+ */
+
+#include <crypto/internal/poly1305.h>
+#include <linux/kernel.h>
+#include <linux/module.h>
+
+void poly1305_block_init_generic(struct poly1305_block_state *desc,
+                                const u8 raw_key[POLY1305_BLOCK_SIZE])
+{
+       poly1305_core_init(&desc->h);
+       poly1305_core_setkey(&desc->core_r, raw_key);
+}
+EXPORT_SYMBOL_GPL(poly1305_block_init_generic);
+
+MODULE_LICENSE("GPL");
+MODULE_AUTHOR("Martin Willi <martin@strongswan.org>");
+MODULE_DESCRIPTION("Poly1305 algorithm (generic implementation)");
 
 #include <linux/string.h>
 #include <linux/unaligned.h>
 
-void poly1305_block_init_generic(struct poly1305_block_state *desc,
-                                const u8 raw_key[POLY1305_BLOCK_SIZE])
-{
-       poly1305_core_init(&desc->h);
-       poly1305_core_setkey(&desc->core_r, raw_key);
-}
-EXPORT_SYMBOL_GPL(poly1305_block_init_generic);
-
 void poly1305_init(struct poly1305_desc_ctx *desc,
                   const u8 key[POLY1305_KEY_SIZE])
 {