Eric Biggers
74c75891bd
BACKPORT: crypto: blake2s - share the "shash" API boilerplate code
...
Add helper functions for shash implementations of BLAKE2s to
include/crypto/internal/blake2s.h, taking advantage of
__blake2s_update() and __blake2s_final() that were added by the previous
patch to share more code between the library and shash implementations.
crypto_blake2s_setkey() and crypto_blake2s_init() are usable as
shash_alg::setkey and shash_alg::init directly, while
crypto_blake2s_update() and crypto_blake2s_final() take an extra
'blake2s_compress_t' function pointer parameter. This allows the
implementation of the compression function to be overridden, which is
the only part that optimized implementations really care about.
The new functions are inline functions (similar to those in sha1_base.h,
sha256_base.h, and sm3_base.h) because this avoids needing to add a new
module blake2s_helpers.ko, they aren't *too* long, and this avoids
indirect calls which are expensive these days. Note that they can't go
in blake2s_generic.ko, as that would require selecting CRYPTO_BLAKE2S
from CRYPTO_BLAKE2S_X86, which would cause a recursive dependency.
Finally, use these new helper functions in the x86 implementation of
BLAKE2s. (This part should be a separate patch, but unfortunately the
x86 implementation used the exact same function names like
"crypto_blake2s_update()", so it had to be updated at the same time.)
Signed-off-by: Eric Biggers <ebiggers@google.com>
Acked-by: Ard Biesheuvel <ardb@kernel.org>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
(cherry picked from commit 8c4a93a1270ddffc7660ae43fa8030ecfe9c06d9)
Conflicts:
arch/x86/crypto/blake2s-glue.c
crypto/blake2s_generic.c
(conflict due to this branch not having commit 674f368a952c,
"crypto: remove CRYPTO_TFM_RES_BAD_KEY_LEN")
Bug: 152722841
Bug: 178411248
Change-Id: I9d23b1897cee81fb1704b6eea14d3dc9b1c80fe0
Signed-off-by: Eric Biggers <ebiggers@google.com>
2021-10-23 19:32:26 -07:00
..
asymmetric_keys
crypto: asym_tpm: correct zero out potential secrets
2021-01-12 20:16:17 +01:00
async_tx
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 335
2019-06-05 17:37:06 +02:00
842.c
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 157
2019-05-30 11:26:37 -07:00
ablkcipher.c
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152
2019-05-30 11:26:32 -07:00
acompress.c
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152
2019-05-30 11:26:32 -07:00
adiantum.c
crypto: shash - remove shash_desc::flags
2019-04-25 15:38:12 +08:00
aead.c
crypto: aead - Do not allow authsize=0 if auth. alg has digestsize>0
2019-08-15 21:52:14 +10:00
aegis.h
crypto: aegis128 - Fix -Wunused-const-variable warning
2019-08-30 18:05:30 +10:00
aegis128-core.c
crypto: aegis128 - Fix -Wunused-const-variable warning
2019-08-30 18:05:30 +10:00
aegis128-neon-inner.c
crypto: arm64/aegis128 - use explicit vector load for permute vectors
2019-08-30 18:05:27 +10:00
aegis128-neon.c
crypto: arm64/aegis128 - implement plain NEON version
2019-08-15 21:52:15 +10:00
aes_generic.c
crypto: aes-generic - remove unused variable 'rco_tab'
2019-08-15 21:52:14 +10:00
aes_ti.c
crypto: aes - create AES library based on the fixed time AES code
2019-07-26 14:55:33 +10:00
af_alg.c
crypto: af_alg - avoid undefined behavior accessing salg_name
2020-12-30 11:51:00 +01:00
ahash.c
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152
2019-05-30 11:26:32 -07:00
akcipher.c
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152
2019-05-30 11:26:32 -07:00
algapi.c
crypto: algapi - Avoid spurious modprobe on LOADED
2020-06-17 16:40:30 +02:00
algboss.c
crypto: algboss - don't wait during notifier callback
2020-06-24 17:50:51 +02:00
algif_aead.c
crypto: algif_aead - Do not set MAY_BACKLOG on the async path
2020-10-29 09:57:29 +01:00
algif_hash.c
crypto: af_alg - fix use-after-free in af_alg_accept() due to bh_lock_sock()
2020-07-09 09:37:52 +02:00
algif_rng.c
algif_skcipher.c
crypto: algif_skcipher - EBUSY on aio should be an error
2020-10-29 09:57:30 +01:00
ansi_cprng.c
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 42
2019-05-24 17:27:12 +02:00
anubis.c
crypto: make all generic algorithms set cra_driver_name
2019-06-13 14:31:39 +08:00
api.c
crypto: api - check for ERR pointers in crypto_destroy_tfm()
2021-05-11 14:04:05 +02:00
arc4.c
Merge branch 'linus' of git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6
2019-07-08 20:57:08 -07:00
authenc.c
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152
2019-05-30 11:26:32 -07:00
authencesn.c
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152
2019-05-30 11:26:32 -07:00
blake2b_generic.c
UPSTREAM: crypto: blake2b - Fix clang optimization for ARMv7-M
2021-10-23 19:32:25 -07:00
blake2s_generic.c
BACKPORT: crypto: blake2s - share the "shash" API boilerplate code
2021-10-23 19:32:26 -07:00
blkcipher.c
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152
2019-05-30 11:26:32 -07:00
blowfish_common.c
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152
2019-05-30 11:26:32 -07:00
blowfish_generic.c
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152
2019-05-30 11:26:32 -07:00
camellia_generic.c
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 13
2019-05-21 11:28:45 +02:00
cast5_generic.c
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 140
2019-05-30 11:25:16 -07:00
cast6_generic.c
crypto: x86 - Regularize glue function prototypes
2021-03-20 10:39:47 +01:00
cast_common.c
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 44
2019-05-24 17:27:12 +02:00
cbc.c
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152
2019-05-30 11:26:32 -07:00
ccm.c
wusb: switch to cbcmac transform
2019-06-18 08:52:34 +02:00
cfb.c
crypto: run initcalls for generic implementations earlier
2019-04-18 22:15:03 +08:00
chacha20poly1305.c
Merge branch 'linus' of git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6
2019-07-08 20:57:08 -07:00
chacha_generic.c
Merge branch 'linus' of git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6
2019-07-08 20:57:08 -07:00
cipher.c
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152
2019-05-30 11:26:32 -07:00
cmac.c
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152
2019-05-30 11:26:32 -07:00
compress.c
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152
2019-05-30 11:26:32 -07:00
crc32_generic.c
crypto: run initcalls for generic implementations earlier
2019-04-18 22:15:03 +08:00
crc32c_generic.c
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152
2019-05-30 11:26:32 -07:00
crct10dif_common.c
crct10dif_generic.c
crypto: run initcalls for generic implementations earlier
2019-04-18 22:15:03 +08:00
cryptd.c
crypto: cryptd - Use refcount_t for refcount
2019-08-15 21:52:13 +10:00
crypto_engine.c
crypto: engine - Reduce default RT priority
2019-08-09 15:11:52 +10:00
crypto_null.c
Merge branch 'linus' of git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6
2019-07-08 20:57:08 -07:00
crypto_user_base.c
crypto: user - fix memory leak in crypto_report
2019-12-13 08:43:10 +01:00
crypto_user_stat.c
crypto: user - fix memory leak in crypto_reportstat
2019-12-13 08:43:11 +01:00
ctr.c
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152
2019-05-30 11:26:32 -07:00
cts.c
crypto: run initcalls for generic implementations earlier
2019-04-18 22:15:03 +08:00
deflate.c
Merge branch 'linus' of git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6
2019-07-08 20:57:08 -07:00
des_generic.c
crypto: des - remove now unused __des3_ede_setkey()
2019-08-22 14:57:33 +10:00
dh.c
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152
2019-05-30 11:26:32 -07:00
dh_helper.c
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152
2019-05-30 11:26:32 -07:00
drbg.c
crypto: drbg - fix error return code in drbg_alloc_state()
2020-06-17 16:40:31 +02:00
ecb.c
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152
2019-05-30 11:26:32 -07:00
ecc.c
crypto: ecdh - fix big endian bug in ECC library
2019-12-13 08:43:09 +01:00
ecc.h
crypto: ecrdsa - add EC-RDSA (GOST 34.10) algorithm
2019-04-18 22:15:02 +08:00
ecc_curve_defs.h
crypto: ecc - make ecc into separate module
2019-04-18 22:15:02 +08:00
ecdh.c
crypto: ecdh - avoid buffer overflow in ecdh_set_secret()
2021-01-12 20:16:17 +01:00
ecdh_helper.c
crypto: ecdh_helper - Ensure 'len >= secret.len' in decode_key()
2021-03-04 10:26:25 +01:00
echainiv.c
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152
2019-05-30 11:26:32 -07:00
ecrdsa.c
crypto: ecrdsa - add EC-RDSA (GOST 34.10) algorithm
2019-04-18 22:15:02 +08:00
ecrdsa_defs.h
crypto: ecrdsa - add EC-RDSA (GOST 34.10) algorithm
2019-04-18 22:15:02 +08:00
ecrdsa_params.asn1
crypto: ecrdsa - add EC-RDSA (GOST 34.10) algorithm
2019-04-18 22:15:02 +08:00
ecrdsa_pub_key.asn1
crypto: ecrdsa - add EC-RDSA (GOST 34.10) algorithm
2019-04-18 22:15:02 +08:00
essiv.c
crypto: essiv - create wrapper template for ESSIV generation
2019-09-03 16:44:57 -04:00
fcrypt.c
crypto: make all generic algorithms set cra_driver_name
2019-06-13 14:31:39 +08:00
fips.c
crypto: fips - add FIPS test failure notification chain
2019-07-26 14:51:57 +10:00
gcm.c
crypto: gcm - restrict assoclen for rfc4543
2019-08-09 15:11:58 +10:00
gf128mul.c
ghash-generic.c
crypto: ghash - add comment and improve help text
2019-07-27 21:08:38 +10:00
hash_info.c
crypto: rename sm3-256 to sm3 in hash_algo_name
2020-02-28 17:22:26 +01:00
hmac.c
Merge branch 'linus' of git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6
2019-06-06 13:10:49 -07:00
internal.h
crypto: api - Fix race condition in crypto_spawn_alg
2020-02-11 04:35:31 -08:00
jitterentropy-kcapi.c
Merge git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6
2019-06-20 14:17:24 +08:00
jitterentropy.c
crypto: jitter - update implementation to 2.1.2
2019-06-06 14:38:57 +08:00
Kconfig
BACKPORT: crypto: blake2b - add blake2b generic implementation
2021-10-23 19:32:25 -07:00
keywrap.c
crypto: run initcalls for generic implementations earlier
2019-04-18 22:15:03 +08:00
khazad.c
crypto: make all generic algorithms set cra_driver_name
2019-06-13 14:31:39 +08:00
kpp.c
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152
2019-05-30 11:26:32 -07:00
lrw.c
gcc-10: avoid shadowing standard library 'free()' in crypto
2020-05-20 08:20:29 +02:00
lz4.c
Merge branch 'linus' of git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6
2019-07-08 20:57:08 -07:00
lz4hc.c
Merge branch 'linus' of git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6
2019-07-08 20:57:08 -07:00
lzo-rle.c
Merge branch 'linus' of git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6
2019-07-08 20:57:08 -07:00
lzo.c
Merge branch 'linus' of git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6
2019-07-08 20:57:08 -07:00
Makefile
BACKPORT: crypto: blake2b - add blake2b generic implementation
2021-10-23 19:32:25 -07:00
md4.c
crypto: make all generic algorithms set cra_driver_name
2019-06-13 14:31:39 +08:00
md5.c
crypto: make all generic algorithms set cra_driver_name
2019-06-13 14:31:39 +08:00
memneq.c
michael_mic.c
Merge branch 'linus' of git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6
2019-07-08 20:57:08 -07:00
nhpoly1305.c
crypto: run initcalls for generic implementations earlier
2019-04-18 22:15:03 +08:00
ofb.c
crypto: run initcalls for generic implementations earlier
2019-04-18 22:15:03 +08:00
OWNERS
ANDROID: Add OWNERS files referring to the respective android-mainline OWNERS
2021-04-01 13:45:14 +00:00
pcbc.c
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152
2019-05-30 11:26:32 -07:00
pcrypt.c
crypto: pcrypt - Do not clear MAY_SLEEP flag in original request
2020-02-11 04:35:31 -08:00
poly1305_generic.c
crypto: run initcalls for generic implementations earlier
2019-04-18 22:15:03 +08:00
proc.c
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152
2019-05-30 11:26:32 -07:00
ripemd.h
rmd128.c
Merge branch 'linus' of git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6
2019-07-08 20:57:08 -07:00
rmd160.c
Merge branch 'linus' of git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6
2019-07-08 20:57:08 -07:00
rmd256.c
Merge branch 'linus' of git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6
2019-07-08 20:57:08 -07:00
rmd320.c
Merge branch 'linus' of git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6
2019-07-08 20:57:08 -07:00
rng.c
crypto: rng - fix crypto_rng_reset() refcounting when !CRYPTO_STATS
2021-05-11 14:04:15 +02:00
rsa-pkcs1pad.c
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152
2019-05-30 11:26:32 -07:00
rsa.c
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 36
2019-05-24 17:27:11 +02:00
rsa_helper.c
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152
2019-05-30 11:26:32 -07:00
rsaprivkey.asn1
rsapubkey.asn1
salsa20_generic.c
crypto: run initcalls for generic implementations earlier
2019-04-18 22:15:03 +08:00
scatterwalk.c
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152
2019-05-30 11:26:32 -07:00
scompress.c
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152
2019-05-30 11:26:32 -07:00
seed.c
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152
2019-05-30 11:26:32 -07:00
seqiv.c
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152
2019-05-30 11:26:32 -07:00
serpent_generic.c
crypto: x86 - Regularize glue function prototypes
2021-03-20 10:39:47 +01:00
sha1_generic.c
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152
2019-05-30 11:26:32 -07:00
sha3_generic.c
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152
2019-05-30 11:26:32 -07:00
sha256_generic.c
crypto: sha256 - Merge crypto/sha256.h into crypto/sha.h
2019-09-05 14:54:54 +10:00
sha512_generic.c
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 45
2019-05-24 17:27:12 +02:00
shash.c
crypto: shash - avoid comparing pointers to exported functions under CFI
2021-07-14 16:53:13 +02:00
simd.c
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 13
2019-05-21 11:28:45 +02:00
skcipher.c
crypto: skcipher - Unmap pages after an external error
2019-09-09 17:35:27 +10:00
sm3_generic.c
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 234
2019-06-19 17:09:07 +02:00
sm4_generic.c
crypto: run initcalls for generic implementations earlier
2019-04-18 22:15:03 +08:00
streebog_generic.c
crypto: streebog - remove two unused variables
2019-08-15 21:52:14 +10:00
tcrypt.c
crypto: tcrypt - avoid signed overflow in byte count
2021-03-07 12:20:46 +01:00
tcrypt.h
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152
2019-05-30 11:26:32 -07:00
tea.c
Merge branch 'linus' of git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6
2019-07-08 20:57:08 -07:00
testmgr.c
BACKPORT: crypto: testmgr - add test vectors for blake2b
2021-10-23 19:32:25 -07:00
testmgr.h
BACKPORT: crypto: testmgr - add test vectors for blake2b
2021-10-23 19:32:25 -07:00
tgr192.c
Merge branch 'linus' of git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6
2019-07-08 20:57:08 -07:00
twofish_common.c
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 13
2019-05-21 11:28:45 +02:00
twofish_generic.c
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 13
2019-05-21 11:28:45 +02:00
vmac.c
crypto: run initcalls for generic implementations earlier
2019-04-18 22:15:03 +08:00
wp512.c
crypto: make all generic algorithms set cra_driver_name
2019-06-13 14:31:39 +08:00
xcbc.c
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 13
2019-05-21 11:28:45 +02:00
xor.c
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 47
2019-05-24 17:27:13 +02:00
xts.c
gcc-10: avoid shadowing standard library 'free()' in crypto
2020-05-20 08:20:29 +02:00
xxhash_generic.c
crypto: xxhash - Implement xxhash support
2019-06-06 14:38:57 +08:00
zstd.c
Merge branch 'linus' of git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6
2019-07-08 20:57:08 -07:00