Re: using crypto_digest() on non-kmalloc'd memory failures

From: Oleg Makarenko
Date: Mon Oct 18 2004 - 15:23:18 EST


James Morris wrote:

On Mon, 18 Oct 2004, Matt Domsch wrote:



James, David,

Oleg noted that when we call crypto_digest() on memory allocated as a
static array in a module, rather than kmalloc(GFP_KERNEL), it returns
incorrect data, and with other functions, a kernel panic.

Thoughts as to why this may be? Oleg's test patch appended.



I don't recall the exact details, but it's related to using kmap in the core crypto code.


- James


So to calculate digest on some static data I need to copy them to kmalloc'ed memory first, right?

Can this copying be somehow avoided?

And one more question on crypto api. It looks like it is not very effective for a single byte "block" ciphers as arc4. The overhead is probably too big. Just look at the loop in cipher.c/crypt() and the code in arc4.c/arc4_crypt(). All this code is called for every single clear text byte. Right? Looks like an overkill for bsize == 1.

Is there any better way to use crypto api for arc4 or similar ciphers? Cipher block size is not always a natural choice for the crypto_yield(). Especially for fast ciphers (arc4) and small "block" sizes (arc4 again).

Or have I missed something obvious?

=oleg

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/