kernel_optimize_test/include/crypto
Ard Biesheuvel c34f3912a7 crypto: shash - avoid comparing pointers to exported functions under CFI
[ Upstream commit 22ca9f4aaf431a9413dcc115dd590123307f274f ]

crypto_shash_alg_has_setkey() is implemented by testing whether the
.setkey() member of a struct shash_alg points to the default version,
called shash_no_setkey(). As crypto_shash_alg_has_setkey() is a static
inline, this requires shash_no_setkey() to be exported to modules.

Unfortunately, when building with CFI, function pointers are routed
via CFI stubs which are private to each module (or to the kernel proper)
and so this function pointer comparison may fail spuriously.

Let's fix this by turning crypto_shash_alg_has_setkey() into an out of
line function.

Cc: Sami Tolvanen <samitolvanen@google.com>
Cc: Eric Biggers <ebiggers@kernel.org>
Signed-off-by: Ard Biesheuvel <ardb@kernel.org>
Reviewed-by: Eric Biggers <ebiggers@google.com>
Reviewed-by: Sami Tolvanen <samitolvanen@google.com>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2021-07-14 16:55:54 +02:00
..
internal crypto: shash - avoid comparing pointers to exported functions under CFI 2021-07-14 16:55:54 +02:00
acompress.h crypto: api - check for ERR pointers in crypto_destroy_tfm() 2021-05-11 14:47:16 +02:00
aead.h crypto: api - check for ERR pointers in crypto_destroy_tfm() 2021-05-11 14:47:16 +02:00
aes.h
akcipher.h crypto: api - check for ERR pointers in crypto_destroy_tfm() 2021-05-11 14:47:16 +02:00
algapi.h crypto: algapi - Remove skbuff.h inclusion 2020-08-20 14:04:28 +10:00
arc4.h
asym_tpm_subtype.h
authenc.h
b128ops.h
blake2s.h crypto: blake2s - generic C library implementation and selftest 2019-11-17 09:02:42 +08:00
blowfish.h
cast_common.h
cast5.h
cast6.h crypto: remove CRYPTO_TFM_RES_BAD_KEY_LEN 2020-01-09 11:30:53 +08:00
chacha.h random: initialize ChaCha20 constants with correct endianness 2021-05-11 14:47:19 +02:00
chacha20poly1305.h crypto: lib/chacha20poly1305 - Add missing function declaration 2020-07-16 21:49:04 +10:00
cryptd.h
ctr.h
curve25519.h crypto: curve25519 - do not pollute dispatcher based on assembler 2020-04-09 00:01:59 +09:00
des.h
dh.h
drbg.h crypto: drbg - always seeded with SP800-90B compliant noise source 2020-04-24 17:42:17 +10:00
ecdh.h
engine.h crypto: engine - support for batch requests 2020-05-08 15:30:40 +10:00
gcm.h
gf128mul.h mm, treewide: rename kzfree() to kfree_sensitive() 2020-08-07 11:33:22 -07:00
ghash.h
hash_info.h
hash.h crypto: api - check for ERR pointers in crypto_destroy_tfm() 2021-05-11 14:47:16 +02:00
hmac.h
if_alg.h crypto: af_alg - add extra parameters for DRBG interface 2020-09-25 17:48:52 +10:00
kpp.h crypto: api - check for ERR pointers in crypto_destroy_tfm() 2021-05-11 14:47:16 +02:00
md5.h
nhpoly1305.h crypto: poly1305 - add new 32 and 64-bit generic versions 2020-01-16 15:18:12 +08:00
null.h
padlock.h
pcrypt.h
pkcs7.h
poly1305.h crypto: poly1305 - fix poly1305_core_setkey() declaration 2021-05-14 09:50:13 +02:00
public_key.h X.509: Fix modular build of public_key_sm2 2020-10-08 16:39:14 +11:00
rng.h crypto: api - check for ERR pointers in crypto_destroy_tfm() 2021-05-11 14:47:16 +02:00
scatterwalk.h
serpent.h crypto: x86 - Regularize glue function prototypes 2019-12-11 16:36:54 +08:00
sha.h crypto: lib/sha256 - add sha256() function 2020-07-16 21:49:05 +10:00
sha1_base.h
sha3.h
sha256_base.h crypto: lib/sha256 - return void 2020-05-08 15:32:12 +10:00
sha512_base.h
skcipher.h crypto: api - check for ERR pointers in crypto_destroy_tfm() 2021-05-11 14:47:16 +02:00
sm2.h crypto: sm2 - introduce OSCCA SM2 asymmetric cipher algorithm 2020-09-25 17:48:54 +10:00
sm3_base.h
sm3.h crypto: sm3 - export crypto_sm3_final function 2020-09-25 17:48:53 +10:00
sm4.h
streebog.h
twofish.h crypto: remove CRYPTO_TFM_RES_BAD_KEY_LEN 2020-01-09 11:30:53 +08:00
xts.h crypto: remove CRYPTO_TFM_RES_WEAK_KEY 2020-01-09 11:30:53 +08:00