1
0
Fork 0
mirror of git://git.gnupg.org/gnupg.git synced 2025-07-02 22:46:30 +02:00
gnupg/g10
Werner Koch 6500f338a3
gpg: Improve speed of --check-sigs and --lish-sigs.
* g10/keydb.c (kid_list_t): New.
(kid_not_found_table, n_kid_not_found_table): New.
(kid_not_found_p, kid_not_found_insert, kid_not_found_flush): New.
(keydb_insert_keyblock): Flush the new cache.
(keydb_delete_keyblock): Ditto.
(keydb_update_keyblock): Ditto.
(keydb_search): Use the new cache.
(keydb_dump_stats): New.
* g10/gpg.c (g10_exit): Dump keydb stats.
--

What we do here is to keep track of key searches by long keyids (as
stored in all signatures) so that we do not need to scan the keybox
again after we already found that this keyid will result in
not-found.  As soon as we change gpg to run as a co-process we should
store this table per session because other instances of gpg may have
updated the keybox without us knowing.

On a test ring with

  gpg: 94721 good signatures
  gpg: 6831 bad signatures
  gpg: 150703 signatures not checked due to missing keys
  gpg: 5 signatures not checked due to errors
  gpg: keydb: kid_not_found_table: total: 14132

this new cache speeds a --check-sigs listing up from 28 minutes to
less than 3 minutes.

