1
0
mirror of git://git.gnupg.org/gnupg.git synced 2025-01-08 12:44:23 +01:00
Jussi Kivilinna e486d4f025 g10/armor: use libgcrypt's CRC24 implementation
* g10/armor.c (CRCINIT, CRCPOLY, CRCUPDATE, crc_table): Remove.
(new_armor_context): Open libgcrypt CRC24 context.
(release_armor_context): Close CRC24 context.
(initialize): Remove CRC table generation.
(get_afx_crc): New.
(check_input, fake_packet, radix64_read, armor_filter): Update to use
CRC24 context.
* g10/filter.h (armor_filter_context_t): Replace crc intermediate value
with libgcrypt md context pointer.
--

This patch changes armor filter to use optimized CRC24 implementation
from libgcrypt to speed up encryption and decryption.

Benchmark results below, tested on Intel Core i7-4790K (turbo off).
Encrypted 2 GiB through pipe to ramfs file using AES128. Decrypt
ramfs file out through pipe to /dev/null.

before patch-set
----------------
               gpg process
armor:         user time    pipe transfer rate
 encrypt-aead:  13.8         140 MB/s
 decrypt-aead:  30.6         68 MB/s
 encrypt-cfb:   17.4         114 MB/s
 decrypt-cfb:   32.6         64 MB/s

after (decrypt+iobuf+crc opt)
-----------------------------
               gpg process
armor:         user time    pipe transfer rate
 encrypt-aead:  8.7          211 MB/s
 decrypt-aead:  17.6         116 MB/s
 encrypt-cfb:   12.6         153 MB/s
 decrypt-cfb:   19.6         105 MB/s

Signed-off-by: Jussi Kivilinna <jussi.kivilinna@iki.fi>
2018-11-08 21:31:12 +02:00
..
2018-10-25 16:20:20 +09:00
2018-10-25 16:20:20 +09:00
2018-10-24 15:56:18 -04:00
2018-11-08 12:14:23 +09:00
2018-05-29 12:42:52 +02:00
2018-10-24 15:56:18 -04:00
2017-03-07 20:25:54 +09:00
2018-01-21 16:30:53 +01:00
2017-11-22 20:54:47 +01:00
2018-10-24 15:56:18 -04:00
2017-03-07 20:25:54 +09:00
2018-10-24 15:56:18 -04:00
2018-10-24 15:56:18 -04:00
2015-02-04 09:15:34 +01:00
2018-10-24 15:56:18 -04:00
2015-02-04 09:15:34 +01:00
2018-11-08 20:52:38 +09:00
2017-03-07 20:25:54 +09:00
2017-03-07 20:25:54 +09:00
2018-10-25 16:53:05 -04:00
2018-10-24 15:56:18 -04:00
2018-10-25 16:53:05 -04:00
2018-10-24 15:56:18 -04:00
2018-10-24 15:56:18 -04:00
2017-03-07 20:25:54 +09:00
2017-03-07 20:25:54 +09:00
2018-10-24 15:56:18 -04:00
2018-10-25 16:53:05 -04:00
2018-10-24 15:56:18 -04:00
2017-03-07 20:25:54 +09:00
2017-03-07 20:25:54 +09:00
2017-03-07 20:25:54 +09:00
2017-03-07 20:25:54 +09:00
2017-01-23 19:16:55 +01:00
2018-05-29 13:01:12 +02:00
2017-02-21 13:11:46 -05:00
2017-03-07 20:32:09 +09:00
2017-03-07 20:25:54 +09:00
2018-10-24 15:56:18 -04:00
2018-10-24 15:56:18 -04:00
2018-09-14 08:11:45 +09:00
2016-03-08 14:08:49 +01:00
2018-10-24 15:56:18 -04:00
2017-03-07 20:25:54 +09:00
2016-12-06 12:16:56 +01:00
2018-10-24 15:56:18 -04:00
2018-10-24 15:56:18 -04:00