cem
de7a7877e1
aesni(4): Add support for x86 SHA intrinsics
...
Some x86 class CPUs have accelerated intrinsics for SHA1 and SHA256.
Provide this functionality on CPUs that support it.
This implements CRYPTO_SHA1, CRYPTO_SHA1_HMAC, and CRYPTO_SHA2_256_HMAC.
Correctness: The cryptotest.py suite in tests/sys/opencrypto has been
enhanced to verify SHA1 and SHA256 HMAC using standard NIST test vectors.
The test passes on this driver. Additionally, jhb's cryptocheck tool has
been used to compare various random inputs against OpenSSL. This test also
passes.
Rough performance averages on AMD Ryzen 1950X (4kB buffer):
aesni: SHA1: ~8300 Mb/s SHA256: ~8000 Mb/s
cryptosoft: ~1800 Mb/s SHA256: ~1800 Mb/s
So ~4.4-4.6x speedup depending on algorithm choice. This is consistent with
the results the Linux folks saw for 4kB buffers.
The driver borrows SHA update code from sys/crypto sha1 and sha256. The
intrinsic step function comes from Intel under a 3-clause BSDL.[0] The
intel_sha_extensions_sha<foo>_intrinsic.c files were renamed and lightly
modified (added const, resolved a warning or two; included the sha_sse
header to declare the functions).
[0]: https://software.intel.com/en-us/articles/intel-sha-extensions-implementations
Reviewed by: jhb
Sponsored by: Dell EMC Isilon
Differential Revision: https://reviews.freebsd.org/D12452
2017-09-26 23:12:32 +00:00
..
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-09-26 23:12:32 +00:00
2017-03-04 10:10:17 +00:00
2017-07-09 22:53:24 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-09-05 15:13:41 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-08-19 17:15:40 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-05-25 04:18:46 +00:00
2017-03-04 10:10:17 +00:00
2017-05-25 04:18:46 +00:00
2017-05-25 04:18:46 +00:00
2017-05-25 04:18:46 +00:00
2017-05-25 04:18:46 +00:00
2017-05-25 04:18:46 +00:00
2017-05-25 04:18:46 +00:00
2017-05-25 04:18:46 +00:00
2017-05-25 04:18:46 +00:00
2017-03-04 10:10:17 +00:00
2017-05-25 04:18:46 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-30 04:56:27 +00:00
2017-04-15 20:51:53 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-07-01 21:18:06 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-30 04:56:27 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-09-13 17:49:23 +00:00
2017-08-29 23:37:26 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-11 03:01:18 +00:00
2017-03-04 10:10:17 +00:00
2017-08-19 14:27:11 +00:00
2017-09-06 03:19:52 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-05-22 14:46:13 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-06-20 14:28:51 +00:00
2017-04-07 16:14:25 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-06-13 14:07:13 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-05-10 05:28:14 +00:00
2017-09-17 22:58:13 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-04-03 03:07:48 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-05-18 06:13:29 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-06-04 21:05:58 +00:00
2017-06-04 21:28:03 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-07-05 17:27:03 +00:00
2017-03-04 10:10:17 +00:00
2017-07-13 22:45:23 +00:00
2017-03-04 10:10:17 +00:00
2017-07-05 17:27:03 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-06-04 18:24:41 +00:00
2017-06-04 18:24:41 +00:00
2017-03-04 10:10:17 +00:00
2017-06-26 21:14:33 +00:00
2017-09-12 23:36:58 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-08-23 12:09:37 +00:00
2017-03-04 10:10:17 +00:00
2017-03-16 22:23:04 +00:00
2017-07-09 17:02:47 +00:00
2017-05-08 20:58:32 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-06-09 12:06:22 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-04-24 21:21:49 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-08-30 21:16:32 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-08-28 23:54:16 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-05 03:05:24 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-08-11 17:43:25 +00:00
2017-03-04 10:10:17 +00:00
2017-08-21 20:27:45 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-06-09 07:08:58 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-07-10 03:38:07 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-08-16 10:38:06 +00:00
2017-08-16 10:38:06 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-09 01:21:28 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-27 18:20:32 +00:00
2017-05-09 05:22:51 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-09-11 19:07:53 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-08-19 17:00:10 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-04-30 02:08:46 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-09-13 15:17:35 +00:00
2017-01-28 02:22:15 +00:00