linux-stable-rt/crypto
Herbert Xu 67412f0e78 [CRYPTO] hmac: Avoid calling virt_to_page on key
When HMAC gets a key longer than the block size of the hash, it needs
to feed it as input to the hash to reduce it to a fixed length.  As
it is HMAC converts the key to a scatter and gather list.  However,
this doesn't work on certain platforms if the key is not allocated
via kmalloc.  For example, the keys from tcrypt are stored in the
rodata section and this causes it to fail with HMAC on x86-64.

This patch fixes this by copying the key to memory obtained via
kmalloc before hashing it.

Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
2008-05-07 21:08:56 +08:00
..
async_tx dmaengine: ack to flags: make use of the unused bits in the 'ack' field 2008-04-17 13:25:54 -07:00
Kconfig [CRYPTO] kconfig: Ordering cleanup 2008-04-21 10:19:34 +08:00
Makefile [CRYPTO] api: Make the crypto subsystem fully modular 2008-04-21 10:19:23 +08:00
ablkcipher.c
aead.c
aes_generic.c [CRYPTO] aes: Export generic setkey 2008-04-21 10:19:34 +08:00
algapi.c
anubis.c [CRYPTO] all: Clean up init()/fini() 2008-04-21 10:19:34 +08:00
api.c [CRYPTO] api: Make the crypto subsystem fully modular 2008-04-21 10:19:23 +08:00
arc4.c
authenc.c [CRYPTO] authenc: Fix async crypto crash in crypto_authenc_genicv() 2008-05-01 18:22:28 +08:00
blkcipher.c
blowfish.c [CRYPTO] all: Clean up init()/fini() 2008-04-21 10:19:34 +08:00
camellia.c
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
ccm.c
chainiv.c
cipher.c
compress.c
crc32c.c [CRYPTO] all: Clean up init()/fini() 2008-04-21 10:19:34 +08:00
cryptd.c [CRYPTO] cryptd: Correct kzalloc error test 2008-05-01 18:22:28 +08:00
crypto_null.c [CRYPTO] all: Clean up init()/fini() 2008-04-21 10:19:34 +08:00
cryptomgr.c
ctr.c
cts.c [CRYPTO] cts: Add CTS mode required for Kerberos AES support 2008-04-21 10:19:23 +08:00
deflate.c [CRYPTO] all: Clean up init()/fini() 2008-04-21 10:19:34 +08:00
des_generic.c [CRYPTO] all: Clean up init()/fini() 2008-04-21 10:19:34 +08:00
digest.c
ecb.c
eseqiv.c [CRYPTO] eseqiv: Fix off-by-one encryption 2008-05-01 18:22:28 +08:00
fcrypt.c [CRYPTO] all: Clean up init()/fini() 2008-04-21 10:19:34 +08:00
gcm.c
gf128mul.c
hash.c
hmac.c [CRYPTO] hmac: Avoid calling virt_to_page on key 2008-05-07 21:08:56 +08:00
internal.h
khazad.c [CRYPTO] all: Clean up init()/fini() 2008-04-21 10:19:34 +08:00
lrw.c [CRYPTO] lrw: Replace all adds to big endians variables with be*_add_cpu 2008-04-21 10:19:22 +08:00
lzo.c [CRYPTO] all: Clean up init()/fini() 2008-04-21 10:19:34 +08:00
md4.c [CRYPTO] all: Clean up init()/fini() 2008-04-21 10:19:34 +08:00
md5.c [CRYPTO] all: Clean up init()/fini() 2008-04-21 10:19:34 +08:00
michael_mic.c
pcbc.c
proc.c [CRYPTO] api: Constify function pointer tables 2008-04-21 10:19:22 +08:00
salsa20_generic.c [CRYPTO] all: Clean up init()/fini() 2008-04-21 10:19:34 +08:00
scatterwalk.c
seed.c
seqiv.c
serpent.c [CRYPTO] all: Clean up init()/fini() 2008-04-21 10:19:34 +08:00
sha1_generic.c [CRYPTO] all: Clean up init()/fini() 2008-04-21 10:19:34 +08:00
sha256_generic.c [CRYPTO] all: Clean up init()/fini() 2008-04-21 10:19:34 +08:00
sha512_generic.c [CRYPTO] all: Clean up init()/fini() 2008-04-21 10:19:34 +08:00
tcrypt.c [CRYPTO] all: Clean up init()/fini() 2008-04-21 10:19:34 +08:00
tcrypt.h [CRYPTO] cts: Add CTS mode required for Kerberos AES support 2008-04-21 10:19:23 +08:00
tea.c [CRYPTO] all: Clean up init()/fini() 2008-04-21 10:19:34 +08:00
tgr192.c [CRYPTO] all: Clean up init()/fini() 2008-04-21 10:19:34 +08:00
twofish.c [CRYPTO] all: Clean up init()/fini() 2008-04-21 10:19:34 +08:00
twofish_common.c
wp512.c [CRYPTO] all: Clean up init()/fini() 2008-04-21 10:19:34 +08:00
xcbc.c
xor.c
xts.c