Clean up CMAC implementation a little
authortb <tb@openbsd.org>
Wed, 29 Nov 2023 18:11:10 +0000 (18:11 +0000)
committertb <tb@openbsd.org>
Wed, 29 Nov 2023 18:11:10 +0000 (18:11 +0000)
commit8865b67a8cb383539ba221e9fae38acc2a8d2fe5
treeb81514b9fc1ab95a038d6ae76337a063f4c07472
parenteefb3de5799409f8689b849d8a069ad293a002c0
Clean up CMAC implementation a little

Add explanatory comments that refer to the spec so that all the weird
dances make a little more sense. It turns out that this implmeentation
only supports block ciphers with block sizes of 64 and 128 bits, so
enforce this with a check.

Simplify make_kn() to make a little more sense and make it constant
time. Some stylistic fixes like checking pointers explicitly against
NULL and shuffle things into an order that makes a bit more sense.

Includes a fix for a warning reported by Viktor Szakats in
https://github.com/libressl/portable/issues/926

ok jsing
lib/libcrypto/cmac/cmac.c