[PATCH GnuPG 2/2] g10/sign: sign_file: use iobuf_read for higher detached signing speed

Jussi Kivilinna jussi.kivilinna at iki.fi
Thu Feb 10 19:17:31 CET 2022


* g10/sign.c (sign_file): Use iobuf_read instead of iobuf_get for
reading data from detached file.
--

This patch reduces iobuf_read per byte processing overhead and speeds
up detached signing.

Detached signing speed on AMD Ryzen 5800X (4.3GiB file, SHA256):

         gpg process
         user time
 before: 3.951s
 after:  1.898s (2.0x faster)

GnuPG-bug-id: T5826
Signed-off-by: Jussi Kivilinna <jussi.kivilinna at iki.fi>
---
 g10/sign.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/g10/sign.c b/g10/sign.c
index 98cfcb2e3..981cc250a 100644
--- a/g10/sign.c
+++ b/g10/sign.c
@@ -1328,7 +1328,7 @@ sign_file (ctrl_t ctrl, strlist_t filenames, int detached, strlist_t locusr,
                   iobuf_push_filter (inp, text_filter, &tfx);
                 }
               iobuf_push_filter (inp, md_filter, &mfx);
-              while (iobuf_get (inp) != -1)
+              while (iobuf_read (inp, NULL, 1<<30) != -1)
                 ;
               iobuf_close (inp);
               inp = NULL;
@@ -1339,7 +1339,7 @@ sign_file (ctrl_t ctrl, strlist_t filenames, int detached, strlist_t locusr,
       else
         {
           /* Read, so that the filter can calculate the digest. */
-          while (iobuf_get(inp) != -1)
+          while (iobuf_read (inp, NULL, 1<<30) != -1)
             ;
 	}
     }
-- 
2.32.0




More information about the Gnupg-devel mailing list