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.)