Signed-off-by: Werner Koch <wk@gnupg.org>
2015-06-20 15:03:32 +02:00
..
armor.c gpg: Replace remaining old error code macros by GPG_ERR_. 2015-01-22 12:06:11 +01:00
build-packet.c gpg: Create all MPIs with RFC-4880 correct length headers. 2015-03-16 20:14:58 +01:00
call-agent.c gpg: Fix regression not displaying the card serial number 2015-05-07 11:54:34 +02:00
call-agent.h g10: Fix keytocard. 2015-04-03 17:39:59 +09:00
call-dirmngr.c gpg: Move all DNS access to Dirmngr. 2015-04-23 15:52:39 +02:00
call-dirmngr.h gpg: Move all DNS access to Dirmngr. 2015-04-23 15:52:39 +02:00
card-util.c gpg: Improve 'General key info' line of --card-status. 2015-05-07 12:12:41 +02:00
ChangeLog-2011 Generate the ChangeLog from commit logs. 2011-12-01 11:09:02 +01:00
cipher.c gpg: Remove options --pgp2 and --rfc1991. 2014-08-14 11:03:55 +02:00
comment.c Nuked almost all trailing white space. 2011-02-04 12:57:53 +01:00
compress-bz2.c Nuked almost all trailing white space. 2011-02-04 12:57:53 +01:00
compress.c gpg: Replace remaining old error code macros by GPG_ERR_. 2015-01-22 12:06:11 +01:00
cpr.c common: Add cpr_get_answer_is_yes_def() 2014-07-23 14:35:22 +02:00
dearmor.c gpg: Create exported secret files and revocs with mode 700. 2014-06-30 09:12:48 +02:00
decrypt-data.c gpg: Replace remaining old error code macros by GPG_ERR_. 2015-01-22 12:06:11 +01:00
decrypt.c gpg: Replace remaining old error code macros by GPG_ERR_. 2015-01-22 12:06:11 +01:00
dek.h gpg: Remove cipher.h and put algo ids into a common file. 2014-01-29 20:35:05 +01:00
delkey.c gpg: --delete-secret-key - check that a secret key exists. 2014-09-20 16:27:16 +02:00
distsigkey.gpg Add more signing keys. 2014-10-31 14:21:34 +01:00
ecdh.c gpg: Rename a debug macro. 2015-04-06 13:07:09 +02:00
encrypt.c gpg: Rename a debug macro. 2015-04-06 13:07:09 +02:00
exec.c gpg: Replace remaining old error code macros by GPG_ERR_. 2015-01-22 12:06:11 +01:00
exec.h Changed to GPLv3. 2007-07-04 19:49:40 +00:00
export.c gpg: Fix export problem in case an old keyring has PGP-2 keys. 2015-06-19 12:39:29 +02:00
filter.h gpg: Remove PGP-2 related cruft. 2014-11-13 12:01:42 +01:00
free-packet.c g10: fix cmp_public_key. 2015-05-01 13:58:18 +09:00
getkey.c gpg: Improve 'General key info' line of --card-status. 2015-05-07 12:12:41 +02:00
gpg-w32info.rc w32: Add manifest to gpg. 2015-02-04 09:15:34 +01:00
gpg.c gpg: Improve speed of --check-sigs and --lish-sigs. 2015-06-20 15:03:32 +02:00
gpg.h gpg: Replace remaining old error code macros by GPG_ERR_. 2015-01-22 12:06:11 +01:00
gpg.w32-manifest.in w32: Add manifest to gpg. 2015-02-04 09:15:34 +01:00
gpgv.c gpg: Move all DNS access to Dirmngr. 2015-04-23 15:52:39 +02:00
helptext.c Change all quotes in strings and comments to the new GNU standard. 2012-06-05 19:29:22 +02:00
import.c gpg: Add dedicated error code for PGP-2 keys. 2015-01-22 14:39:31 +01:00
kbnode.c gpg: Fix a missing LF in debug output. 2014-11-13 17:01:17 +01:00
keydb.c gpg: Improve speed of --check-sigs and --lish-sigs. 2015-06-20 15:03:32 +02:00
keydb.h gpg: Improve speed of --check-sigs and --lish-sigs. 2015-06-20 15:03:32 +02:00
keyedit.c gpg: New command --quick-adduid. 2015-05-08 16:08:57 +02:00
keygen.c gpg: New command --quick-adduid. 2015-05-08 16:08:57 +02:00
keyid.c gpg: Improve 'General key info' line of --card-status. 2015-05-07 12:12:41 +02:00
keylist.c gpg: Improve 'General key info' line of --card-status. 2015-05-07 12:12:41 +02:00
keyring.c gpg: Add push/pop found state feature to keydb. 2015-05-08 15:51:11 +02:00
keyring.h gpg: Add push/pop found state feature to keydb. 2015-05-08 15:51:11 +02:00
keyserver-internal.h gpg: Move all DNS access to Dirmngr. 2015-04-23 15:52:39 +02:00
keyserver.c gpg: Move all DNS access to Dirmngr. 2015-04-23 15:52:39 +02:00
main.h agent: Print a warning for obsolete options. 2015-06-17 12:59:29 +02:00
mainproc.c g10: detects public key encryption packet error properly. 2015-05-19 10:32:07 +09:00
Makefile.am build: Make --disable-gpgsm work. 2015-05-15 13:20:52 +02:00
mdfilter.c Nuked almost all trailing white space. 2011-02-04 12:57:53 +01:00
migrate.c gpg: Change wording of a migration error message. 2014-10-09 10:56:25 +02:00
misc.c agent: Print a warning for obsolete options. 2015-06-17 12:59:29 +02:00
openfile.c gpg: Make the use of "--verify FILE" for detached sigs harder. 2014-11-13 17:39:31 +01:00
OPTIONS See ChangeLog: Mon Jul 31 10:04:47 CEST 2000 Werner Koch 2000-07-31 08:04:16 +00:00
options.h gpg: Make keyserver-option http_proxy work. 2015-04-21 19:29:53 +02:00
options.skel Change a couple of files to use abbreviated copyright notes. 2014-11-04 16:28:03 +01:00
packet.h gpg: New command --quick-adduid. 2015-05-08 16:08:57 +02:00
parse-packet.c gpg: Fix wrong output in list mode. 2015-05-08 16:20:26 +02:00
passphrase.c Comment typo fixes. 2014-11-19 10:47:57 +01:00
photoid.c gpg: New %U expando for the photo viewer. 2014-04-17 21:44:09 +02:00
photoid.h Decryption and signi via agent is now implemented. 2010-04-23 11:36:59 +00:00
pkclist.c gpg: Replace remaining old error code macros by GPG_ERR_. 2015-01-22 12:06:11 +01:00
pkglue.c gpg: Rename a debug macro. 2015-04-06 13:07:09 +02:00
pkglue.h gpg: Use only OpenPGP public key algo ids and add the EdDSA algo id. 2014-01-30 18:48:37 +01:00
plaintext.c gpg: Replace remaining old error code macros by GPG_ERR_. 2015-01-22 12:06:11 +01:00
progress.c Nuked almost all trailing white space. 2011-02-04 12:57:53 +01:00
pubkey-enc.c gpg: Rename a debug macro. 2015-04-06 13:07:09 +02:00
pubring.asc See ChangeLog: Mon Jul 31 10:04:47 CEST 2000 Werner Koch 2000-07-31 08:04:16 +00:00
revoke.c gpg: Improve 'General key info' line of --card-status. 2015-05-07 12:12:41 +02:00
rmd160.c Nuked almost all trailing white space. 2011-02-04 12:57:53 +01:00
rmd160.h Add missing header file. 2008-12-12 08:54:50 +00:00
seckey-cert.c Use inline functions to convert buffer data to scalars. 2015-02-11 10:28:25 +01:00
server.c Remove support for the GPG_AGENT_INFO envvar. 2014-10-03 11:58:58 +02:00
seskey.c gpg: Rename a debug macro. 2015-04-06 13:07:09 +02:00
sig-check.c gpg: Replace remaining uses of stdio by estream. 2015-02-19 17:22:27 +01:00
sign.c gpg: Replace remaining uses of stdio by estream. 2015-02-19 17:22:27 +01:00
skclist.c gpg: Remove cipher.h and put algo ids into a common file. 2014-01-29 20:35:05 +01:00
t-rmd160.c Nuked almost all trailing white space. 2011-02-04 12:57:53 +01:00
tdbdump.c gpg: Replace -1 by GPG_ERR_NOT_FOUND in tdbio.c 2015-06-04 18:08:26 +02:00
tdbio.c gpg: Replace -1 by GPG_ERR_NOT_FOUND in tdbio.c 2015-06-04 18:08:26 +02:00
tdbio.h gpg: Replace -1 by GPG_ERR_NOT_FOUND in tdbio.c 2015-06-04 18:08:26 +02:00
textfilter.c gpg: Remove all support for v3 keys and always create v4-signatures. 2014-10-17 13:32:16 +02:00
trust.c Use inline functions to convert buffer data to scalars. 2015-02-11 10:28:25 +01:00
trustdb.c gpg: Replace -1 by GPG_ERR_NOT_FOUND in tdbio.c 2015-06-04 18:08:26 +02:00
trustdb.h gpg: Fix output in case of a corrupted trustdb. 2015-06-04 17:34:55 +02:00
verify.c gpg: Replace remaining old error code macros by GPG_ERR_. 2015-01-22 12:06:11 +01:00
zlib-riscos.h include: Remove this directory. 2014-01-29 17:45:05 +01:00