Source-Changes-D archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
Re: CVS commit: src
In article <20120830170609.14DD160534%jupiter.mumble.net@localhost>,
Taylor R Campbell <campbell+netbsd-source-changes-d%mumble.net@localhost>
wrote:
> Date: Thu, 30 Aug 2012 11:44:41 -0400
> From: christos%zoulas.com@localhost (Christos Zoulas)
>
> memcmp() does not promise alphabetical sorting. It just promises to do the
> byte comparison as unsigned so that the results are consistent. It is not
> complicated to do this at all, for example:
>
> int
> consttime_memcmp(const void *s1, const void *s2, size_t n)
> {
> int rv = 0, sv = 0;
> const unsigned char *p1 = s1, *p2 = s2;
>
> do
> if (rv == 0)
> rv = *p1++ - *p2++;
>
>Data-dependent branches are totally unacceptable for a routine whose
>sole purpose is to avoid timing side channels.
>
>Are there any applications that both want memcmp semantics and need to
>avoid timing side channels?
How can you tell the difference if both branches execute code that does
exactly the same work?
christos
Home |
Main Index |
Thread Index |
Old Index