Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit bbc406b9 authored by Jussi Kivilinna's avatar Jussi Kivilinna Committed by Herbert Xu
Browse files

crypto: serpent - use crypto_[un]register_algs



Combine all crypto_alg to be registered and use new crypto_[un]register_algs
functions. This simplifies init/exit code.

Signed-off-by: default avatarJussi Kivilinna <jussi.kivilinna@mbnet.fi>
Signed-off-by: default avatarHerbert Xu <herbert@gondor.apana.org.au>
parent 9935e6d2
Loading
Loading
Loading
Loading
+19 −34
Original line number Original line Diff line number Diff line
@@ -567,24 +567,6 @@ static void serpent_decrypt(struct crypto_tfm *tfm, u8 *dst, const u8 *src)
	__serpent_decrypt(ctx, dst, src);
	__serpent_decrypt(ctx, dst, src);
}
}


static struct crypto_alg serpent_alg = {
	.cra_name		=	"serpent",
	.cra_driver_name	=	"serpent-generic",
	.cra_priority		=	100,
	.cra_flags		=	CRYPTO_ALG_TYPE_CIPHER,
	.cra_blocksize		=	SERPENT_BLOCK_SIZE,
	.cra_ctxsize		=	sizeof(struct serpent_ctx),
	.cra_alignmask		=	3,
	.cra_module		=	THIS_MODULE,
	.cra_list		=	LIST_HEAD_INIT(serpent_alg.cra_list),
	.cra_u			=	{ .cipher = {
	.cia_min_keysize	=	SERPENT_MIN_KEY_SIZE,
	.cia_max_keysize	=	SERPENT_MAX_KEY_SIZE,
	.cia_setkey		=	serpent_setkey,
	.cia_encrypt		=	serpent_encrypt,
	.cia_decrypt		=	serpent_decrypt } }
};

static int tnepres_setkey(struct crypto_tfm *tfm, const u8 *key,
static int tnepres_setkey(struct crypto_tfm *tfm, const u8 *key,
			  unsigned int keylen)
			  unsigned int keylen)
{
{
@@ -637,41 +619,44 @@ static void tnepres_decrypt(struct crypto_tfm *tfm, u8 *dst, const u8 *src)
	d[3] = swab32(rd[0]);
	d[3] = swab32(rd[0]);
}
}


static struct crypto_alg tnepres_alg = {
static struct crypto_alg srp_algs[2] = { {
	.cra_name		=	"serpent",
	.cra_driver_name	=	"serpent-generic",
	.cra_priority		=	100,
	.cra_flags		=	CRYPTO_ALG_TYPE_CIPHER,
	.cra_blocksize		=	SERPENT_BLOCK_SIZE,
	.cra_ctxsize		=	sizeof(struct serpent_ctx),
	.cra_alignmask		=	3,
	.cra_module		=	THIS_MODULE,
	.cra_u			=	{ .cipher = {
	.cia_min_keysize	=	SERPENT_MIN_KEY_SIZE,
	.cia_max_keysize	=	SERPENT_MAX_KEY_SIZE,
	.cia_setkey		=	serpent_setkey,
	.cia_encrypt		=	serpent_encrypt,
	.cia_decrypt		=	serpent_decrypt } }
}, {
	.cra_name		=	"tnepres",
	.cra_name		=	"tnepres",
	.cra_flags		=	CRYPTO_ALG_TYPE_CIPHER,
	.cra_flags		=	CRYPTO_ALG_TYPE_CIPHER,
	.cra_blocksize		=	SERPENT_BLOCK_SIZE,
	.cra_blocksize		=	SERPENT_BLOCK_SIZE,
	.cra_ctxsize		=	sizeof(struct serpent_ctx),
	.cra_ctxsize		=	sizeof(struct serpent_ctx),
	.cra_alignmask		=	3,
	.cra_alignmask		=	3,
	.cra_module		=	THIS_MODULE,
	.cra_module		=	THIS_MODULE,
	.cra_list		=	LIST_HEAD_INIT(serpent_alg.cra_list),
	.cra_u			=	{ .cipher = {
	.cra_u			=	{ .cipher = {
	.cia_min_keysize	=	SERPENT_MIN_KEY_SIZE,
	.cia_min_keysize	=	SERPENT_MIN_KEY_SIZE,
	.cia_max_keysize	=	SERPENT_MAX_KEY_SIZE,
	.cia_max_keysize	=	SERPENT_MAX_KEY_SIZE,
	.cia_setkey		=	tnepres_setkey,
	.cia_setkey		=	tnepres_setkey,
	.cia_encrypt		=	tnepres_encrypt,
	.cia_encrypt		=	tnepres_encrypt,
	.cia_decrypt		=	tnepres_decrypt } }
	.cia_decrypt		=	tnepres_decrypt } }
};
} };


static int __init serpent_mod_init(void)
static int __init serpent_mod_init(void)
{
{
	int ret = crypto_register_alg(&serpent_alg);
	return crypto_register_algs(srp_algs, ARRAY_SIZE(srp_algs));

	if (ret)
		return ret;

	ret = crypto_register_alg(&tnepres_alg);

	if (ret)
		crypto_unregister_alg(&serpent_alg);

	return ret;
}
}


static void __exit serpent_mod_fini(void)
static void __exit serpent_mod_fini(void)
{
{
	crypto_unregister_alg(&tnepres_alg);
	crypto_unregister_algs(srp_algs, ARRAY_SIZE(srp_algs));
	crypto_unregister_alg(&serpent_alg);
}
}


module_init(serpent_mod_init);
module_init(serpent_mod_init);