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().
> +++ 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.
- Eric