linux/include/crypto
Ard Biesheuvel 22ca9f4aaf crypto: shash - avoid comparing pointers to exported functions under CFI
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>
2021-06-17 15:07:31 +08:00
..
internal crypto: shash - avoid comparing pointers to exported functions under CFI 2021-06-17 15:07:31 +08:00
acompress.h crypto: api - check for ERR pointers in crypto_destroy_tfm() 2021-03-13 00:04:01 +11:00
aead.h crypto: header - Fix spelling errors 2021-05-28 14:21:08 +08:00
aes.h crypto: aes - helper function to validate key length for AES algorithms 2019-08-09 15:11:43 +10:00
akcipher.h crypto: api - check for ERR pointers in crypto_destroy_tfm() 2021-03-13 00:04:01 +11:00
algapi.h crypto: remove cipher routines from public crypto API 2021-01-03 08:41:35 +11:00
arc4.h crypto: arc4 - refactor arc4 core code into separate library 2019-06-20 14:18:33 +08:00
asym_tpm_subtype.h KEYS: asym_tpm: extract key size & public key [ver #2] 2018-10-26 09:30:46 +01:00
authenc.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152 2019-05-30 11:26:32 -07:00
b128ops.h
blake2b.h crypto: blake2b - sync with blake2s implementation 2021-01-03 08:41:39 +11:00
blake2s.h crypto: blake2s - include <linux/bug.h> instead of <asm/bug.h> 2021-01-03 08:41:39 +11:00
blowfish.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
cast5.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
cast6.h crypto: remove CRYPTO_TFM_RES_BAD_KEY_LEN 2020-01-09 11:30:53 +08:00
cast_common.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
chacha20poly1305.h crypto: lib/chacha20poly1305 - Add missing function declaration 2020-07-16 21:49:04 +10:00
chacha.h random: initialize ChaCha20 constants with correct endianness 2021-04-02 18:28:12 +11:00
cryptd.h crypto: cryptd - remove ability to instantiate ablkciphers 2019-04-18 22:15:04 +08:00
ctr.h crypto: ctr - add helper for performing a CTR encryption walk 2019-07-26 14:56:07 +10:00
curve25519.h crypto: lib/curve25519 - Move selftest prototype into header file 2020-11-20 14:45:33 +11:00
des.h crypto: des - remove now unused __des3_ede_setkey() 2019-08-22 14:57:33 +10:00
dh.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152 2019-05-30 11:26:32 -07:00
drbg.h crypto: drbg - always seeded with SP800-90B compliant noise source 2020-04-24 17:42:17 +10:00
ecc_curve.h crypto: ecc - add curve25519 params and expose them 2021-03-13 00:04:04 +11:00
ecdh.h Merge branch 'ecc' 2021-03-26 19:55:55 +11:00
engine.h crypto: header - Fix spelling errors 2021-05-28 14:21:08 +08:00
gcm.h crypto: gcm - helper functions for assoclen/authsize check 2019-08-09 15:11:41 +10:00
gf128mul.h mm, treewide: rename kzfree() to kfree_sensitive() 2020-08-07 11:33:22 -07:00
ghash.h crypto: ghash - add comment and improve help text 2019-07-27 21:08:38 +10:00
hash_info.h crypto: sha - split sha.h into sha1.h and sha2.h 2020-11-20 14:45:33 +11:00
hash.h crypto: header - Fix spelling errors 2021-05-28 14:21:08 +08:00
hmac.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
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-03-13 00:04:01 +11:00
md5.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
nhpoly1305.h crypto: poly1305 - add new 32 and 64-bit generic versions 2020-01-16 15:18:12 +08:00
null.h crypto: null - Remove VLA usage of skcipher 2018-09-28 12:46:08 +08:00
padlock.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152 2019-05-30 11:26:32 -07:00
pcrypt.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 335 2019-06-05 17:37:06 +02:00
pkcs7.h PKCS#7: Introduce pkcs7_get_digest() 2019-08-05 18:40:19 -04:00
poly1305.h crypto: poly1305 - fix poly1305_core_setkey() declaration 2021-04-02 18:28:12 +11:00
public_key.h crypto: public_key: Remove redundant header file from public_key.h 2021-01-21 16:16:10 +00:00
rng.h crypto: api - check for ERR pointers in crypto_destroy_tfm() 2021-03-13 00:04:01 +11:00
scatterwalk.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152 2019-05-30 11:26:32 -07:00
serpent.h crypto: x86 - Regularize glue function prototypes 2019-12-11 16:36:54 +08:00
sha1_base.h crypto: sha - split sha.h into sha1.h and sha2.h 2020-11-20 14:45:33 +11:00
sha1.h crypto: sha - split sha.h into sha1.h and sha2.h 2020-11-20 14:45:33 +11:00
sha2.h crypto: sha - split sha.h into sha1.h and sha2.h 2020-11-20 14:45:33 +11:00
sha3.h crypto: sha3-generic - export init/update/final routines 2018-01-26 01:10:34 +11:00
sha256_base.h crypto: sha - split sha.h into sha1.h and sha2.h 2020-11-20 14:45:33 +11:00
sha512_base.h crypto: sha - split sha.h into sha1.h and sha2.h 2020-11-20 14:45:33 +11:00
skcipher.h crypto: api - check for ERR pointers in crypto_destroy_tfm() 2021-03-13 00:04:01 +11:00
sm2.h crypto: sm2 - introduce OSCCA SM2 asymmetric cipher algorithm 2020-09-25 17:48:54 +10:00
sm3_base.h crypto: hash - Use memzero_explicit() for clearing state 2020-10-30 17:35:03 +11:00
sm3.h crypto: sm3 - export crypto_sm3_final function 2020-09-25 17:48:53 +10:00
sm4.h crypto: sm4 - export encrypt/decrypt routines to other drivers 2018-05-05 14:52:51 +08:00
streebog.h crypto: streebog - fix unaligned memory accesses 2019-04-08 14:42:55 +08:00
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