Demacro SHA-512.
authorjsing <jsing@openbsd.org>
Sun, 2 Jul 2023 14:57:58 +0000 (14:57 +0000)
committerjsing <jsing@openbsd.org>
Sun, 2 Jul 2023 14:57:58 +0000 (14:57 +0000)
commita255a78f2a7de5efb2cb6f70d6682157b6fb26ab
treefc6a4c9e0a1d5a0d39f3cf06462caec8fbca6893
parent2081634ceec1e4d8bc5f0917431afa358271cff7
Demacro SHA-512.

Use static inline functions instead of macros to implement SHA-512. At
the same time, make two key changes - firstly, rather than trying to
outsmart the compiler and shuffle variables around, write the algorithm
the way it is documented and actually swap the variable contents. Secondly,
instead of interleaving the message schedule update and the round, do the
full message schedule update first, then process the round.

Overall, we get safer and more readable code. Additionally, the compiler
can generate smaller and faster code (with a gain of 5-10% across a range
of architectures).

ok beck@ tb@
lib/libcrypto/sha/sha512.c