All of lore.kernel.org
 help / color / mirror / Atom feed
From: Alberto Garcia <berto@igalia.com>
To: "Daniel P. Berrangé" <berrange@redhat.com>
Cc: qemu-devel@nongnu.org
Subject: Re: [Qemu-devel] [PATCH 3/6] crypto: introduce a xts_uint128 data type
Date: Tue, 09 Oct 2018 17:14:51 +0200	[thread overview]
Message-ID: <w51efcz8844.fsf@maestria.local.igalia.com> (raw)
In-Reply-To: <20181009145839.GJ22838@redhat.com>

On Tue 09 Oct 2018 04:58:39 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.

Does it really? There's a dozen casts to uint8_t * in different
places. If you use uint_8[] you would only need something like this:

static void xts_mult_x(uint8_t *I8)
{
    xts_uint128 *I = (xts_uint128 *) I8;
    /* ... the rest of the function remains the same ... */
}

And something similar in xts_uint128_xor(), which could be an inline
function instead of a macro.

Berto

  reply	other threads:[~2018-10-09 15:15 UTC|newest]

Thread overview: 27+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-10-09 12:55 [Qemu-devel] [PATCH 0/6] crypto: improve performance of XTS cipher mode Daniel P. Berrangé
2018-10-09 12:55 ` [Qemu-devel] [PATCH 1/6] crypto: expand algorithm coverage for cipher benchmark Daniel P. Berrangé
2018-10-09 14:04   ` Marc-André Lureau
2018-10-10 11:45   ` Alberto Garcia
2018-10-09 12:55 ` [Qemu-devel] [PATCH 2/6] crypto: remove code duplication in tweak encrypt/decrypt Daniel P. Berrangé
2018-10-09 13:43   ` Alberto Garcia
2018-10-09 13:51   ` Marc-André Lureau
2018-10-09 12:55 ` [Qemu-devel] [PATCH 3/6] crypto: introduce a xts_uint128 data type Daniel P. Berrangé
2018-10-09 14:40   ` Alberto Garcia
2018-10-09 14:50   ` Alberto Garcia
2018-10-09 14:58     ` Daniel P. Berrangé
2018-10-09 15:14       ` Alberto Garcia [this message]
2018-10-09 12:55 ` [Qemu-devel] [PATCH 4/6] crypto: convert xts_tweak_encdec to use xts_uint128 type Daniel P. Berrangé
2018-10-09 15:02   ` Alberto Garcia
2018-10-09 15:06     ` Daniel P. Berrangé
2018-10-09 15:30       ` Alberto Garcia
2018-10-09 15:31         ` Daniel P. Berrangé
2018-10-11 12:16           ` Alberto Garcia
2018-10-09 12:55 ` [Qemu-devel] [PATCH 5/6] crypto: convert xts_mult_x " Daniel P. Berrangé
2018-10-09 13:52   ` Alberto Garcia
2018-10-09 13:55     ` Daniel P. Berrangé
2018-10-09 14:25       ` Alberto Garcia
2018-10-09 12:55 ` [Qemu-devel] [PATCH 6/6] crypto: annotate xts_tweak_encdec as inlineable Daniel P. Berrangé
2018-10-09 15:37   ` Alberto Garcia
2018-10-09 13:59 ` [Qemu-devel] [PATCH 0/6] crypto: improve performance of XTS cipher mode Marc-André Lureau
2018-10-09 14:13   ` Daniel P. Berrangé
2018-10-09 14:27     ` Marc-André Lureau

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=w51efcz8844.fsf@maestria.local.igalia.com \
    --to=berto@igalia.com \
    --cc=berrange@redhat.com \
    --cc=qemu-devel@nongnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.