boringssl/decrepit
David Benjamin 73535ab252 Fix undefined block128_f, etc., casts.
This one is a little thorny. All the various block cipher modes
functions and callbacks take a void *key. This allows them to be used
with multiple kinds of block ciphers.

However, the implementations of those callbacks are the normal typed
functions, like AES_encrypt. Those take AES_KEY *key. While, at the ABI
level, this is perfectly fine, C considers this undefined behavior.

If we wish to preserve this genericness, we could either instantiate
multiple versions of these mode functions or create wrappers of
AES_encrypt, etc., that take void *key.

The former means more code and is tedious without C++ templates (maybe
someday...). The latter would not be difficult for a compiler to
optimize out. C mistakenly allowed comparing function pointers for
equality, which means a compiler cannot replace pointers to wrapper
functions with the real thing. (That said, the performance-sensitive
bits already act in chunks, e.g. ctr128_f, so the function call overhead
shouldn't matter.)

But our only 128-bit block cipher is AES anyway, so I just switched
things to use AES_KEY throughout. AES is doing fine, and hopefully we
would have the sense not to pair a hypothetical future block cipher with
so many modes!

Change-Id: Ied3e843f0e3042a439f09e655b29847ade9d4c7d
Reviewed-on: https://boringssl-review.googlesource.com/32107
Reviewed-by: Adam Langley <agl@google.com>
2018-10-01 17:35:02 +00:00
..
bio Flatten the decrepit target. 2018-09-05 23:39:08 +00:00
blowfish Flatten the decrepit target. 2018-09-05 23:39:08 +00:00
cast Flatten the decrepit target. 2018-09-05 23:39:08 +00:00
cfb Flatten the decrepit target. 2018-09-05 23:39:08 +00:00
des Flatten the decrepit target. 2018-09-05 23:39:08 +00:00
dh Flatten the decrepit target. 2018-09-05 23:39:08 +00:00
dsa Flatten the decrepit target. 2018-09-05 23:39:08 +00:00
evp Flatten the decrepit target. 2018-09-05 23:39:08 +00:00
obj Flatten the decrepit target. 2018-09-05 23:39:08 +00:00
rc4 Flatten the decrepit target. 2018-09-05 23:39:08 +00:00
ripemd Flatten the decrepit target. 2018-09-05 23:39:08 +00:00
rsa Flatten the decrepit target. 2018-09-05 23:39:08 +00:00
ssl Flatten the decrepit target. 2018-09-05 23:39:08 +00:00
x509 Flatten the decrepit target. 2018-09-05 23:39:08 +00:00
xts Fix undefined block128_f, etc., casts. 2018-10-01 17:35:02 +00:00
CMakeLists.txt Support symbol prefixes 2018-09-06 20:07:52 +00:00
macros.h Move OPENSSL_FALLTHROUGH to internal headers. 2018-01-29 18:17:57 +00:00