RE: Need help with failling gcm_base(ctr,ghash-generic) selftest

From: Pascal Van Leeuwen
Date: Fri Aug 02 2019 - 04:55:23 EST



> -----Original Message-----
> From: Corentin Labbe <clabbe.montjoie@xxxxxxxxx>
> Sent: Friday, August 2, 2019 7:19 AM
> To: Pascal Van Leeuwen <pvanleeuwen@xxxxxxxxxxxxxx>
> Cc: herbert@xxxxxxxxxxxxxxxxxxx; linux-crypto@xxxxxxxxxxxxxxx; linux-
> kernel@xxxxxxxxxxxxxxx
> Subject: Re: Need help with failling gcm_base(ctr,ghash-generic) selftest
>
> On Fri, Aug 02, 2019 at 12:24:04AM +0000, Pascal Van Leeuwen wrote:
> > > -----Original Message-----
> > > From: linux-crypto-owner@xxxxxxxxxxxxxxx <linux-crypto-owner@xxxxxxxxxxxxxxx> On
> Behalf Of
> > > Corentin Labbe
> > > Sent: Thursday, August 1, 2019 9:43 PM
> > > To: herbert@xxxxxxxxxxxxxxxxxxx; linux-crypto@xxxxxxxxxxxxxxx
> > > Cc: linux-kernel@xxxxxxxxxxxxxxx
> > > Subject: Need help with failling gcm_base(ctr,ghash-generic) selftest
> > >
> > > Hello
> > >
> > > I am writing the Allwinner sun8i-ce driver and when running tcrypt I got
> > > [ 30.201739] alg: aead: gcm_base(ctr-aes-sun8i-ce,ghash-generic) decryption failed
> on test
> > > vector 3; expected_error=0, actual_error=-74, cfg=\"random: may_sleep use_digest
> > > src_divs=[100.0%@+2614] dst_divs=[5.90%@alignmask+3015, 60.56%@+3996, 17.92%@+865,
> > > 15.62%@+10]\"
> > > or
> > >
> > The decryption reports only an -EBADMSG here, which means the decryption itself went
> > fine, but the authentication tag mismatched.
> >
> >
> > > [ 148.613537] alg: aead: gcm_base(ctr-aes-sun8i-ce,ghash-generic) encryption test
> failed
> > > (wrong result) on test vector 2, cfg=\"random: may_sleep use_final
> src_divs=[100.0%@+0]
> > > iv_offset=20\"
> > >
> > Can't say for sure, but considering the decrypt error, this is most likely just a
> > mismatch on the appended authentication tag.
> >
> > > Since ctr-aes-sun8i-ce is passing the ctr(aes) selftest, I dont understand what could
> be
> > > wrong.
> > >
> > That is possible, as this appears to be a problem with the authentication part,
> > not the encryption part. So possibly a problem with the way you setup the
> > authentication key (which is actually derived from the encryption key, but I don't
> > know if your hardware does this autonomously, mine doesn't) and/or operation?
> >
>
> But since my driver is just a skcipher, I dont understand why I should care about any aead
> part, right ?
>
Ah, my bad ... your aes-ctr skcipher is being wrapped by the generic gcm_base
template here, I missed that detail ... wish I could help you further, but
I can't think of anything obvious that could cause this (decrypt fails on auth
as I remarked earlier but only with a specific scatter buffer layout??).

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