Messages in this thread | | | Date | Mon, 5 Nov 2018 21:23:14 +0300 | From | Vitaly Chikunov <> | Subject | Re: [PATCH v3 1/3] crypto: streebog - add Streebog hash function |
| |
Ard,
On Mon, Nov 05, 2018 at 02:22:21PM +0100, Ard Biesheuvel wrote: > > > +static const struct streebog_uint512 buffer512 = { { > > + cpu_to_le64(0x200ULL), > > Can we keep the memory representation in native endianness, and only > swab the in/output [where needed]?
I hope you do not insist on that?
The code is using same primitives to add/xor/permute with data from these arrays (buffer512[] and C[], those which use cpu_to_le64), and from generic data buffers. Having these arrays in native endianness will cause complexities - code split and duplications. For example, XLPS permutation will require two versions, with one accessing (y) as is and another as cpu_to_le64(y).
The code is based on canonical implementation by RFC 6986 ("GOST R 34.11-2012: Hash Function") author, and I don't want it do deviate that much from the original, which would complicate algorithm reviews.
Thanks,
| |