Skip to content

Commit

Permalink
crypto: skcipher - Move IV generators into their own modules
Browse files Browse the repository at this point in the history
This patch moves the default IV generators into their own modules
in order to break a dependency loop between cryptomgr, rng, and
blkcipher.

Signed-off-by: Herbert Xu <[email protected]>
  • Loading branch information
herbertx committed Aug 29, 2008
1 parent 1aa4ecd commit 5be5e66
Show file tree
Hide file tree
Showing 5 changed files with 18 additions and 41 deletions.
4 changes: 2 additions & 2 deletions crypto/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -13,9 +13,9 @@ obj-$(CONFIG_CRYPTO_AEAD) += aead.o

crypto_blkcipher-objs := ablkcipher.o
crypto_blkcipher-objs += blkcipher.o
crypto_blkcipher-objs += chainiv.o
crypto_blkcipher-objs += eseqiv.o
obj-$(CONFIG_CRYPTO_BLKCIPHER) += crypto_blkcipher.o
obj-$(CONFIG_CRYPTO_BLKCIPHER) += chainiv.o
obj-$(CONFIG_CRYPTO_BLKCIPHER) += eseqiv.o
obj-$(CONFIG_CRYPTO_SEQIV) += seqiv.o

crypto_hash-objs := hash.o
Expand Down
29 changes: 0 additions & 29 deletions crypto/blkcipher.c
Original file line number Diff line number Diff line change
Expand Up @@ -696,34 +696,5 @@ void skcipher_geniv_exit(struct crypto_tfm *tfm)
}
EXPORT_SYMBOL_GPL(skcipher_geniv_exit);

static int __init blkcipher_module_init(void)
{
int err;

err = chainiv_module_init();
if (err)
goto out;

err = eseqiv_module_init();
if (err)
goto eseqiv_err;

out:
return err;

eseqiv_err:
chainiv_module_exit();
goto out;
}

static void __exit blkcipher_module_exit(void)
{
eseqiv_module_exit();
chainiv_module_exit();
}

module_init(blkcipher_module_init);
module_exit(blkcipher_module_exit);

MODULE_LICENSE("GPL");
MODULE_DESCRIPTION("Generic block chaining cipher type");
10 changes: 8 additions & 2 deletions crypto/chainiv.c
Original file line number Diff line number Diff line change
Expand Up @@ -320,12 +320,18 @@ static struct crypto_template chainiv_tmpl = {
.module = THIS_MODULE,
};

int __init chainiv_module_init(void)
static int __init chainiv_module_init(void)
{
return crypto_register_template(&chainiv_tmpl);
}

void chainiv_module_exit(void)
static void chainiv_module_exit(void)
{
crypto_unregister_template(&chainiv_tmpl);
}

module_init(chainiv_module_init);
module_exit(chainiv_module_exit);

MODULE_LICENSE("GPL");
MODULE_DESCRIPTION("Chain IV Generator");
10 changes: 8 additions & 2 deletions crypto/eseqiv.c
Original file line number Diff line number Diff line change
Expand Up @@ -248,12 +248,18 @@ static struct crypto_template eseqiv_tmpl = {
.module = THIS_MODULE,
};

int __init eseqiv_module_init(void)
static int __init eseqiv_module_init(void)
{
return crypto_register_template(&eseqiv_tmpl);
}

void __exit eseqiv_module_exit(void)
static void __exit eseqiv_module_exit(void)
{
crypto_unregister_template(&eseqiv_tmpl);
}

module_init(eseqiv_module_init);
module_exit(eseqiv_module_exit);

MODULE_LICENSE("GPL");
MODULE_DESCRIPTION("Encrypted Sequence Number IV Generator");
6 changes: 0 additions & 6 deletions include/crypto/internal/skcipher.h
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,6 @@

#include <crypto/algapi.h>
#include <crypto/skcipher.h>
#include <linux/init.h>
#include <linux/types.h>

struct rtattr;
Expand Down Expand Up @@ -65,11 +64,6 @@ void skcipher_geniv_free(struct crypto_instance *inst);
int skcipher_geniv_init(struct crypto_tfm *tfm);
void skcipher_geniv_exit(struct crypto_tfm *tfm);

int __init eseqiv_module_init(void);
void __exit eseqiv_module_exit(void);
int __init chainiv_module_init(void);
void chainiv_module_exit(void);

static inline struct crypto_ablkcipher *skcipher_geniv_cipher(
struct crypto_ablkcipher *geniv)
{
Expand Down

0 comments on commit 5be5e66

Please sign in to comment.