linux/include/crypto
Eric Biggers e42003dba6 lib/crypto: chacha: Use size_t length
Upgrade the ChaCha functions from 32-bit lengths to size_t.

'size_t' is the best practice for buffer lengths, and it's what the rest
of the crypto library uses.

Moreover, all the 64-bit ChaCha assembly functions actually already
treated the length as 64-bit, despite it being declared as 32-bit in C
on arm64, ppc64, and x86_64.  For arm64 and x86_64, this caused
unspecified behavior due to the high 32 bits of the corresponding
register having an unspecified value in those architectures' ABIs.
However, in practice these bits are always zero and no issue occurred.

(ppc64 was fine too, since there the ABI zero-extends 32-bit arguments.)

These issues date to the original introduction of the ChaCha code.
However, as noted above, they don't have any real-world impact
currently; so this is an API robustness improvement only.

Reported-by: Vladimir Kukharenko <vladimir@genproof.com>
Closes: https://lore.kernel.org/r/20261012-libcrypto-4gib-lengths-v1-0-ea566c129a2e@genproof.com
Tested-by: Vladimir Kukharenko <vladimir@genproof.com>
Link: https://patch.msgid.link/20261014152604.323310-3-ebiggers@kernel.org
Signed-off-by: Eric Biggers <ebiggers@kernel.org>
2026-10-15 23:16:46 -07:00
..
internal lib/crypto: poly1305: Use size_t length 2026-10-15 23:09:15 -07:00
acompress.h crypto: acomp - repair kernel-doc warnings 2026-03-07 14:12:20 +09:00
aead.h crypto: aead - Add support for on-stack AEAD req allocation 2025-10-31 17:43:56 +08:00
aes-cbc-macs.h lib/crypto: aes-cmac: Add zeroization functions 2026-08-10 20:13:41 -07:00
aes-cbc.h lib/crypto: aes: Add CBC and CBC-CTS support 2026-07-19 17:34:16 -07:00
aes-ccm.h lib/crypto: aes-ccm: Provide functions for zeroizing aes_ccm* structures 2026-09-30 09:33:54 -07:00
aes-ctr.h lib/crypto: aes: Add CTR and XCTR support 2026-07-19 17:34:16 -07:00
aes-ecb.h lib/crypto: aes: Add ECB support 2026-07-19 17:34:16 -07:00
aes-gcm.h lib/crypto: aes-gcm: Provide functions for zeroizing aes_gcm* structures 2026-09-30 09:33:54 -07:00
aes-xts.h lib/crypto: aes-xts: Provide function for zeroizing aes_xts_key 2026-09-30 09:33:54 -07:00
aes.h lib/crypto: aes: Provide functions for zeroizing aes_key and aes_enckey 2026-09-30 09:33:54 -07:00
akcipher.h crypto: akcipher - Drop sign/verify operations 2024-10-05 13:22:04 +08:00
algapi.h Revert "crypto: scatterwalk - Move skcipher walk and use it for memcpy_sglist" 2025-11-22 10:04:50 +08:00
arc4.h
aria.h
authenc.h crypto: Add 'krb5enc' hash and cipher AEAD algorithm 2025-03-02 21:39:34 +00:00
b128ops.h
blake2b.h lib/crypto: blake2: Provide functions for zeroizing blake2*_ctx structures 2026-09-30 09:33:54 -07:00
blake2s.h lib/crypto: blake2: Provide functions for zeroizing blake2*_ctx structures 2026-09-30 09:33:54 -07:00
blowfish.h
cast_common.h
cast5.h
cast6.h
chacha.h lib/crypto: chacha: Use size_t length 2026-10-15 23:16:46 -07:00
chacha20poly1305.h lib/crypto: tests: Migrate ChaCha20Poly1305 self-test to KUnit 2026-03-30 12:35:30 -07:00
cryptd.h crypto: cryptd - Remove unused functions 2026-03-27 18:52:44 +09:00
ctr.h crypto: ctr - Remove unnecessary header inclusions 2025-04-16 15:16:21 +08:00
curve25519.h lib/crypto: curve25519: Add at_least decoration to fixed-size array params 2025-11-23 12:19:47 -08:00
des.h crypto: des - fix all kernel-doc warnings 2026-03-07 14:12:20 +09:00
dh.h
ecc_curve.h crypto: ecc - Add nbits field to ecc_curve structure 2024-04-12 15:07:52 +08:00
ecdh.h crypto: ecc - Add NIST P521 curve parameters 2024-04-12 15:07:52 +08:00
engine.h crypto: engine - remove request batching support 2025-07-18 20:52:00 +10:00
gcm.h lib/crypto: aesgcm: Remove old AES-GCM library 2026-07-23 09:30:30 -07:00
gf128hash.h lib/crypto: gf128hash: Remove unused content from ghash.h 2026-03-23 16:44:30 -07:00
gf128mul.h lib/crypto: gf128mul: Remove unused 4k_lle functions 2026-03-23 16:44:30 -07:00
ghash.h lib/crypto: gf128hash: Remove unused content from ghash.h 2026-03-23 16:44:30 -07:00
hash_info.h crypto: FIPS 202 SHA-3 register in hash info for IMA 2023-10-27 18:04:30 +08:00
hash.h crypto: hash - Remove support for cloning hash tfms 2026-05-28 17:45:45 -07:00
hmac.h
if_alg.h crypto: af_alg - Replace 'bool privileged' with flags 2026-08-10 18:34:21 +10:00
kdf_sp800108.h
kpp.h crypto: remove CONFIG_CRYPTO_STATS 2024-04-02 10:49:38 +08:00
krb5.h crypto/krb5, rxrpc: Fix lack of pre-decrypt/pre-verify length checks 2026-05-20 16:36:45 -07:00
md5.h lib/crypto: md5: Provide functions for zeroizing hmac_md5 structures 2026-09-30 09:33:54 -07:00
mldsa.h lib/crypto: mldsa: Clarify the documentation for mldsa_verify() slightly 2026-02-03 19:28:51 -08:00
nh.h lib/crypto: nh: Add NH library 2026-01-12 11:07:49 -08:00
null.h crypto: null - remove the default null skcipher 2025-05-12 13:32:53 +08:00
padlock.h
pcrypt.h
pkcs7.h
poly1305.h lib/crypto: poly1305: Use size_t length 2026-10-15 23:09:15 -07:00
public_key.h pkcs7: Allow the signing algo to do whatever digestion it wants itself 2026-01-30 11:33:19 +00:00
rng.h crypto: rng - Make crypto_stdrng_get_bytes() use normal RNG in non-FIPS mode 2026-04-03 08:56:12 +08:00
scatterwalk.h Revert "crypto: scatterwalk - Move skcipher walk and use it for memcpy_sglist" 2025-11-22 10:04:50 +08:00
serpent.h
sha1.h lib/crypto: sha1: Provide functions for zeroizing hmac_sha1 structures 2026-09-30 09:33:54 -07:00
sha2.h lib/crypto: sha2: Provide functions for zeroizing SHA2 hmac_sha* structures 2026-09-30 09:42:09 -07:00
sha3.h crypto: sha3 - Reimplement using library API 2025-11-05 20:30:51 -08:00
sig.h crypto: ecdsa - Fix NIST P521 key size reported by KEYCTL_PKEY_QUERY 2025-04-16 15:16:21 +08:00
skcipher.h crypto: add missing kernel-doc for anonymous union members 2026-03-22 11:17:59 +09:00
sm3.h lib/crypto: sm3: Provide a function for zeroizing the sm3_ctx structure 2026-09-30 09:33:54 -07:00
sm4.h
streebog.h crypto: streebog - Use API partial block handling 2025-05-05 18:20:44 +08:00
twofish.h
utils.h move asm/unaligned.h to linux/unaligned.h 2024-10-02 17:23:23 -04:00
xts.h crypto: xts - Split out __xts_verify_key() helper 2026-07-19 17:34:16 -07:00