> Date: Mon, 23 Aug 2010 14:09:03 +0200
> From: Mike Belopuhov <[email protected]>
> 
> On Sun, Aug 22, 2010 at 19:40 +0000, Christian Weisgerber wrote:
> > Mike Belopuhov <[email protected]> wrote:
> > 
> > > This is a first diff of a series that brings support for the
> > > Galois/Counter Mode for AES in OpenBSD.
> > 
> > \o/
> > 
> > Comments below.
> > 
> 
> thanks for the feedback!
> 
> > > --- crypto/cryptosoft.c   2 Jul 2010 02:40:15 -0000       1.54
> > > +++ crypto/cryptosoft.c   20 Aug 2010 15:38:50 -0000
> > > @@ -492,6 +492,147 @@ swcr_authcompute(struct cryptop *crp, st
> > >  }
> > >  
> > >  /*
> > > + * Apply a combined encryption-authentication transformation
> > > + */
> > > +int
> > > +swcr_combined(struct cryptop *crp)
> > > +{
> > > + unsigned char iv[EALG_MAX_BLOCK_LEN], blk[EALG_MAX_BLOCK_LEN];
> > ...
> > > + /* Do any required special finalization */
> > > + switch (crda->crd_alg) {
> > > +         case CRYPTO_AES_128_GMAC:
> > > +         case CRYPTO_AES_192_GMAC:
> > > +         case CRYPTO_AES_256_GMAC:
> > > +                 /* length block */
> > > +                 bzero(blk, blksz);
> > > +                 blkp = (uint32_t *)blk + 1;
> > > +                 *blkp = htobe32(crda->crd_len * 8);
> > > +                 blkp = (uint32_t *)blk + 3;
> > > +                 *blkp = htobe32(crde->crd_len * 8);
> > > +                 axf->Update(&ctx, blk, blksz);
> > > +                 break;
> > > + }
> > 
> > panic: unaligned access
> > This is exactly the rdate/ntp.c problem again.  You can't assume
> > that a char array is int32-aligned.
> > 
> 
> true!  well, almost.  let me tell you something about GCC:
> http://gcc.gnu.org/bugzilla/show_bug.cgi?id=33594

Ah, that's a good find.  I had been looking at LOCAL_ALIGNMENT before,
but wasn't sure that was the way to go.

I'm testing the diff from that bug report now on sparc64 and an
equivalent diff on hppa.

Reply via email to