dect
/
linux-2.6
Archived
13
0
Fork 0

crypto: tea - 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: Jussi Kivilinna <jussi.kivilinna@mbnet.fi>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
This commit is contained in:
Jussi Kivilinna 2012-07-11 14:19:55 +03:00 committed by Herbert Xu
parent 2d53492620
commit 738206d325
1 changed files with 6 additions and 35 deletions

View File

@ -219,84 +219,55 @@ static void xeta_decrypt(struct crypto_tfm *tfm, u8 *dst, const u8 *src)
out[1] = cpu_to_le32(z); out[1] = cpu_to_le32(z);
} }
static struct crypto_alg tea_alg = { static struct crypto_alg tea_algs[3] = { {
.cra_name = "tea", .cra_name = "tea",
.cra_flags = CRYPTO_ALG_TYPE_CIPHER, .cra_flags = CRYPTO_ALG_TYPE_CIPHER,
.cra_blocksize = TEA_BLOCK_SIZE, .cra_blocksize = TEA_BLOCK_SIZE,
.cra_ctxsize = sizeof (struct tea_ctx), .cra_ctxsize = sizeof (struct tea_ctx),
.cra_alignmask = 3, .cra_alignmask = 3,
.cra_module = THIS_MODULE, .cra_module = THIS_MODULE,
.cra_list = LIST_HEAD_INIT(tea_alg.cra_list),
.cra_u = { .cipher = { .cra_u = { .cipher = {
.cia_min_keysize = TEA_KEY_SIZE, .cia_min_keysize = TEA_KEY_SIZE,
.cia_max_keysize = TEA_KEY_SIZE, .cia_max_keysize = TEA_KEY_SIZE,
.cia_setkey = tea_setkey, .cia_setkey = tea_setkey,
.cia_encrypt = tea_encrypt, .cia_encrypt = tea_encrypt,
.cia_decrypt = tea_decrypt } } .cia_decrypt = tea_decrypt } }
}; }, {
static struct crypto_alg xtea_alg = {
.cra_name = "xtea", .cra_name = "xtea",
.cra_flags = CRYPTO_ALG_TYPE_CIPHER, .cra_flags = CRYPTO_ALG_TYPE_CIPHER,
.cra_blocksize = XTEA_BLOCK_SIZE, .cra_blocksize = XTEA_BLOCK_SIZE,
.cra_ctxsize = sizeof (struct xtea_ctx), .cra_ctxsize = sizeof (struct xtea_ctx),
.cra_alignmask = 3, .cra_alignmask = 3,
.cra_module = THIS_MODULE, .cra_module = THIS_MODULE,
.cra_list = LIST_HEAD_INIT(xtea_alg.cra_list),
.cra_u = { .cipher = { .cra_u = { .cipher = {
.cia_min_keysize = XTEA_KEY_SIZE, .cia_min_keysize = XTEA_KEY_SIZE,
.cia_max_keysize = XTEA_KEY_SIZE, .cia_max_keysize = XTEA_KEY_SIZE,
.cia_setkey = xtea_setkey, .cia_setkey = xtea_setkey,
.cia_encrypt = xtea_encrypt, .cia_encrypt = xtea_encrypt,
.cia_decrypt = xtea_decrypt } } .cia_decrypt = xtea_decrypt } }
}; }, {
static struct crypto_alg xeta_alg = {
.cra_name = "xeta", .cra_name = "xeta",
.cra_flags = CRYPTO_ALG_TYPE_CIPHER, .cra_flags = CRYPTO_ALG_TYPE_CIPHER,
.cra_blocksize = XTEA_BLOCK_SIZE, .cra_blocksize = XTEA_BLOCK_SIZE,
.cra_ctxsize = sizeof (struct xtea_ctx), .cra_ctxsize = sizeof (struct xtea_ctx),
.cra_alignmask = 3, .cra_alignmask = 3,
.cra_module = THIS_MODULE, .cra_module = THIS_MODULE,
.cra_list = LIST_HEAD_INIT(xtea_alg.cra_list),
.cra_u = { .cipher = { .cra_u = { .cipher = {
.cia_min_keysize = XTEA_KEY_SIZE, .cia_min_keysize = XTEA_KEY_SIZE,
.cia_max_keysize = XTEA_KEY_SIZE, .cia_max_keysize = XTEA_KEY_SIZE,
.cia_setkey = xtea_setkey, .cia_setkey = xtea_setkey,
.cia_encrypt = xeta_encrypt, .cia_encrypt = xeta_encrypt,
.cia_decrypt = xeta_decrypt } } .cia_decrypt = xeta_decrypt } }
}; } };
static int __init tea_mod_init(void) static int __init tea_mod_init(void)
{ {
int ret = 0; return crypto_register_algs(tea_algs, ARRAY_SIZE(tea_algs));
ret = crypto_register_alg(&tea_alg);
if (ret < 0)
goto out;
ret = crypto_register_alg(&xtea_alg);
if (ret < 0) {
crypto_unregister_alg(&tea_alg);
goto out;
}
ret = crypto_register_alg(&xeta_alg);
if (ret < 0) {
crypto_unregister_alg(&tea_alg);
crypto_unregister_alg(&xtea_alg);
goto out;
}
out:
return ret;
} }
static void __exit tea_mod_fini(void) static void __exit tea_mod_fini(void)
{ {
crypto_unregister_alg(&tea_alg); crypto_unregister_algs(tea_algs, ARRAY_SIZE(tea_algs));
crypto_unregister_alg(&xtea_alg);
crypto_unregister_alg(&xeta_alg);
} }
MODULE_ALIAS("xtea"); MODULE_ALIAS("xtea");