1
0
mirror of git://git.gnupg.org/gnupg.git synced 2025-03-24 22:09:57 +01:00
Jussi Kivilinna 5d6c080522 g10/decrypt-data: use iobuf_read for higher performance
* g10/decrypt-data.c (fill_buffer): Use iobuf_read instead of iobuf_get
for reading data.
--

This patch reduces iobuf_read per byte processing overhead and speeds
up 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
no-armor:      user time    pipe transfer rate
 encrypt-aead:  1.02         1.0 GB/s
 decrypt-aead:  10.8         185 MB/s
 encrypt-cfb:   4.8          342 MB/s
 decrypt-cfb:   12.7         157 MB/s

               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 opt)
-------------------
               gpg process
no-armor:      user time    pipe transfer rate
 decrypt-aead:  7.3          263 MB/s
 decrypt-cfb:   9.3          211 MB/s

               gpg process
armor:         user time    pipe transfer rate
 decrypt-aead:  27.0         77 MB/s
 decrypt-cfb:   29.0         72 MB/s

Note: decryption results are much slower than encryption because of
extra SHA1 & RIPEMD160 hashing.

GnuPG-bug-id: 3786
Signed-off-by: Jussi Kivilinna <jussi.kivilinna@iki.fi>
2018-11-08 21:31:12 +02:00
..
2018-10-24 15:56:18 -04: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