diff options
Diffstat (limited to 'crypto/algapi.c')
-rw-r--r-- | crypto/algapi.c | 23 |
1 files changed, 20 insertions, 3 deletions
diff --git a/crypto/algapi.c b/crypto/algapi.c index d9559609b525..d891f56f0e8c 100644 --- a/crypto/algapi.c +++ b/crypto/algapi.c | |||
@@ -470,9 +470,8 @@ int crypto_check_attr_type(struct rtattr **tb, u32 type) | |||
470 | } | 470 | } |
471 | EXPORT_SYMBOL_GPL(crypto_check_attr_type); | 471 | EXPORT_SYMBOL_GPL(crypto_check_attr_type); |
472 | 472 | ||
473 | struct crypto_alg *crypto_get_attr_alg(struct rtattr **tb, u32 type, u32 mask) | 473 | struct crypto_alg *crypto_attr_alg(struct rtattr *rta, u32 type, u32 mask) |
474 | { | 474 | { |
475 | struct rtattr *rta = tb[1]; | ||
476 | struct crypto_attr_alg *alga; | 475 | struct crypto_attr_alg *alga; |
477 | 476 | ||
478 | if (!rta) | 477 | if (!rta) |
@@ -487,7 +486,25 @@ struct crypto_alg *crypto_get_attr_alg(struct rtattr **tb, u32 type, u32 mask) | |||
487 | 486 | ||
488 | return crypto_alg_mod_lookup(alga->name, type, mask); | 487 | return crypto_alg_mod_lookup(alga->name, type, mask); |
489 | } | 488 | } |
490 | EXPORT_SYMBOL_GPL(crypto_get_attr_alg); | 489 | EXPORT_SYMBOL_GPL(crypto_attr_alg); |
490 | |||
491 | int crypto_attr_u32(struct rtattr *rta, u32 *num) | ||
492 | { | ||
493 | struct crypto_attr_u32 *nu32; | ||
494 | |||
495 | if (!rta) | ||
496 | return -ENOENT; | ||
497 | if (RTA_PAYLOAD(rta) < sizeof(*nu32)) | ||
498 | return -EINVAL; | ||
499 | if (rta->rta_type != CRYPTOA_U32) | ||
500 | return -EINVAL; | ||
501 | |||
502 | nu32 = RTA_DATA(rta); | ||
503 | *num = nu32->num; | ||
504 | |||
505 | return 0; | ||
506 | } | ||
507 | EXPORT_SYMBOL_GPL(crypto_attr_u32); | ||
491 | 508 | ||
492 | struct crypto_instance *crypto_alloc_instance(const char *name, | 509 | struct crypto_instance *crypto_alloc_instance(const char *name, |
493 | struct crypto_alg *alg) | 510 | struct crypto_alg *alg) |