Skip to content

Commit 5be5e66

Browse files
committed
crypto: skcipher - Move IV generators into their own modules
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]>
1 parent 1aa4ecd commit 5be5e66

File tree

5 files changed

+18
-41
lines changed

5 files changed

+18
-41
lines changed

crypto/Makefile

+2-2
Original file line numberDiff line numberDiff line change
@@ -13,9 +13,9 @@ obj-$(CONFIG_CRYPTO_AEAD) += aead.o
1313

1414
crypto_blkcipher-objs := ablkcipher.o
1515
crypto_blkcipher-objs += blkcipher.o
16-
crypto_blkcipher-objs += chainiv.o
17-
crypto_blkcipher-objs += eseqiv.o
1816
obj-$(CONFIG_CRYPTO_BLKCIPHER) += crypto_blkcipher.o
17+
obj-$(CONFIG_CRYPTO_BLKCIPHER) += chainiv.o
18+
obj-$(CONFIG_CRYPTO_BLKCIPHER) += eseqiv.o
1919
obj-$(CONFIG_CRYPTO_SEQIV) += seqiv.o
2020

2121
crypto_hash-objs := hash.o

crypto/blkcipher.c

-29
Original file line numberDiff line numberDiff line change
@@ -696,34 +696,5 @@ void skcipher_geniv_exit(struct crypto_tfm *tfm)
696696
}
697697
EXPORT_SYMBOL_GPL(skcipher_geniv_exit);
698698

699-
static int __init blkcipher_module_init(void)
700-
{
701-
int err;
702-
703-
err = chainiv_module_init();
704-
if (err)
705-
goto out;
706-
707-
err = eseqiv_module_init();
708-
if (err)
709-
goto eseqiv_err;
710-
711-
out:
712-
return err;
713-
714-
eseqiv_err:
715-
chainiv_module_exit();
716-
goto out;
717-
}
718-
719-
static void __exit blkcipher_module_exit(void)
720-
{
721-
eseqiv_module_exit();
722-
chainiv_module_exit();
723-
}
724-
725-
module_init(blkcipher_module_init);
726-
module_exit(blkcipher_module_exit);
727-
728699
MODULE_LICENSE("GPL");
729700
MODULE_DESCRIPTION("Generic block chaining cipher type");

crypto/chainiv.c

+8-2
Original file line numberDiff line numberDiff line change
@@ -320,12 +320,18 @@ static struct crypto_template chainiv_tmpl = {
320320
.module = THIS_MODULE,
321321
};
322322

323-
int __init chainiv_module_init(void)
323+
static int __init chainiv_module_init(void)
324324
{
325325
return crypto_register_template(&chainiv_tmpl);
326326
}
327327

328-
void chainiv_module_exit(void)
328+
static void chainiv_module_exit(void)
329329
{
330330
crypto_unregister_template(&chainiv_tmpl);
331331
}
332+
333+
module_init(chainiv_module_init);
334+
module_exit(chainiv_module_exit);
335+
336+
MODULE_LICENSE("GPL");
337+
MODULE_DESCRIPTION("Chain IV Generator");

crypto/eseqiv.c

+8-2
Original file line numberDiff line numberDiff line change
@@ -248,12 +248,18 @@ static struct crypto_template eseqiv_tmpl = {
248248
.module = THIS_MODULE,
249249
};
250250

251-
int __init eseqiv_module_init(void)
251+
static int __init eseqiv_module_init(void)
252252
{
253253
return crypto_register_template(&eseqiv_tmpl);
254254
}
255255

256-
void __exit eseqiv_module_exit(void)
256+
static void __exit eseqiv_module_exit(void)
257257
{
258258
crypto_unregister_template(&eseqiv_tmpl);
259259
}
260+
261+
module_init(eseqiv_module_init);
262+
module_exit(eseqiv_module_exit);
263+
264+
MODULE_LICENSE("GPL");
265+
MODULE_DESCRIPTION("Encrypted Sequence Number IV Generator");

include/crypto/internal/skcipher.h

-6
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,6 @@
1515

1616
#include <crypto/algapi.h>
1717
#include <crypto/skcipher.h>
18-
#include <linux/init.h>
1918
#include <linux/types.h>
2019

2120
struct rtattr;
@@ -65,11 +64,6 @@ void skcipher_geniv_free(struct crypto_instance *inst);
6564
int skcipher_geniv_init(struct crypto_tfm *tfm);
6665
void skcipher_geniv_exit(struct crypto_tfm *tfm);
6766

68-
int __init eseqiv_module_init(void);
69-
void __exit eseqiv_module_exit(void);
70-
int __init chainiv_module_init(void);
71-
void chainiv_module_exit(void);
72-
7367
static inline struct crypto_ablkcipher *skcipher_geniv_cipher(
7468
struct crypto_ablkcipher *geniv)
7569
{

0 commit comments

Comments
 (0)