Date: Fri, 16 Dec 2016 00:43:52 +0100 From: "Jason A. Donenfeld" <Jason@...c4.com> To: Hannes Frederic Sowa <hannes@...essinduktion.org> Cc: David Laight <David.Laight@...lab.com>, Netdev <netdev@...r.kernel.org>, "kernel-hardening@...ts.openwall.com" <kernel-hardening@...ts.openwall.com>, Jean-Philippe Aumasson <jeanphilippe.aumasson@...il.com>, LKML <linux-kernel@...r.kernel.org>, Linux Crypto Mailing List <linux-crypto@...r.kernel.org>, "Daniel J . Bernstein" <djb@...yp.to>, Linus Torvalds <torvalds@...ux-foundation.org>, Eric Biggers <ebiggers3@...il.com> Subject: Re: [PATCH v2 1/4] siphash: add cryptographically secure hashtable function Hi Hannes, Good news. On Thu, Dec 15, 2016 at 10:45 PM, Hannes Frederic Sowa <hannes@...essinduktion.org> wrote: >> How's that sound? > > I am still very much concerned about the API. Thanks for pushing me and putting up with my daftness... the constant folding works absolutely perfectly. I've run several tests. When gcc knows that a struct is aligned (say, via __aligned(8)), then it erases the branch and makes a direct jump to the aligned code. When it's uncertain, it evaluates at runtime. So, now there is a single siphash() function that chooses the best one automatically. Behind the scene there's siphash_aligned and siphash_unaligned, but nobody needs to call these directly. (Should I rename these to have a double underscore prefix?) On platforms that have CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS, of course all of this disappears and everything goes directly to the aligned version. So, I think this assuages your concerns entirely. A single API entry point that does the right thing. Whew! Good thinking, and thanks again for the suggestion. Jason
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.