diff options
| -rw-r--r-- | crypto/api.c | 15 | ||||
| -rw-r--r-- | crypto/internal.h | 6 | ||||
| -rw-r--r-- | crypto/shash.c | 18 | ||||
| -rw-r--r-- | include/linux/crypto.h | 3 |
4 files changed, 16 insertions, 26 deletions
diff --git a/crypto/api.c b/crypto/api.c index 56b6e0e66311..22385cac90bb 100644 --- a/crypto/api.c +++ b/crypto/api.c | |||
| @@ -453,8 +453,8 @@ err: | |||
| 453 | } | 453 | } |
| 454 | EXPORT_SYMBOL_GPL(crypto_alloc_base); | 454 | EXPORT_SYMBOL_GPL(crypto_alloc_base); |
| 455 | 455 | ||
| 456 | struct crypto_tfm *crypto_create_tfm(struct crypto_alg *alg, | 456 | void *crypto_create_tfm(struct crypto_alg *alg, |
| 457 | const struct crypto_type *frontend) | 457 | const struct crypto_type *frontend) |
| 458 | { | 458 | { |
| 459 | char *mem; | 459 | char *mem; |
| 460 | struct crypto_tfm *tfm = NULL; | 460 | struct crypto_tfm *tfm = NULL; |
| @@ -488,9 +488,9 @@ out_free_tfm: | |||
| 488 | crypto_shoot_alg(alg); | 488 | crypto_shoot_alg(alg); |
| 489 | kfree(mem); | 489 | kfree(mem); |
| 490 | out_err: | 490 | out_err: |
| 491 | tfm = ERR_PTR(err); | 491 | mem = ERR_PTR(err); |
| 492 | out: | 492 | out: |
| 493 | return tfm; | 493 | return mem; |
| 494 | } | 494 | } |
| 495 | EXPORT_SYMBOL_GPL(crypto_create_tfm); | 495 | EXPORT_SYMBOL_GPL(crypto_create_tfm); |
| 496 | 496 | ||
| @@ -514,12 +514,11 @@ EXPORT_SYMBOL_GPL(crypto_create_tfm); | |||
| 514 | * | 514 | * |
| 515 | * In case of error the return value is an error pointer. | 515 | * In case of error the return value is an error pointer. |
| 516 | */ | 516 | */ |
| 517 | struct crypto_tfm *crypto_alloc_tfm(const char *alg_name, | 517 | void *crypto_alloc_tfm(const char *alg_name, |
| 518 | const struct crypto_type *frontend, | 518 | const struct crypto_type *frontend, u32 type, u32 mask) |
| 519 | u32 type, u32 mask) | ||
| 520 | { | 519 | { |
| 521 | struct crypto_alg *(*lookup)(const char *name, u32 type, u32 mask); | 520 | struct crypto_alg *(*lookup)(const char *name, u32 type, u32 mask); |
| 522 | struct crypto_tfm *tfm; | 521 | void *tfm; |
| 523 | int err; | 522 | int err; |
| 524 | 523 | ||
| 525 | type &= frontend->maskclear; | 524 | type &= frontend->maskclear; |
diff --git a/crypto/internal.h b/crypto/internal.h index 3c19a27a7563..fc76e1f37fc3 100644 --- a/crypto/internal.h +++ b/crypto/internal.h | |||
| @@ -109,8 +109,10 @@ void crypto_alg_tested(const char *name, int err); | |||
| 109 | void crypto_shoot_alg(struct crypto_alg *alg); | 109 | void crypto_shoot_alg(struct crypto_alg *alg); |
| 110 | struct crypto_tfm *__crypto_alloc_tfm(struct crypto_alg *alg, u32 type, | 110 | struct crypto_tfm *__crypto_alloc_tfm(struct crypto_alg *alg, u32 type, |
| 111 | u32 mask); | 111 | u32 mask); |
| 112 | struct crypto_tfm *crypto_create_tfm(struct crypto_alg *alg, | 112 | void *crypto_create_tfm(struct crypto_alg *alg, |
| 113 | const struct crypto_type *frontend); | 113 | const struct crypto_type *frontend); |
| 114 | void *crypto_alloc_tfm(const char *alg_name, | ||
| 115 | const struct crypto_type *frontend, u32 type, u32 mask); | ||
| 114 | 116 | ||
| 115 | int crypto_register_instance(struct crypto_template *tmpl, | 117 | int crypto_register_instance(struct crypto_template *tmpl, |
| 116 | struct crypto_instance *inst); | 118 | struct crypto_instance *inst); |
diff --git a/crypto/shash.c b/crypto/shash.c index 13a0dc150a4d..7a659733f94a 100644 --- a/crypto/shash.c +++ b/crypto/shash.c | |||
| @@ -18,15 +18,10 @@ | |||
| 18 | #include <linux/slab.h> | 18 | #include <linux/slab.h> |
| 19 | #include <linux/seq_file.h> | 19 | #include <linux/seq_file.h> |
| 20 | 20 | ||
| 21 | static const struct crypto_type crypto_shash_type; | ||
| 22 | |||
| 23 | static inline struct crypto_shash *__crypto_shash_cast(struct crypto_tfm *tfm) | ||
| 24 | { | ||
| 25 | return container_of(tfm, struct crypto_shash, base); | ||
| 26 | } | ||
| 27 | |||
| 28 | #include "internal.h" | 21 | #include "internal.h" |
| 29 | 22 | ||
| 23 | static const struct crypto_type crypto_shash_type; | ||
| 24 | |||
| 30 | static int shash_setkey_unaligned(struct crypto_shash *tfm, const u8 *key, | 25 | static int shash_setkey_unaligned(struct crypto_shash *tfm, const u8 *key, |
| 31 | unsigned int keylen) | 26 | unsigned int keylen) |
| 32 | { | 27 | { |
| @@ -282,8 +277,7 @@ static int crypto_init_shash_ops_async(struct crypto_tfm *tfm) | |||
| 282 | if (!crypto_mod_get(calg)) | 277 | if (!crypto_mod_get(calg)) |
| 283 | return -EAGAIN; | 278 | return -EAGAIN; |
| 284 | 279 | ||
| 285 | shash = __crypto_shash_cast(crypto_create_tfm( | 280 | shash = crypto_create_tfm(calg, &crypto_shash_type); |
| 286 | calg, &crypto_shash_type)); | ||
| 287 | if (IS_ERR(shash)) { | 281 | if (IS_ERR(shash)) { |
| 288 | crypto_mod_put(calg); | 282 | crypto_mod_put(calg); |
| 289 | return PTR_ERR(shash); | 283 | return PTR_ERR(shash); |
| @@ -391,8 +385,7 @@ static int crypto_init_shash_ops_compat(struct crypto_tfm *tfm) | |||
| 391 | if (!crypto_mod_get(calg)) | 385 | if (!crypto_mod_get(calg)) |
| 392 | return -EAGAIN; | 386 | return -EAGAIN; |
| 393 | 387 | ||
| 394 | shash = __crypto_shash_cast(crypto_create_tfm( | 388 | shash = crypto_create_tfm(calg, &crypto_shash_type); |
| 395 | calg, &crypto_shash_type)); | ||
| 396 | if (IS_ERR(shash)) { | 389 | if (IS_ERR(shash)) { |
| 397 | crypto_mod_put(calg); | 390 | crypto_mod_put(calg); |
| 398 | return PTR_ERR(shash); | 391 | return PTR_ERR(shash); |
| @@ -480,8 +473,7 @@ static const struct crypto_type crypto_shash_type = { | |||
| 480 | struct crypto_shash *crypto_alloc_shash(const char *alg_name, u32 type, | 473 | struct crypto_shash *crypto_alloc_shash(const char *alg_name, u32 type, |
| 481 | u32 mask) | 474 | u32 mask) |
| 482 | { | 475 | { |
| 483 | return __crypto_shash_cast( | 476 | return crypto_alloc_tfm(alg_name, &crypto_shash_type, type, mask); |
| 484 | crypto_alloc_tfm(alg_name, &crypto_shash_type, type, mask)); | ||
| 485 | } | 477 | } |
| 486 | EXPORT_SYMBOL_GPL(crypto_alloc_shash); | 478 | EXPORT_SYMBOL_GPL(crypto_alloc_shash); |
| 487 | 479 | ||
diff --git a/include/linux/crypto.h b/include/linux/crypto.h index 1f2e9020acc6..29729b834380 100644 --- a/include/linux/crypto.h +++ b/include/linux/crypto.h | |||
| @@ -548,9 +548,6 @@ struct crypto_attr_u32 { | |||
| 548 | * Transform user interface. | 548 | * Transform user interface. |
| 549 | */ | 549 | */ |
| 550 | 550 | ||
| 551 | struct crypto_tfm *crypto_alloc_tfm(const char *alg_name, | ||
| 552 | const struct crypto_type *frontend, | ||
| 553 | u32 type, u32 mask); | ||
| 554 | struct crypto_tfm *crypto_alloc_base(const char *alg_name, u32 type, u32 mask); | 551 | struct crypto_tfm *crypto_alloc_base(const char *alg_name, u32 type, u32 mask); |
| 555 | void crypto_destroy_tfm(void *mem, struct crypto_tfm *tfm); | 552 | void crypto_destroy_tfm(void *mem, struct crypto_tfm *tfm); |
| 556 | 553 | ||
