linux/crypto
Herbert Xu 0971eb0de9 [CRYPTO] ctr: Fix multi-page processing
When the data spans across a page boundary, CTR may incorrectly process
a partial block in the middle because the blkcipher walking code may
supply partial blocks in the middle as long as the total length of the
supplied data is more than a block.  CTR is supposed to return any unused
partial block in that case to the walker.

This patch fixes this by doing exactly that, returning partial blocks to
the walker unless we received less than a block-worth of data to start
with.

This also allows us to optimise the bulk of the processing since we no
longer have to worry about partial blocks until the very end.

Thanks to Tan Swee Heng for fixes and actually testing this :)

Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
2008-01-11 08:16:24 +11:00
..
async_tx async_tx: fix dma_wait_for_async_tx 2007-09-24 10:26:26 -07:00
ablkcipher.c [CRYPTO] ablkcipher: Remove queue pointer from common alg object 2007-10-10 16:55:41 -07:00
aead.c [CRYPTO] api: Add aead crypto type 2007-10-10 16:55:39 -07:00
aes_generic.c [CRYPTO] aes-generic: Make key generation exportable 2008-01-11 08:16:09 +11:00
algapi.c [CRYPTO] api: Add crypto_inc and crypto_xor 2008-01-11 08:16:17 +11:00
anubis.c cleanup asm/scatterlist.h includes 2007-11-02 08:47:06 +01:00
api.c crypto: convert "crypto" subdirectory to UTF-8 2007-10-19 23:06:17 +02:00
arc4.c [CRYPTO] api: Get rid of flags argument to setkey 2006-09-21 11:41:02 +10:00
authenc.c [CRYPTO] ablkcipher: Add distinct ABLKCIPHER type 2008-01-11 08:16:15 +11:00
blkcipher.c [CRYPTO] ablkcipher: Add distinct ABLKCIPHER type 2008-01-11 08:16:15 +11:00
blowfish.c cleanup asm/scatterlist.h includes 2007-11-02 08:47:06 +01:00
camellia.c [CRYPTO] camellia: Move more common code into camellia_setup_tail 2008-01-11 08:16:22 +11:00
cast5.c [CRYPTO] api: Get rid of flags argument to setkey 2006-09-21 11:41:02 +10:00
cast6.c [CRYPTO] api: Get rid of flags argument to setkey 2006-09-21 11:41:02 +10:00
cbc.c [CRYPTO] cbc: Require block size to be a power of 2 2008-01-11 08:16:19 +11: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 [CRYPTO] api: Get rid of flags argument to setkey 2006-09-21 11:41:02 +10:00
cryptd.c [CRYPTO] ablkcipher: Add distinct ABLKCIPHER type 2008-01-11 08:16:15 +11:00
crypto_null.c cleanup asm/scatterlist.h includes 2007-11-02 08:47:06 +01:00
cryptomgr.c [CRYPTO] cryptomgr: Fix parsing of recursive algorithms 2007-10-10 16:55:45 -07:00
ctr.c [CRYPTO] ctr: Fix multi-page processing 2008-01-11 08:16:24 +11:00
deflate.c [CRYPTO] api: Added cra_init/cra_exit 2006-06-26 17:34:40 +10:00
des_generic.c [CRYPTO] hifn_795x: Detect weak keys 2008-01-11 08:16:03 +11:00
digest.c [CRYPTO] scatterwalk: Use generic scatterlist chaining 2008-01-11 08:16:14 +11:00
ecb.c [CRYPTO] templates: Pass type/mask when creating instances 2007-05-02 14:38:31 +10:00
fcrypt.c crypto: convert "crypto" subdirectory to UTF-8 2007-10-19 23:06:17 +02:00
gcm.c [CRYPTO] gcm: New algorithm 2008-01-11 08:16:23 +11:00
gf128mul.c [CRYPTO] xts: XTS blockcipher mode implementation without partial blocks 2007-10-10 16:55:45 -07:00
hash.c [CRYPTO] api: Add missing headers for setkey_unaligned 2007-10-10 16:55:40 -07:00
hmac.c [CRYPTO] scatterwalk: Use generic scatterlist chaining 2008-01-11 08:16:14 +11:00
internal.h [CRYPTO] api: Kill crypto_km_types 2007-10-10 16:55:44 -07:00
Kconfig [CRYPTO] gcm: New algorithm 2008-01-11 08:16:23 +11:00
khazad.c cleanup asm/scatterlist.h includes 2007-11-02 08:47:06 +01:00
lrw.c [CRYPTO] templates: Pass type/mask when creating instances 2007-05-02 14:38:31 +10:00
Makefile [CRYPTO] gcm: New algorithm 2008-01-11 08:16:23 +11:00
md4.c [CRYPTO] all: Pass tfm instead of ctx to algorithms 2006-06-26 17:34:39 +10:00
md5.c [CRYPTO] all: Pass tfm instead of ctx to algorithms 2006-06-26 17:34:39 +10:00
michael_mic.c [PATCH] Update my email address from jkmaline@cc.hut.fi to j@w1.fi 2007-04-28 11:01:01 -04:00
pcbc.c [CRYPTO] pcbc: Use crypto_xor 2008-01-11 08:16:19 +11:00
proc.c Make crypto API use seq_list_xxx helpers 2007-07-16 09:05:42 -07:00
salsa20_generic.c [CRYPTO] salsa20: Salsa20 stream cipher 2008-01-11 08:16:15 +11:00
scatterwalk.c [CRYPTO] scatterwalk: Use generic scatterlist chaining 2008-01-11 08:16:14 +11:00
scatterwalk.h [CRYPTO] scatterwalk: Use generic scatterlist chaining 2008-01-11 08:16:14 +11:00
seed.c [CRYPTO] seed: New cipher algorithm 2007-10-10 16:55:38 -07:00
serpent.c [PATCH] serpent: fix endian warnings 2006-10-10 16:15:33 -07:00
sha1_generic.c cleanup asm/scatterlist.h includes 2007-11-02 08:47:06 +01:00
sha256_generic.c [CRYPTO] sha256-generic: Extend sha256_generic.c to support SHA-224 2008-01-11 08:16:12 +11:00
sha512.c cleanup asm/scatterlist.h includes 2007-11-02 08:47:06 +01:00
tcrypt.c [CRYPTO] gcm: New algorithm 2008-01-11 08:16:23 +11:00
tcrypt.h [CRYPTO] gcm: New algorithm 2008-01-11 08:16:23 +11:00
tea.c cleanup asm/scatterlist.h includes 2007-11-02 08:47:06 +01:00
tgr192.c cleanup asm/scatterlist.h includes 2007-11-02 08:47:06 +01: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] twofish: Fix the priority 2006-09-21 11:16:28 +10:00
wp512.c cleanup asm/scatterlist.h includes 2007-11-02 08:47:06 +01:00
xcbc.c [SG] Update crypto/ to sg helpers 2007-10-22 19:40:16 +02:00
xor.c async_tx: add the async_tx api 2007-07-13 08:06:14 -07:00
xts.c [CRYPTO] xts: XTS blockcipher mode implementation without partial blocks 2007-10-10 16:55:45 -07:00