freebsd-nq/sys/opencrypto
John Baldwin 26d292d3e2 Various optimizations to software AES-CCM and AES-GCM.
- Make use of cursors to avoid data copies for AES-CCM and AES-GCM.

  Pass pointers into the request's input and/or output buffers
  directly to the Update, encrypt, and decrypt hooks rather than
  always copying all data into a temporary block buffer on the stack.

- Move handling for partial final blocks out of the main loop.

  This removes branches from the main loop and permits using
  encrypt/decrypt_last which avoids a memset to clear the rest of the
  block on the stack.

- Shrink the on-stack buffers to assume AES block sizes and CCM/GCM
  tag lengths.

- For AAD data, pass larger chunks to axf->Update.  CCM can take each
  AAD segment in a single call.  GMAC can take multiple blocks at a
  time.

Sponsored by:	Netflix
Differential Revision:	https://reviews.freebsd.org/D25058
2020-06-12 23:10:30 +00:00
..
_cryptodev.h
cbc_mac.c Adjust crypto_apply function callbacks for OCF. 2020-06-10 21:18:19 +00:00
cbc_mac.h Adjust crypto_apply function callbacks for OCF. 2020-06-10 21:18:19 +00:00
criov.c Adjust crypto_apply function callbacks for OCF. 2020-06-10 21:18:19 +00:00
crypto.c Export the _kern_crypto sysctl node from crypto.c. 2020-05-25 22:18:33 +00:00
cryptodeflate.c Allow Kernel to link in both legacy libkern/zlib and new sys/contrib/zlib, 2019-08-01 06:35:33 +00:00
cryptodev_if.m Refactor driver and consumer interfaces for OCF (in-kernel crypto). 2020-03-27 18:25:23 +00:00
cryptodev.c Add a sysctl knob to use separate output buffers for /dev/crypto. 2020-05-25 22:21:09 +00:00
cryptodev.h Adjust crypto_apply function callbacks for OCF. 2020-06-10 21:18:19 +00:00
cryptosoft.c Various optimizations to software AES-CCM and AES-GCM. 2020-06-12 23:10:30 +00:00
deflate.h Allow Kernel to link in both legacy libkern/zlib and new sys/contrib/zlib, 2019-08-01 06:35:33 +00:00
gfmult.c
gfmult.h
gmac.c Adjust crypto_apply function callbacks for OCF. 2020-06-10 21:18:19 +00:00
gmac.h Adjust crypto_apply function callbacks for OCF. 2020-06-10 21:18:19 +00:00
ktls_ocf.c Fix a regression in r361804 for TLS 1.3. 2020-06-12 22:27:26 +00:00
rmd160.c
rmd160.h
xform_aes_icm.c Improve support for stream ciphers in the software encryption interface. 2020-05-22 16:29:09 +00:00
xform_aes_xts.c Various cleanups to the software encryption transform interface. 2020-05-20 21:21:01 +00:00
xform_auth.h Adjust crypto_apply function callbacks for OCF. 2020-06-10 21:18:19 +00:00
xform_cbc_mac.c Adjust crypto_apply function callbacks for OCF. 2020-06-10 21:18:19 +00:00
xform_cml.c Various cleanups to the software encryption transform interface. 2020-05-20 21:21:01 +00:00
xform_comp.h Various cleanups to the software encryption transform interface. 2020-05-20 21:21:01 +00:00
xform_deflate.c
xform_enc.h Improve support for stream ciphers in the software encryption interface. 2020-05-22 16:29:09 +00:00
xform_gmac.c Adjust crypto_apply function callbacks for OCF. 2020-06-10 21:18:19 +00:00
xform_null.c Adjust crypto_apply function callbacks for OCF. 2020-06-10 21:18:19 +00:00
xform_poly1305.c Adjust crypto_apply function callbacks for OCF. 2020-06-10 21:18:19 +00:00
xform_poly1305.h Adjust crypto_apply function callbacks for OCF. 2020-06-10 21:18:19 +00:00
xform_rijndael.c Various cleanups to the software encryption transform interface. 2020-05-20 21:21:01 +00:00
xform_rmd160.c Adjust crypto_apply function callbacks for OCF. 2020-06-10 21:18:19 +00:00
xform_sha1.c Adjust crypto_apply function callbacks for OCF. 2020-06-10 21:18:19 +00:00
xform_sha2.c Adjust crypto_apply function callbacks for OCF. 2020-06-10 21:18:19 +00:00
xform.c Remove MD5 HMAC from OCF. 2020-05-11 22:08:08 +00:00
xform.h Remove MD5 HMAC from OCF. 2020-05-11 22:08:08 +00:00