crypto: lib/poly1305 - Build main library on LIB_POLY1305 and split generic code out
Split the lib poly1305 code just as was done with sha256. Make
the main library code conditional on LIB_POLY1305 instead of
LIB_POLY1305_GENERIC.
Reported-by: Giovanni Cabiddu <giovanni.cabiddu@intel.com>
Fixes: 10a6d72ea3 ("crypto: lib/poly1305 - Use block-only interface")
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
pull/1250/head
parent
64745a9ca8
commit
9b9d4ef0cf
|
|
@ -40,11 +40,14 @@ libcurve25519-y += curve25519.o
|
|||
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
|
||||
|
||||
|
|
|
|||
|
|
@ -0,0 +1,24 @@
|
|||
// 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)");
|
||||
|
|
@ -14,14 +14,6 @@
|
|||
#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])
|
||||
{
|
||||
|
|
|
|||
Loading…
Reference in New Issue