RE: [PATCH -next] crypto: inside-secure - Fix randbuild error

From: Pascal Van Leeuwen
Date: Thu Oct 17 2019 - 12:14:58 EST


> -----Original Message-----
> From: linux-crypto-owner@xxxxxxxxxxxxxxx <linux-crypto-owner@xxxxxxxxxxxxxxx> On Behalf Of
> Pascal Van Leeuwen
> Sent: Tuesday, October 8, 2019 9:57 AM
> To: Ard Biesheuvel <ard.biesheuvel@xxxxxxxxxx>
> Cc: YueHaibing <yuehaibing@xxxxxxxxxx>; herbert@xxxxxxxxxxxxxxxxxxx; davem@xxxxxxxxxxxxx;
> pascalvanl@xxxxxxxxx; antoine.tenart@xxxxxxxxxxx; linux-crypto@xxxxxxxxxxxxxxx; linux-
> kernel@xxxxxxxxxxxxxxx
> Subject: RE: [PATCH -next] crypto: inside-secure - Fix randbuild error
>
> > -----Original Message-----
> > From: Ard Biesheuvel <ard.biesheuvel@xxxxxxxxxx>
> > Sent: Tuesday, October 8, 2019 9:35 AM
> > To: Pascal Van Leeuwen <pvanleeuwen@xxxxxxxxxxxxxx>
> > Cc: YueHaibing <yuehaibing@xxxxxxxxxx>; herbert@xxxxxxxxxxxxxxxxxxx; davem@xxxxxxxxxxxxx;
> > pascalvanl@xxxxxxxxx; antoine.tenart@xxxxxxxxxxx; linux-crypto@xxxxxxxxxxxxxxx; linux-
> > kernel@xxxxxxxxxxxxxxx
> > Subject: Re: [PATCH -next] crypto: inside-secure - Fix randbuild error
> >
> > On Tue, 8 Oct 2019 at 09:32, Pascal Van Leeuwen
> > <pvanleeuwen@xxxxxxxxxxxxxx> wrote:
> > >
> > > > -----Original Message-----
> > > > From: linux-crypto-owner@xxxxxxxxxxxxxxx <linux-crypto-owner@xxxxxxxxxxxxxxx> On Behalf
> Of
> > > > YueHaibing
> > > > Sent: Tuesday, October 8, 2019 9:15 AM
> > > > To: herbert@xxxxxxxxxxxxxxxxxxx; davem@xxxxxxxxxxxxx; pascalvanl@xxxxxxxxx;
> > > > antoine.tenart@xxxxxxxxxxx
> > > > Cc: linux-crypto@xxxxxxxxxxxxxxx; linux-kernel@xxxxxxxxxxxxxxx; YueHaibing
> > > > <yuehaibing@xxxxxxxxxx>
> > > > Subject: [PATCH -next] crypto: inside-secure - Fix randbuild error
> > > >
> > > > If CRYPTO_DEV_SAFEXCEL is y but CRYPTO_SM3 is m,
> > > > building fails:
> > > >
> > > > drivers/crypto/inside-secure/safexcel_hash.o: In function `safexcel_ahash_final':
> > > > safexcel_hash.c:(.text+0xbc0): undefined reference to `sm3_zero_message_hash'
> > > >
> > > > Select CRYPTO_SM3 to fix this.
> > > >
> > > > Reported-by: Hulk Robot <hulkci@xxxxxxxxxx>
> > > > Fixes: 0f2bc13181ce ("crypto: inside-secure - Added support for basic SM3 ahash")
> > > > Signed-off-by: YueHaibing <yuehaibing@xxxxxxxxxx>
> > > > ---
> > > > drivers/crypto/Kconfig | 1 +
> > > > 1 file changed, 1 insertion(+)
> > > >
> > > > diff --git a/drivers/crypto/Kconfig b/drivers/crypto/Kconfig
> > > > index 3e51bae..5af17db 100644
> > > > --- a/drivers/crypto/Kconfig
> > > > +++ b/drivers/crypto/Kconfig
> > > > @@ -751,6 +751,7 @@ config CRYPTO_DEV_SAFEXCEL
> > > > select CRYPTO_SHA512
> > > > select CRYPTO_CHACHA20POLY1305
> > > > select CRYPTO_SHA3
> > > > + select CRYPTO_SM3
> > > > help
> > > > This driver interfaces with the SafeXcel EIP-97 and EIP-197 cryptographic
> > > > engines designed by Inside Secure. It currently accelerates DES, 3DES and
> > > > --
> > > > 2.7.4
> > > >
> > > But ... I don't really want to build SM3 into the kernel for all Inside
> > > Secure drivers, since in the majority of cases, the HW will not actually
> > > support SM3 and I don't want to bloat the kernel image in that case.
> > >
> > > So maybe it's better to #ifdef out the failing part of the driver if
> > > CONFIG_SM3 is not set?
> > >
> >
> > Since you are only using the zero length message hash, can we just
> > copy that into your driver instead?
> If that is really the case - don't have time to look into that right now -
> then I would be fine with that too. If no one objects, then I will make a
> patch for that when I can find some time to do so (~early next week).
>
> Regards,
> Pascal van Leeuwen
> Silicon IP Architect, Multi-Protocol Engines @ Verimatrix
> www.insidesecure.com

Actually, I just looked into this and:

1)The driver already takes a local version if IS_ENABLED(CONFIG_CRYPTO_SM3)
is false. I'm not sure what happens there is the module is configured to
be a loadable module though.
2)I cannot reproduce the build error when I set CONFIG_CRYPTO_SM3 to "m".

But I think I'll just spin a patch that *always* takes the local version
independent of the CONFIG switch. That should always work.

Regards,
Pascal van Leeuwen
Silicon IP Architect, Multi-Protocol Engines @ Verimatrix
www.insidesecure.com