qemu-devel
[Top][All Lists]
Advanced

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

Re: [Qemu-devel] [PATCH 3/6] crypto: introduce a xts_uint128 data type


From: Daniel P . Berrangé
Subject: Re: [Qemu-devel] [PATCH 3/6] crypto: introduce a xts_uint128 data type
Date: Tue, 9 Oct 2018 15:58:39 +0100
User-agent: Mutt/1.10.1 (2018-07-13)

On Tue, Oct 09, 2018 at 04:50:16PM +0200, Alberto Garcia wrote:
> On Tue 09 Oct 2018 02:55:38 PM CEST, Daniel P. Berrangé wrote:
> 
> > @@ -85,7 +90,7 @@ void xts_decrypt(const void *datactx,
> >                   uint8_t *dst,
> >                   const uint8_t *src)
> >  {
> > -    uint8_t PP[XTS_BLOCK_SIZE], CC[XTS_BLOCK_SIZE], T[XTS_BLOCK_SIZE];
> > +    xts_uint128 PP, CC, T;
> >      unsigned long i, m, mo, lim;
> 
>    [...]
> 
> >          /* Pm = first length % XTS_BLOCK_SIZE bytes of PP */
> >          for (i = 0; i < mo; i++) {
> > -            CC[i] = src[XTS_BLOCK_SIZE + i];
> > -            dst[XTS_BLOCK_SIZE + i] = PP[i];
> > +            ((uint8_t *)&CC)[i] = src[XTS_BLOCK_SIZE + i];
> > +            dst[XTS_BLOCK_SIZE + i] = ((uint8_t *)&PP)[i];
> >          }
> 
> On second thoughts, these casts are a bit cumbersome. I wonder if it
> isn't better to keep the array a uint8_t[] and only treat it as
> xts_uint128 in the places where you actually do 64-bit operations
> (xts_uint128_xor, xts_mult_x).

I had done that originally, but it just shifts ugly casts from one
place to another place in the code. I preferred the idea of storing
it all as a 128bit data type since that's matching the operational
block size.

A further alternative is for xts_uint128 to be a union providing
both, and then have an extra level of access for respective fields,
which I had also tried at one time but ultimately i decided I didn't
mind the casts.

Regards,
Daniel
-- 
|: https://berrange.com      -o-    https://www.flickr.com/photos/dberrange :|
|: https://libvirt.org         -o-            https://fstop138.berrange.com :|
|: https://entangle-photo.org    -o-    https://www.instagram.com/dberrange :|



reply via email to

[Prev in Thread] Current Thread [Next in Thread]