linux/crypto
Herbert Xu 2bf2901669 crypto: api - Do not displace newly registered algorithms
We have a mechanism where newly registered algorithms of a higher
priority can displace existing instances that use a different
implementation of the same algorithm with a lower priority.

Unfortunately the same mechanism can cause a newly registered
algorithm to displace itself if it depends on an existing version
of the same algorithm.

This patch fixes this by keeping all algorithms that the newly
reigstered algorithm depends on, thus protecting them from being
removed.

Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
2009-08-31 15:56:54 +10:00
..
async_tx dmaengine: allow dma support for async_tx to be toggled 2009-03-25 09:13:25 -07:00
ablkcipher.c crypto: blkcipher - Do not use eseqiv on stream ciphers 2009-08-14 22:58:18 +10:00
aead.c crypto: aead - Avoid infinite loop when nivaead fails selftest 2009-02-18 21:21:24 +08:00
aes_generic.c crypto: aes - Undefined behaviour in crypto_aes_expand_key 2009-07-24 13:59:17 +08:00
ahash.c crypto: ahash - Use GFP_KERNEL on allocation if the request can sleep 2009-07-24 13:56:31 +08:00
algapi.c crypto: api - Do not displace newly registered algorithms 2009-08-31 15:56:54 +10:00
algboss.c crypto: api - Add new template create function 2009-07-07 12:30:33 +08:00
ansi_cprng.c crypto: ansi_cprng - Fix module initialization 2009-08-29 17:36:25 +10:00
anubis.c [CRYPTO] all: Clean up init()/fini() 2008-04-21 10:19:34 +08:00
api.c crypto: api - Remove frontend argument from extsize/init_tfm 2009-07-14 12:58:15 +08:00
arc4.c [CRYPTO] api: Get rid of flags argument to setkey 2006-09-21 11:41:02 +10:00
authenc.c crypto: authenc - Convert to ahash 2009-08-05 19:35:34 +10:00
blkcipher.c crypto: skcipher - Avoid infinite loop when cipher fails selftest 2009-02-18 21:20:06 +08:00
blowfish.c [CRYPTO] all: Clean up init()/fini() 2008-04-21 10:19:34 +08:00
camellia.c crypto: camellia - use kernel-provided bitops, unaligned access 2008-12-25 11:01:15 +11:00
cast5.c [CRYPTO] all: Clean up init()/fini() 2008-04-21 10:19:34 +08:00
cast6.c [CRYPTO] all: Clean up init()/fini() 2008-04-21 10:19:34 +08:00
cbc.c Convert ERR_PTR(PTR_ERR(p)) instances to ERR_CAST(p) 2008-02-07 08:42:26 -08:00
ccm.c crypto: ccm - Fix handling of null assoc data 2009-01-27 17:11:15 +11:00
chainiv.c crypto: chainiv - Use kcrypto_wq instead of keventd_wq 2009-02-19 14:44:02 +08:00
cipher.c [CRYPTO] api: Add missing headers for setkey_unaligned 2007-10-10 16:55:40 -07:00
compress.c cleanup asm/scatterlist.h includes 2007-11-02 08:47:06 +01:00
crc32c.c libcrc32c: Move implementation to crypto crc32c 2008-12-25 11:01:40 +11:00
cryptd.c crypto: cryptd - Add support to access underlaying shash 2009-08-06 15:35:20 +10:00
crypto_null.c crypto: null - Switch to shash 2008-12-25 11:02:07 +11:00
crypto_wq.c crypto: api - Use dedicated workqueue for crypto subsystem 2009-02-19 14:33:40 +08:00
ctr.c crypto: ctr - Use chainiv on raw counter mode 2009-08-13 23:10:39 +10:00
cts.c [CRYPTO] cts: Init SG tables 2008-06-02 15:46:51 +10:00
deflate.c [CRYPTO] all: Clean up init()/fini() 2008-04-21 10:19:34 +08:00
des_generic.c crypto: des3_ede - permit weak keys unless REQ_WEAK_KEY set 2008-12-25 11:02:28 +11:00
digest.c crypto: hash - Fix digest size check for digest type 2008-08-13 20:08:38 +10:00
ecb.c Convert ERR_PTR(PTR_ERR(p)) instances to ERR_CAST(p) 2008-02-07 08:42:26 -08:00
eseqiv.c crypto: eseqiv - Fix IV generation for sync algorithms 2009-04-15 20:45:03 +08:00
fcrypt.c crypto: remove uses of __constant_{endian} helpers 2008-12-25 11:02:03 +11:00
fips.c crypto: api - Add fips_enable flag 2008-08-29 15:50:02 +10:00
gcm.c crypto: gcm - Use GHASH digest algorithm 2009-08-06 15:34:26 +10:00
gf128mul.c crypto: Fix dead links 2009-03-04 14:43:52 +08:00
ghash-generic.c crypto: ghash - Add GHASH digest algorithm for GCM 2009-08-06 15:32:38 +10:00
hash.c crypto: hash - Move ahash functions into crypto/hash.h 2008-07-10 20:35:18 +08:00
hmac.c crypto: hmac - Prehash ipad/opad 2009-07-24 15:18:41 +08:00
internal.h crypto: cryptd - Switch to template create API 2009-07-14 18:45:45 +08:00
Kconfig crypto: fips - Depend on ansi_cprng 2009-08-20 17:54:16 +10:00
khazad.c [CRYPTO] all: Clean up init()/fini() 2008-04-21 10:19:34 +08:00
krng.c crypto: rng - RNG interface and implementation 2008-08-29 15:50:04 +10:00
lrw.c crypto: lrw - Fix big endian support 2009-02-17 20:00:11 +08:00
lzo.c [CRYPTO] all: Clean up init()/fini() 2008-04-21 10:19:34 +08:00
Makefile crypto: ghash - Add GHASH digest algorithm for GCM 2009-08-06 15:32:38 +10:00
md4.c crypto: md4 - Switch to shash 2008-12-25 11:02:16 +11:00
md5.c crypto: md5 - Switch to shash 2008-12-25 11:02:18 +11:00
michael_mic.c crypto: michael_mic - Switch to shash 2008-12-25 11:02:24 +11:00
pcbc.c Convert ERR_PTR(PTR_ERR(p)) instances to ERR_CAST(p) 2008-02-07 08:42:26 -08:00
pcompress.c crypto: api - Remove frontend argument from extsize/init_tfm 2009-07-14 12:58:15 +08:00
proc.c crypto: api - Call type show function before legacy for proc 2008-12-25 11:01:32 +11:00
ripemd.h [CRYPTO] ripemd: Put all common RIPEMD values in header file 2008-07-10 20:35:12 +08:00
rmd128.c crypto: rmd128 - Switch to shash 2008-12-25 11:02:09 +11:00
rmd160.c crypto: rmd160 - Switch to shash 2008-12-25 11:02:10 +11:00
rmd256.c crypto: rmd256 - Switch to shash 2008-12-25 11:02:12 +11:00
rmd320.c crypto: rmd320 - Switch to shash 2008-12-25 11:02:13 +11:00
rng.c crypto: rng - Fix typo 2009-08-13 11:53:56 +10:00
salsa20_generic.c crypto: salsa20 - Remove private wrappers around various operations 2008-12-25 11:02:30 +11:00
scatterwalk.c crypto: scatterwalk - Avoid flush_dcache_page on slab pages 2009-02-09 14:30:25 +11:00
seed.c [CRYPTO] seed: New cipher algorithm 2007-10-10 16:55:38 -07:00
seqiv.c crypto: skcipher - Use RNG interface instead of get_random_bytes 2008-08-29 15:50:06 +10:00
serpent.c [CRYPTO] all: Clean up init()/fini() 2008-04-21 10:19:34 +08:00
sha1_generic.c crypto: sha1_generic - Add export/import support 2009-07-11 18:23:33 +08:00
sha256_generic.c crypto: sha256_generic - Add export/import support 2009-07-11 18:23:34 +08:00
sha512_generic.c crypto: sha512_generic - Use 64-bit counters 2009-07-22 14:38:13 +08:00
shash.c crypto: shash - Test for the algorithms import function before exporting it 2009-07-24 13:57:13 +08:00
tcrypt.c crypto: tcrypt - Add mask parameter 2009-07-14 16:06:54 +08:00
tcrypt.h crypto: cryptomgr - Add test infrastructure 2008-08-29 15:49:55 +10:00
tea.c [CRYPTO] all: Clean up init()/fini() 2008-04-21 10:19:34 +08:00
testmgr.c crypto: testmgr - Allow implementation-specific tests 2009-07-02 16:32:12 +08:00
testmgr.h crypto: testmgr - Add ctr(aes) test vectors 2009-06-02 14:04:46 +10:00
tgr192.c crypto: tgr192 - Switch to shash 2008-12-25 11:02:21 +11:00
twofish_common.c [CRYPTO] twofish: Do not unroll big stuff in twofish key setup 2008-01-11 08:16:06 +11:00
twofish.c [CRYPTO] all: Clean up init()/fini() 2008-04-21 10:19:34 +08:00
wp512.c crypto: wp512 - Switch to shash 2008-12-25 11:02:22 +11:00
xcbc.c crypto: xcbc - Fix alignment calculation of xcbc_tfm_ctx 2009-08-20 17:58:04 +10:00
xor.c crypto: don't track xor test pages with kmemcheck 2009-06-15 12:40:10 +02:00
xts.c [CRYPTO] xts: Use proper alignment 2008-03-06 18:56:19 +08:00
zlib.c crypto: compress - Return produced bytes in crypto_{,de}compress_{update,final} 2009-06-02 14:04:56 +10:00