symm/square-mktab.c, etc.: Provide enough round constants for short keys.
authorMark Wooding <mdw@distorted.org.uk>
Sun, 19 Jul 2020 22:10:05 +0000 (23:10 +0100)
committerMark Wooding <mdw@distorted.org.uk>
Sun, 19 Jul 2020 22:20:32 +0000 (23:20 +0100)
commit1c54c7d261e18560a07ba9e809f4aaff0c64e647
tree68eca00398c0677f88f7ead7e4a5471d4008360f
parentbd6d65e32b835551677456bf286d09ced6859882
symm/square-mktab.c, etc.: Provide enough round constants for short keys.

It turns out that one needs 35 round constants to correctly schedule a
32-bit key, not just 32.  It further turns out that Clang orders the
various constant tables differently from GCC, which leads to the two
implementations producing different, but both incorrect, answers.

This is all very embarrassing.  Fortunately, nobody will use a 32-bit
key and expect anything useful to come of it, and no larger key size is
affected.  I think the main effect is that a bunch of the mode test
vectors needed changing.
symm/square-mktab.c
symm/square.c
symm/t/square