Re: crypto: crypto4xx - properly set IV after de- and encrypt breaks kernel 4.4

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Thursday, June 20, 2019 11:36:50 AM CEST Hauke Mehrtens wrote:
> Hi,
> 
> The patch "crypto: crypto4xx - properly set IV after de- and encrypt"
> causes a compile error on kernel 4.4.

3.18 as well.
> 
> When I revert this commit it compiles for me again:
> https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?id=e9a60ab1609a7d975922adad1bf9c46ac6954584
> 
> I do not have hardware to test if it is really working.

I have a few APM821XX. But please note drivers without

commit b66c685a482117d4e9ee987d252ca673689a5302
Author: Christian Lamparter <chunkeey@xxxxxxxxx>
Date:   Fri Dec 22 21:18:36 2017 +0100

    crypto: crypto4xx - support Revision B parts

don't work on those and I do have my doubts that 460EX
series (and older) would either. I also don't believe that
the inital driver as it was submitted would have worked.
>From what I've seen in their SDK, they patched the testmgr
at the time to either disable tests or provided their own...
so, might as well revert these patches for 4.4 and 3.18.

Because...
 
> drivers/crypto/amcc/crypto4xx_core.c: In function
> 'crypto4xx_ablkcipher_done':
> drivers/crypto/amcc/crypto4xx_core.c:649:21: warning: dereferencing
> 'void *' pointer
>   if (pd_uinfo->sa_va->sa_command_0.bf.save_iv == SA_SAVE_IV) {

This would probably need 
9e0a0b3a1 ("crypto: crypto4xx - pointer arithmetic overhaul") which is
a big patch.

>                      ^
> drivers/crypto/amcc/crypto4xx_core.c:649:21: error: request for member
> 'sa_command_0' in something not a structure or union
> drivers/crypto/amcc/crypto4xx_core.c:650:38: error: implicit declaration
> of function 'crypto_skcipher_reqtfm' [-Werror=implicit-function-declaration]
>    struct crypto_skcipher *skcipher = crypto_skcipher_reqtfm(req);
>                                       ^
This would require adding #include <crypto/skcipher.h> to crypto4xx_core.c

The patch that added it upstream was 
ce05ffe10457 ("crypto: crypto4xx - convert to skcipher")

But this is more than just a one-liner.

> drivers/crypto/amcc/crypto4xx_core.c:650:61: error: 'req' undeclared
> (first use in this function)
>    struct crypto_skcipher *skcipher = crypto_skcipher_reqtfm(req);
>                                                              ^
> drivers/crypto/amcc/crypto4xx_core.c:650:61: note: each undeclared
> identifier is reported only once for each function it appears in
see "#include <crypto/skcipher.h>"

> drivers/crypto/amcc/crypto4xx_core.c:652:3: error: implicit declaration
> of function 'crypto4xx_memcpy_from_le32'
> [-Werror=implicit-function-declaration]
>    crypto4xx_memcpy_from_le32((u32 *)req->iv,
>    ^

crypto4xx_memcpy_from_le32 is from
4865b122d4af ("crypto: crypto4xx - use the correct LE32 format for IV and key defs")

I think crypto4xx_memcpy_le() could work in this place.
But again I do have my doubts that the device works
without said patch.

> drivers/crypto/amcc/crypto4xx_core.c:653:19: warning: dereferencing
> 'void *' pointer
>     pd_uinfo->sr_va->save_iv,
>                    ^
> drivers/crypto/amcc/crypto4xx_core.c:653:19: error: request for member
> 'save_iv' in something not a structure or union
See "crypto: crypto4xx - pointer arithmetic overhaul".
> drivers/crypto/amcc/crypto4xx_core.c:654:4: error: implicit declaration
> of function 'crypto_skcipher_ivsize' [-Werror=implicit-function-declaration]
>     crypto_skcipher_ivsize(skcipher));
>     ^

see "#include <crypto/skcipher.h>"

(Yeaah, there seems to be a limit of what automatic cherry-picking of
patches can do :( )






[Index of Archives]     [Kernel]     [Gnu Classpath]     [Gnu Crypto]     [DM Crypt]     [Netfilter]     [Bugtraq]

  Powered by Linux