diff options
author | Eric Biggers <ebiggers@google.com> | 2023-10-09 22:59:43 -0700 |
---|---|---|
committer | Herbert Xu <herbert@gondor.apana.org.au> | 2023-10-20 13:39:25 +0800 |
commit | dadf5e56c967a095213f664135784bf770eb96ab (patch) | |
tree | 6aad2475b2de73c0b03902a84dc1a8bbb8d694e3 /crypto/tea.c | |
parent | 01aed663e6c421aeafc9c330bda630976b50a764 (diff) | |
download | linux-dadf5e56c967a095213f664135784bf770eb96ab.tar.gz linux-dadf5e56c967a095213f664135784bf770eb96ab.tar.bz2 linux-dadf5e56c967a095213f664135784bf770eb96ab.zip |
crypto: adiantum - add fast path for single-page messages
When the source scatterlist is a single page, optimize the first hash
step of adiantum to use crypto_shash_digest() instead of
init/update/final, and use the same local kmap for both hashing the bulk
part and loading the narrow part of the source data.
Likewise, when the destination scatterlist is a single page, optimize
the second hash step of adiantum to use crypto_shash_digest() instead of
init/update/final, and use the same local kmap for both hashing the bulk
part and storing the narrow part of the destination data.
In some cases these optimizations improve performance significantly.
Note: ideally, for optimal performance each architecture should
implement the full "adiantum(xchacha12,aes)" algorithm and fully
optimize the contiguous buffer case to use no indirect calls. That's
not something I've gotten around to doing, though. This commit just
makes a relatively small change that provides some benefit with the
existing template-based approach.
Signed-off-by: Eric Biggers <ebiggers@google.com>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Diffstat (limited to 'crypto/tea.c')
0 files changed, 0 insertions, 0 deletions