Follow @Openwall on Twitter for new release announcements and other news
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date: Thu, 17 Nov 2011 09:53:27 -0600
From: "JimF" <>
To: <>
Subject: Re: hmacMD5 and sse-intrisics.c  (Bartavelle, please look at this).

From: "Simon Marechal" <>
>> If init==1 or init==0, then keep same logic.  This will keep all existing code working 100% same as it is today.
>> If init==2, then init the base vector from 'defaults'. However, write data to out in input format (64 byte interleaved buffers).
>> If init==3, then init the base vector from the out pointer, but out is in input format.  Also in this mode, we write to out, but do so in input format (64 byte interleaved buffers).
> This is probably what you intend to do, but I suppose using #define'd
> flags would clarify things a lot.

There will be some bitmask #define's that make sense, prior to anything being released.  Something like

#define SSE2i_RELOAD 0
#define SSE2i_INIT          1
#define SSE2i_OUTIN_INP_FMT 2

That way, we can do this:

ssemd5(ipad, crypt2, SSEi_INIT|SSE2i_OUTIN_INP_FMT);
ssemd5(salt, crypt2, SSEi_RELOAD|SSE2i_OUTIN_INP_FMT);
ssemd5(opad, crypt, SSEi_INIT|SSE2i_OUTIN_INP_FMT);
ssemd5(crypt2, crypt, SSEi_RELOAD|SSE2i_OUTIN_INP_FMT);

We could also come up with defines for 0, 1, 2, 3 if that makes more sense.

A lot of this is still R/D.  It may be that this method is either not adequate, or slows down other 'normal' processing, so ends up being abandoned. 


Powered by blists - more mailing lists

Confused about mailing lists and their use? Read about mailing lists on Wikipedia and check out these guidelines on proper formatting of your messages.