diff options
| author | Jussi Kivilinna <jussi.kivilinna@mbnet.fi> | 2012-07-11 07:20:15 -0400 |
|---|---|---|
| committer | Herbert Xu <herbert@gondor.apana.org.au> | 2012-08-01 05:47:25 -0400 |
| commit | 8fc229a51b0e10f4ceb794e8b99fa0a427a7ba41 (patch) | |
| tree | 1fbc95419d1e18ac21cc8fb28c6322aeddb31fe9 /crypto | |
| parent | bbc406b9d2de4182a4b2990efcd1754ae9e2c483 (diff) | |
crypto: ansi_cprng - 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.
Cc: Neil Horman <nhorman@tuxdriver.com>
Signed-off-by: Jussi Kivilinna <jussi.kivilinna@mbnet.fi>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Diffstat (limited to 'crypto')
| -rw-r--r-- | crypto/ansi_cprng.c | 63 |
1 files changed, 23 insertions, 40 deletions
diff --git a/crypto/ansi_cprng.c b/crypto/ansi_cprng.c index 6ddd99e6114b..c0bb3778f1ae 100644 --- a/crypto/ansi_cprng.c +++ b/crypto/ansi_cprng.c | |||
| @@ -382,26 +382,6 @@ static int cprng_reset(struct crypto_rng *tfm, u8 *seed, unsigned int slen) | |||
| 382 | return 0; | 382 | return 0; |
| 383 | } | 383 | } |
| 384 | 384 | ||
| 385 | static struct crypto_alg rng_alg = { | ||
| 386 | .cra_name = "stdrng", | ||
| 387 | .cra_driver_name = "ansi_cprng", | ||
| 388 | .cra_priority = 100, | ||
| 389 | .cra_flags = CRYPTO_ALG_TYPE_RNG, | ||
| 390 | .cra_ctxsize = sizeof(struct prng_context), | ||
| 391 | .cra_type = &crypto_rng_type, | ||
| 392 | .cra_module = THIS_MODULE, | ||
| 393 | .cra_list = LIST_HEAD_INIT(rng_alg.cra_list), | ||
| 394 | .cra_init = cprng_init, | ||
| 395 | .cra_exit = cprng_exit, | ||
| 396 | .cra_u = { | ||
| 397 | .rng = { | ||
| 398 | .rng_make_random = cprng_get_random, | ||
| 399 | .rng_reset = cprng_reset, | ||
| 400 | .seedsize = DEFAULT_PRNG_KSZ + 2*DEFAULT_BLK_SZ, | ||
| 401 | } | ||
| 402 | } | ||
| 403 | }; | ||
| 404 | |||
| 405 | #ifdef CONFIG_CRYPTO_FIPS | 385 | #ifdef CONFIG_CRYPTO_FIPS |
| 406 | static int fips_cprng_get_random(struct crypto_rng *tfm, u8 *rdata, | 386 | static int fips_cprng_get_random(struct crypto_rng *tfm, u8 *rdata, |
| 407 | unsigned int dlen) | 387 | unsigned int dlen) |
| @@ -438,8 +418,27 @@ static int fips_cprng_reset(struct crypto_rng *tfm, u8 *seed, unsigned int slen) | |||
| 438 | out: | 418 | out: |
| 439 | return rc; | 419 | return rc; |
| 440 | } | 420 | } |
| 421 | #endif | ||
| 441 | 422 | ||
| 442 | static struct crypto_alg fips_rng_alg = { | 423 | static struct crypto_alg rng_algs[] = { { |
| 424 | .cra_name = "stdrng", | ||
| 425 | .cra_driver_name = "ansi_cprng", | ||
| 426 | .cra_priority = 100, | ||
| 427 | .cra_flags = CRYPTO_ALG_TYPE_RNG, | ||
| 428 | .cra_ctxsize = sizeof(struct prng_context), | ||
| 429 | .cra_type = &crypto_rng_type, | ||
| 430 | .cra_module = THIS_MODULE, | ||
| 431 | .cra_init = cprng_init, | ||
| 432 | .cra_exit = cprng_exit, | ||
| 433 | .cra_u = { | ||
| 434 | .rng = { | ||
| 435 | .rng_make_random = cprng_get_random, | ||
| 436 | .rng_reset = cprng_reset, | ||
| 437 | .seedsize = DEFAULT_PRNG_KSZ + 2*DEFAULT_BLK_SZ, | ||
| 438 | } | ||
| 439 | } | ||
| 440 | #ifdef CONFIG_CRYPTO_FIPS | ||
| 441 | }, { | ||
| 443 | .cra_name = "fips(ansi_cprng)", | 442 | .cra_name = "fips(ansi_cprng)", |
| 444 | .cra_driver_name = "fips_ansi_cprng", | 443 | .cra_driver_name = "fips_ansi_cprng", |
| 445 | .cra_priority = 300, | 444 | .cra_priority = 300, |
| @@ -447,7 +446,6 @@ static struct crypto_alg fips_rng_alg = { | |||
| 447 | .cra_ctxsize = sizeof(struct prng_context), | 446 | .cra_ctxsize = sizeof(struct prng_context), |
| 448 | .cra_type = &crypto_rng_type, | 447 | .cra_type = &crypto_rng_type, |
| 449 | .cra_module = THIS_MODULE, | 448 | .cra_module = THIS_MODULE, |
| 450 | .cra_list = LIST_HEAD_INIT(rng_alg.cra_list), | ||
| 451 | .cra_init = cprng_init, | 449 | .cra_init = cprng_init, |
| 452 | .cra_exit = cprng_exit, | 450 | .cra_exit = cprng_exit, |
| 453 | .cra_u = { | 451 | .cra_u = { |
| @@ -457,33 +455,18 @@ static struct crypto_alg fips_rng_alg = { | |||
| 457 | .seedsize = DEFAULT_PRNG_KSZ + 2*DEFAULT_BLK_SZ, | 455 | .seedsize = DEFAULT_PRNG_KSZ + 2*DEFAULT_BLK_SZ, |
| 458 | } | 456 | } |
| 459 | } | 457 | } |
| 460 | }; | ||
| 461 | #endif | 458 | #endif |
| 459 | } }; | ||
| 462 | 460 | ||
| 463 | /* Module initalization */ | 461 | /* Module initalization */ |
| 464 | static int __init prng_mod_init(void) | 462 | static int __init prng_mod_init(void) |
| 465 | { | 463 | { |
| 466 | int rc = 0; | 464 | return crypto_register_algs(rng_algs, ARRAY_SIZE(rng_algs)); |
| 467 | |||
| 468 | rc = crypto_register_alg(&rng_alg); | ||
| 469 | #ifdef CONFIG_CRYPTO_FIPS | ||
| 470 | if (rc) | ||
| 471 | goto out; | ||
| 472 | |||
| 473 | rc = crypto_register_alg(&fips_rng_alg); | ||
| 474 | |||
| 475 | out: | ||
| 476 | #endif | ||
| 477 | return rc; | ||
| 478 | } | 465 | } |
| 479 | 466 | ||
| 480 | static void __exit prng_mod_fini(void) | 467 | static void __exit prng_mod_fini(void) |
| 481 | { | 468 | { |
| 482 | crypto_unregister_alg(&rng_alg); | 469 | crypto_unregister_algs(rng_algs, ARRAY_SIZE(rng_algs)); |
| 483 | #ifdef CONFIG_CRYPTO_FIPS | ||
| 484 | crypto_unregister_alg(&fips_rng_alg); | ||
| 485 | #endif | ||
| 486 | return; | ||
| 487 | } | 470 | } |
| 488 | 471 | ||
| 489 | MODULE_LICENSE("GPL"); | 472 | MODULE_LICENSE("GPL"); |
