Adhemerval Zanella Netto
4c128c7823
aarch64: Add optimized chacha20
...
It adds vectorized ChaCha20 implementation based on libgcrypt
cipher/chacha20-aarch64.S. It is used as default and only
little-endian is supported (BE uses generic code).
As for generic implementation, the last step that XOR with the
input is omited. The final state register clearing is also
omitted.
On a virtualized Linux on Apple M1 it shows the following
improvements (using formatted bench-arc4random data):
GENERIC MB/s
-----------------------------------------------
arc4random [single-thread] 380.89
arc4random_buf(16) [single-thread] 500.73
arc4random_buf(32) [single-thread] 552.61
arc4random_buf(48) [single-thread] 566.82
arc4random_buf(64) [single-thread] 574.01
arc4random_buf(80) [single-thread] 581.02
arc4random_buf(96) [single-thread] 591.19
arc4random_buf(112) [single-thread] 592.29
arc4random_buf(128) [single-thread] 596.43
-----------------------------------------------
OPTIMIZED MB/s
-----------------------------------------------
arc4random [single-thread] 569.60
arc4random_buf(16) [single-thread] 825.78
arc4random_buf(32) [single-thread] 987.03
arc4random_buf(48) [single-thread] 1042.39
arc4random_buf(64) [single-thread] 1075.50
arc4random_buf(80) [single-thread] 1094.68
arc4random_buf(96) [single-thread] 1130.16
arc4random_buf(112) [single-thread] 1129.58
arc4random_buf(128) [single-thread] 1137.91
-----------------------------------------------
Checked on aarch64-linux-gnu.
2022-07-22 11:58:27 -03:00
..
2022-01-01 11:40:24 -08:00
2022-01-01 11:40:24 -08:00
2022-01-01 11:40:24 -08:00
2022-01-07 00:23:05 +01:00
2022-01-01 11:40:24 -08:00
2022-01-01 11:40:24 -08:00
2022-01-01 11:40:24 -08:00
2022-01-01 11:40:24 -08:00
2022-01-01 11:40:24 -08:00
2022-01-01 11:40:24 -08:00
2022-07-22 11:58:27 -03:00
2020-02-18 15:12:25 +01:00
2020-02-18 15:12:25 +01:00
2022-01-01 11:40:24 -08:00
2022-01-01 11:40:24 -08:00
2022-02-01 14:49:46 -03:00
2022-01-01 11:40:24 -08:00
2022-05-16 15:03:49 -03:00
2022-01-03 05:16:03 -08:00
2022-01-01 11:40:24 -08:00
2022-01-01 11:40:24 -08:00
2022-01-01 11:40:24 -08:00
2022-01-01 11:40:24 -08:00
2022-01-01 11:40:24 -08:00
2022-01-01 11:40:24 -08:00
2022-01-01 11:40:24 -08:00
2022-01-01 11:40:24 -08:00
2022-01-01 11:40:24 -08:00
2022-01-01 11:40:24 -08:00
2022-01-01 11:40:24 -08:00
2022-02-01 14:49:46 -03:00
2022-01-01 11:40:24 -08:00
2022-01-01 11:40:24 -08:00
2022-01-01 11:40:24 -08:00
2022-01-01 11:40:24 -08:00
2022-05-23 10:38:40 -05:00
2022-01-01 11:40:24 -08:00
2022-01-01 11:40:24 -08:00
2022-01-01 11:40:24 -08:00
2022-06-14 13:07:27 -07:00
2022-01-31 07:05:48 -08:00
2022-01-01 11:40:24 -08:00
2022-01-01 11:40:24 -08:00
2022-01-01 11:40:24 -08:00
2020-01-03 11:22:07 -03:00
2022-01-01 11:40:24 -08:00
2022-01-01 11:40:24 -08:00
2022-01-01 11:40:24 -08:00
2022-01-01 11:40:24 -08:00
2022-01-01 11:40:24 -08:00
2022-01-01 11:40:24 -08:00
2022-01-01 11:40:24 -08:00
2022-01-01 11:40:24 -08:00
2022-04-27 17:17:43 -05:00
2022-01-01 11:40:24 -08:00
2022-01-01 11:40:24 -08:00
2022-01-01 11:40:24 -08:00
2022-01-01 11:40:24 -08:00
2022-01-01 11:40:24 -08:00
2022-01-01 11:40:24 -08:00
2022-01-01 11:40:24 -08:00
2022-01-01 11:40:24 -08:00
2022-01-01 11:40:24 -08:00
2022-01-01 11:40:24 -08:00
2022-01-01 11:40:24 -08:00
2022-01-01 11:40:24 -08:00
2022-01-01 11:40:24 -08:00
2022-01-01 11:40:24 -08:00
2022-01-01 11:40:24 -08:00
2022-01-01 11:40:24 -08:00
2022-01-01 11:40:24 -08:00
2022-01-01 11:40:24 -08:00
2022-07-04 11:10:06 -03:00
2022-01-01 11:40:24 -08:00
2022-05-16 15:03:49 -03:00
2022-06-15 11:29:55 -07:00
2021-07-22 18:37:59 +05:30
2022-01-01 11:40:24 -08:00
2022-01-01 11:40:24 -08:00
2022-01-01 11:40:24 -08:00
2022-01-01 11:40:24 -08:00
2022-01-01 11:40:24 -08:00
2022-01-01 11:40:24 -08:00
2022-01-01 11:40:24 -08:00
2022-05-17 10:33:07 -03:00
2022-01-01 11:40:24 -08:00
2022-01-01 11:40:24 -08:00
2022-01-01 11:40:24 -08:00
2022-01-01 11:40:24 -08:00
2021-10-07 10:26:08 -07:00
2021-07-22 18:38:06 +05:30
2022-01-01 11:40:24 -08:00
2022-01-01 11:40:24 -08:00
2022-01-01 11:40:24 -08:00
2022-01-01 11:40:24 -08:00
2022-01-01 11:40:24 -08:00
2022-01-01 11:40:24 -08:00
2022-01-01 11:40:24 -08:00
2022-01-01 11:40:24 -08:00
2022-01-01 11:40:24 -08:00
2022-01-01 11:40:24 -08:00
2018-12-05 18:15:43 -02:00
2022-01-01 11:40:24 -08:00
2021-03-11 14:26:36 +00:00
2022-01-01 11:40:24 -08:00
2022-01-01 11:40:24 -08:00
2022-01-01 11:40:24 -08:00
2022-01-01 11:40:24 -08:00
2022-01-01 11:40:24 -08:00
2022-01-01 11:40:24 -08:00
2022-01-01 11:40:24 -08:00
2022-01-01 11:40:24 -08:00
2022-01-01 11:40:24 -08:00
2022-01-01 11:40:24 -08:00
2022-01-01 11:40:24 -08:00
2022-01-01 11:40:24 -08:00
2022-01-01 11:40:24 -08:00
2022-01-01 11:40:24 -08:00
2022-01-01 11:40:24 -08:00
2022-01-01 11:40:24 -08:00
2022-01-10 14:27:17 +00:00
2022-01-01 11:40:24 -08:00
2022-01-01 11:40:24 -08:00
2020-06-22 11:09:45 -03:00
2020-06-22 11:09:45 -03:00
2022-05-23 17:49:18 -03:00
2020-06-22 11:09:45 -03:00
2020-06-22 11:09:45 -03:00
2021-12-13 09:08:07 -03:00
2021-12-13 10:08:43 -03:00
2020-06-22 11:09:45 -03:00
2020-06-22 11:09:45 -03:00
2020-06-22 11:09:45 -03:00
2021-06-27 07:56:57 -07:00
2020-06-22 11:09:45 -03:00
2020-06-22 11:09:45 -03:00
2022-05-23 17:49:18 -03:00
2022-01-01 11:40:24 -08:00
2019-07-10 16:52:50 -03:00
2022-01-01 11:40:24 -08:00
2022-07-22 11:58:27 -03:00
2022-01-01 11:40:24 -08:00
2022-01-01 11:40:24 -08:00
2022-01-01 11:40:24 -08:00
2022-01-01 11:40:24 -08:00
2022-01-01 11:40:24 -08:00
2022-01-01 11:40:24 -08:00
2022-01-01 11:40:24 -08:00
2022-02-01 20:08:25 +00:00
2022-01-01 11:40:24 -08:00
2022-01-01 11:40:24 -08:00
2022-05-13 10:54:41 -03:00
2022-01-01 11:40:24 -08:00
2022-01-01 11:40:24 -08:00
2022-01-01 11:40:24 -08:00
2022-01-01 11:40:24 -08:00
2022-01-01 11:40:24 -08:00
2022-01-01 11:40:24 -08:00
2022-01-01 11:40:24 -08:00
2022-04-19 15:52:27 -07:00
2022-01-01 11:40:24 -08:00
2022-01-01 11:40:24 -08:00
2020-10-09 17:02:07 -03:00
2021-09-27 07:46:25 -07:00
2019-01-03 18:38:08 -02:00
2022-01-01 11:40:24 -08:00
2022-01-01 11:40:24 -08:00
2021-06-15 10:42:11 -03:00
2022-01-01 11:40:24 -08:00
2022-01-01 11:40:24 -08:00
2022-07-22 11:58:27 -03:00
2022-07-22 11:58:27 -03:00
2022-07-22 11:58:27 -03:00
2022-01-01 11:40:24 -08:00
2022-01-01 11:40:24 -08:00
2022-01-01 11:40:24 -08:00
2022-01-01 11:40:24 -08:00
2022-02-10 09:18:15 -03:00
2022-01-01 11:40:24 -08:00
2022-01-01 11:40:24 -08:00
2022-01-01 11:40:24 -08:00
2022-01-01 11:40:24 -08:00
2022-01-01 11:40:24 -08:00
2022-01-01 11:40:24 -08:00
2022-01-01 11:40:24 -08:00
2022-01-01 11:40:24 -08:00
2022-01-01 11:40:24 -08:00
2022-01-01 11:40:24 -08:00
2022-01-01 11:40:24 -08:00
2020-10-09 17:02:06 -03:00