Provide and use crypto_ro{l,r}_u{32,64}().
authorjsing <jsing@openbsd.org>
Wed, 12 Apr 2023 04:54:15 +0000 (04:54 +0000)
committerjsing <jsing@openbsd.org>
Wed, 12 Apr 2023 04:54:15 +0000 (04:54 +0000)
commit06ec68e5faac621f3e6435a1a367a33ac3f3615b
tree0edb167a06284b66e9d1f639463574451c735dff
parente1ee69a96c9b0c60c270abd422b678721b6d4a83
Provide and use crypto_ro{l,r}_u{32,64}().

Various code in libcrypto needs bitwise rotation - rather than defining
different versions across the code base, provide a common set that can
be reused. Any sensible compiler optimises these to a single instruction
where the architecture supports it, which means we can ditch the inline
assembly.

On the chance that we need to provide a platform specific versions, this
follows the approach used in BN where a MD crypto_arch.h header could be
added in the future, which would then provide more specific versions of
these functions.

ok tb@
lib/libcrypto/crypto_internal.h
lib/libcrypto/md32_common.h
lib/libcrypto/sha/sha512.c