linux/include/crypto
Eric Biggers c626910f3f crypto: ahash - remove support for nonzero alignmask
Currently, the ahash API checks the alignment of all key and result
buffers against the algorithm's declared alignmask, and for any
unaligned buffers it falls back to manually aligned temporary buffers.

This is virtually useless, however.  First, since it does not apply to
the message, its effect is much more limited than e.g. is the case for
the alignmask for "skcipher".  Second, the key and result buffers are
given as virtual addresses and cannot (in general) be DMA'ed into, so
drivers end up having to copy to/from them in software anyway.  As a
result it's easy to use memcpy() or the unaligned access helpers.

The crypto_hash_walk_*() helper functions do use the alignmask to align
the message.  But with one exception those are only used for shash
algorithms being exposed via the ahash API, not for native ahashes, and
aligning the message is not required in this case, especially now that
alignmask support has been removed from shash.  The exception is the
n2_core driver, which doesn't set an alignmask.

In any case, no ahash algorithms actually set a nonzero alignmask
anymore.  Therefore, remove support for it from ahash.  The benefit is
that all the code to handle "misaligned" buffers in the ahash API goes
away, reducing the overhead of the ahash API.

This follows the same change that was made to shash.

Signed-off-by: Eric Biggers <ebiggers@google.com>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
2023-10-27 18:04:29 +08:00
..
internal crypto: ahash - remove support for nonzero alignmask 2023-10-27 18:04:29 +08:00
acompress.h crypto: acomp - Count error stats differently 2023-03-14 17:06:42 +08:00
aead.h crypto: aead - Add crypto_has_aead 2023-09-20 13:15:29 +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: akcipher - fix kernel-doc typos 2023-10-05 18:16:31 +08:00
algapi.h crypto: shash - remove crypto_shash_ctx_aligned() 2023-10-27 18:04:28 +08:00
arc4.h crypto: arc4 - refactor arc4 core code into separate library 2019-06-20 14:18:33 +08:00
aria.h crypto: Prepare to move crypto_tfm_ctx 2022-12-02 18:12:40 +08:00
authenc.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152 2019-05-30 11:26:32 -07:00
b128ops.h cyrpto/b128ops: Remove struct u128 2023-06-05 09:36:35 +02:00
blake2b.h crypto: api - Replace kernel.h with the necessary inclusions 2021-12-17 16:59:48 +11:00
blake2s.h lib/crypto: blake2s: move hmac construction into wireguard 2022-01-18 13:03:55 +01: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: early initialization of ChaCha constants 2022-01-07 00:25:25 +01:00
cryptd.h crypto: api - Replace kernel.h with the necessary inclusions 2021-12-17 16:59:48 +11: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 crypto: dh - split out deserialization code from crypto_dh_decode() 2022-03-03 10:47:50 +12:00
drbg.h crypto: drbg - reseed 'nopr' drbgs periodically from get_random_bytes() 2021-11-26 16:16:50 +11: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: engine - Make crypto_engine_exit() return void 2023-10-01 16:28:15 +08:00
gcm.h crypto: lib/aesgcm - Provide minimal library implementation 2022-11-11 18:14:59 +08: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: shash - remove crypto_shash_alignmask 2023-10-27 18:04:25 +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 sock: Remove ->sendpage*() in favour of sendmsg(MSG_SPLICE_PAGES) 2023-06-24 15:50:13 -07:00
kdf_sp800108.h crypto: kdf - add SP800-108 counter key derivation function 2021-11-26 16:25:17 +11:00
kpp.h crypto: kpp - Count error stats differently 2023-03-14 17:06:42 +08: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 crypto: api - Replace kernel.h with the necessary inclusions 2021-12-17 16:59:48 +11: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
polyval.h crypto: x86/polyval - Add PCLMULQDQ accelerated implementation of POLYVAL 2022-06-10 16:40:17 +08:00
public_key.h KEYS: DigitalSignature link restriction 2023-08-17 20:12:20 +00:00
rng.h crypto: rng - Count error stats differently 2023-03-14 17:06:42 +08:00
scatterwalk.h crypto: scatterwalk - use kmap_local() not kmap_atomic() 2022-12-30 22:56:27 +08: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: lib/sha256 - Remove redundant and unused sha224_update 2023-05-19 16:45:43 +08:00
sha3.h crypto: sha3-generic - export init/update/final routines 2018-01-26 01:10:34 +11:00
sha256_base.h crypto: lib/sha256 - Use generic code from sha256_base 2023-05-19 16:45:43 +08:00
sha512_base.h crypto: sha - split sha.h into sha1.h and sha2.h 2020-11-20 14:45:33 +11:00
sig.h crypto: sig - fix kernel-doc typo 2023-10-05 18:16:31 +08:00
skcipher.h crypto: skcipher - Remove obsolete skcipher_alg helpers 2023-10-13 18:27:27 +08:00
sm2.h crypto: sm2 - Provide sm2_compute_z_digest when sm2 is disabled 2023-06-26 16:14:01 +08:00
sm3_base.h crypto: hash - Use memzero_explicit() for clearing state 2020-10-30 17:35:03 +11:00
sm3.h crypto: sm3 - make dependent on sm3 library 2022-01-28 16:51:11 +11:00
sm4.h crypto: sm4 - export sm4 constant arrays 2022-04-08 16:12:46 +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
utils.h crypto: lib/utils - Move utilities into new header 2023-03-31 17:50:09 +08:00
xts.h crypto: xts - drop xts_check_key() 2023-01-06 17:15:47 +08:00