Re: [PATCH v2] Bluetooth: Remove VLA usage in aes_cmac

From: Gustavo A. R. Silva
Date: Thu Apr 05 2018 - 05:51:52 EST




On 04/05/2018 03:46 AM, Marcel Holtmann wrote:

By the way, what is you opinion on replacing crypto_shash_descsize(ctx) with PAGE_SIZE / 8 in SHASH_DESC_ON_STACK?

Does it work for you?

isnât that just waste?


Agree.

The macro itself is this.

#define SHASH_DESC_ON_STACK(shash, ctx) \
char __##shash##_desc[sizeof(struct shash_desc) + \
crypto_shash_descsize(ctx)] CRYPTO_MINALIGN_ATTR; \
struct shash_desc *shash = (struct shash_desc *)__##shash##_desc

For AES-CMAC, we could always do this with a manual macro that gives us the right size. However that is error prone if any internals change. I think what has to happened that crypto_shash_decsize becomes something the compiler can evaluate at compile time.


Yeah. That would imply an analysis of the algorithm each of the callers use. In the case of AES-CMAC, what is the maximum digest size?

I tried to find a fixed-length value for AES-CMAC but I didn't get any output with git grep -n _DIGEST_SIZE | grep AES

Thanks
--
Gustavo