freebsd-dev/sys/crypto
Matt Macy ff2038a9bf Generalize AES iov optimization
Right now, aesni_cipher_alloc does a bit of special-casing
for CRYPTO_F_IOV, to not do any allocation if the first uio
is large enough for the requested size. While working on ZFS
crypto port, I ran into horrible performance because the code
uses scatter-gather, and many of the times the data to encrypt
was in the second entry. This code looks through the list, and
tries to see if there is a single uio that can contain the
requested data, and, if so, uses that.

This has a slight impact on the current consumers, in that the
check is a little more complicated for the ones that use
CRYPTO_F_IOV -- but none of them meet the criteria for testing
more than one.

Submitted by:	sef at ixsystems.com
Reviewed by:	cem@
MFC after:	3 days
Sponsored by:	iX Systems
Differential Revision:	https://reviews.freebsd.org/D18522
2018-12-13 04:40:53 +00:00
..
aesni Generalize AES iov optimization 2018-12-13 04:40:53 +00:00
armv8 OpenCrypto: Convert sessions to opaque handles instead of integers 2018-07-18 00:56:25 +00:00
blake2 OpenCrypto: Convert sessions to opaque handles instead of integers 2018-07-18 00:56:25 +00:00
blowfish
camellia
ccp Reapply, with minor tweaks, r338025, from the original commit: 2018-09-26 17:12:14 +00:00
chacha20 Add explicit copyright text to trivial header 2018-10-22 01:27:11 +00:00
des Remove register keyword from sys/ and ANSIfy prototypes 2017-05-17 00:34:34 +00:00
libsodium Bring in compatibility glue for libsodium 2018-08-17 00:27:56 +00:00
rc4
rijndael rijndael (AES): Avoid leaking sensitive data on kernel stack 2018-10-26 20:53:01 +00:00
sha2 libmd: Always erase context in _Final method, and when doing 2018-07-20 07:01:28 +00:00
siphash Fix C++ includability of crypto headers with static array sizes 2016-10-18 23:20:49 +00:00
skein libmd: Always erase context in _Final method, and when doing 2018-07-20 07:01:28 +00:00
via OpenCrypto: Convert sessions to opaque handles instead of integers 2018-07-18 00:56:25 +00:00
intake.h Implement boot-time encryption key passing (keybuf) 2017-04-01 05:05:22 +00:00
sha1.c sys: further adoption of SPDX licensing ID tags. 2017-11-20 19:43:44 +00:00
sha1.h sys: further adoption of SPDX licensing ID tags. 2017-11-20 19:43:44 +00:00