On Mon, Jun 10, 2019 at 06:10:41PM +0200, Ard Biesheuvel wrote: > On Mon, 10 Jun 2019 at 18:06, Eric Biggers <ebiggers@xxxxxxxxxx> wrote: > > > > Just some bike shedding: > > > > On Sun, Jun 09, 2019 at 01:55:03PM +0200, Ard Biesheuvel wrote: > > > diff --git a/include/crypto/arc4.h b/include/crypto/arc4.h > > > index 5b2c24ab0139..62ac95ec6860 100644 > > > --- a/include/crypto/arc4.h > > > +++ b/include/crypto/arc4.h > > > @@ -6,8 +6,21 @@ > > > #ifndef _CRYPTO_ARC4_H > > > #define _CRYPTO_ARC4_H > > > > > > +#include <linux/types.h> > > > + > > > #define ARC4_MIN_KEY_SIZE 1 > > > #define ARC4_MAX_KEY_SIZE 256 > > > #define ARC4_BLOCK_SIZE 1 > > > > > > +struct crypto_arc4_ctx { > > > + u32 S[256]; > > > + u32 x, y; > > > +}; > > > + > > > +int crypto_arc4_set_key(struct crypto_arc4_ctx *ctx, const u8 *in_key, > > > + unsigned int key_len); > > > + > > > +void crypto_arc4_crypt(struct crypto_arc4_ctx *ctx, u8 *out, const u8 *in, > > > + unsigned int len); > > > > How about naming these just arc4_* instead of crypto_arc4_*? The crypto_* > > prefix is already used mostly for crypto API helper functions, i.e. functions > > that take take one of the abstract crypto API types like crypto_skcipher, > > shash_desc, etc. For lib functions, the bare name seems more appropriate. See > > e.g. sha256_update() vs. crypto_sha256_update(). > > > > That is also fine, although I am slightly concerned that we may run > into trouble with other algorithms in the future. But I do agree it > makes sense to make a clear distinction with the full blown API. > > > > +++ b/lib/crypto/Makefile > > > @@ -0,0 +1,3 @@ > > > +# SPDX-License-Identifier: GPL-2.0 > > > + > > > +obj-$(CONFIG_CRYPTO_LIB_ARC4) += libarc4.o > > > diff --git a/lib/crypto/libarc4.c b/lib/crypto/libarc4.c > > > new file mode 100644 > > > index 000000000000..b828af2cc03b > > > --- /dev/null > > > +++ b/lib/crypto/libarc4.c > > > @@ -0,0 +1,74 @@ > > > > How about arc4.c instead of libarc4.c? The second "lib" is redundant, given > > that the file is already in the lib/ directory. > > > > The problem here is that we'll end up with two modules named arc4.ko, > one in crypto/ and one in lib/crypto/. Perhaps we should rename the > other one? (especially once it implements ecb(arc4) only.) Another option is to do: obj-$(CONFIG_CRYPTO_LIB_ARC4) += libarc4.o libarc4-y := arc4.o Also, CONFIG_CRYPTO_LIB_ARC4 needs to actually be a tristate. It seems you accidentally made it a bool: > +config CRYPTO_LIB_ARC4 > + bool > + - Eric