aboutsummaryrefslogtreecommitdiffstats
path: root/crypto/algapi.c
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2012-03-21 16:20:43 -0400
committerLinus Torvalds <torvalds@linux-foundation.org>2012-03-21 16:20:43 -0400
commitb8716614a7cc2fc15ea2a518edd04755fb08d922 (patch)
tree2a8a5d04066b2bd589ba2ebbeb228e2a6a178ec9 /crypto/algapi.c
parent31f6765266417c0d99f0e922fe82848a7c9c2ae9 (diff)
parent2dc9b5dbdef09840de852a4f0cc6a9c9eece7220 (diff)
Merge git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6
Pull crypto update from Herbert Xu: "* sha512 bug fixes (already in your tree). * SHA224/SHA384 AEAD support in caam. * X86-64 optimised version of Camellia. * Tegra AES support. * Bulk algorithm registration interface to make driver registration easier. * padata race fixes. * Misc fixes." * git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6: (31 commits) padata: Fix race on sequence number wrap padata: Fix race in the serialization path crypto: camellia - add assembler implementation for x86_64 crypto: camellia - rename camellia.c to camellia_generic.c crypto: camellia - fix checkpatch warnings crypto: camellia - rename camellia module to camellia_generic crypto: tcrypt - add more camellia tests crypto: testmgr - add more camellia test vectors crypto: camellia - simplify key setup and CAMELLIA_ROUNDSM macro crypto: twofish-x86_64/i586 - set alignmask to zero crypto: blowfish-x86_64 - set alignmask to zero crypto: serpent-sse2 - combine ablk_*_init functions crypto: blowfish-x86_64 - use crypto_[un]register_algs crypto: twofish-x86_64-3way - use crypto_[un]register_algs crypto: serpent-sse2 - use crypto_[un]register_algs crypto: serpent-sse2 - remove dead code from serpent_sse2_glue.c::serpent_sse2_init() crypto: twofish-x86 - Remove dead code from twofish_glue_3way.c::init() crypto: In crypto_add_alg(), 'exact' wants to be initialized to 0 crypto: caam - fix gcc 4.6 warning crypto: Add bulk algorithm registration interface ...
Diffstat (limited to 'crypto/algapi.c')
-rw-r--r--crypto/algapi.c35
1 files changed, 35 insertions, 0 deletions
diff --git a/crypto/algapi.c b/crypto/algapi.c
index 9d4a9fe913f8..056571b85445 100644
--- a/crypto/algapi.c
+++ b/crypto/algapi.c
@@ -405,6 +405,41 @@ int crypto_unregister_alg(struct crypto_alg *alg)
405} 405}
406EXPORT_SYMBOL_GPL(crypto_unregister_alg); 406EXPORT_SYMBOL_GPL(crypto_unregister_alg);
407 407
408int crypto_register_algs(struct crypto_alg *algs, int count)
409{
410 int i, ret;
411
412 for (i = 0; i < count; i++) {
413 ret = crypto_register_alg(&algs[i]);
414 if (ret)
415 goto err;
416 }
417
418 return 0;
419
420err:
421 for (--i; i >= 0; --i)
422 crypto_unregister_alg(&algs[i]);
423
424 return ret;
425}
426EXPORT_SYMBOL_GPL(crypto_register_algs);
427
428int crypto_unregister_algs(struct crypto_alg *algs, int count)
429{
430 int i, ret;
431
432 for (i = 0; i < count; i++) {
433 ret = crypto_unregister_alg(&algs[i]);
434 if (ret)
435 pr_err("Failed to unregister %s %s: %d\n",
436 algs[i].cra_driver_name, algs[i].cra_name, ret);
437 }
438
439 return 0;
440}
441EXPORT_SYMBOL_GPL(crypto_unregister_algs);
442
408int crypto_register_template(struct crypto_template *tmpl) 443int crypto_register_template(struct crypto_template *tmpl)
409{ 444{
410 struct crypto_template *q; 445 struct crypto_template *q;