1
0
Fork 0
mirror of git://git.gnupg.org/gnupg.git synced 2025-07-03 22:56:33 +02:00
gnupg/sm
Werner Koch dcee2db36b
gpgsm: Use a cache to speed up parent certificate lookup.
* sm/gpgsm.h (COMPAT_NO_CHAIN_CACHE): New.
(struct cert_cache_item_s, cert_cache_item_t): New.
(struct server_control_s): Add parent_cert_cache.
* sm/gpgsm.c (compatibility_flags): Add "no-chain-cache".
(parent_cache_stats): New.
(gpgsm_exit): Print the stats with --debug=memstat.
(gpgsm_deinit_default_ctrl): Release the cache.
* sm/certchain.c (gpgsm_walk_cert_chain): Cache the certificates.
(do_validate_chain): Ditto.
--

This gives another boost of 30% (from 6.5 to 4.0 seconds in the test
environment with ~1000 certs).  do_validate_chain actually brings us
the speedup becuase the gpgsm_walk_cert_chain is not used during a key
listing.  For the latter we actually cache all certificates because
that was easier.

GnuPG-bug-id: 7308

Adjusted for 2.2:
- Add gpgsm_deinit_default_ctrl
- Remove ctrl arg from keydb_new
2024-09-30 19:05:41 +02:00
..
call-agent.c gpg,gpgsm: Hide password in debug output also for asked passwords. 2023-11-14 15:08:20 +01:00
call-dirmngr.c sm: Fix use of value NONE in gnupg_isotime_t type. 2023-08-28 08:39:16 +02:00
certchain.c gpgsm: Use a cache to speed up parent certificate lookup. 2024-09-30 19:05:41 +02:00
certcheck.c gpgsm: Avoid double free when checking rsaPSS signatures. 2024-05-29 11:58:27 +02:00
certdump.c sm: Fix a bug in the rfc2253 parser 2020-08-28 09:09:34 +02:00
certlist.c gpgsm: Add --always-trust feature. 2023-08-31 11:13:38 +02:00
certreqgen-ui.c gpgsm: Cleanup the use of GCRY_PK_ECC and GCRY_PK_ECDSA. 2022-11-14 18:16:49 +01:00
certreqgen.c gpg,gpgsm: Remove compatibility_flags allow-ecc-encr and vsd-allow-encr. 2024-05-06 14:34:48 +02:00
ChangeLog-2011 Generate the ChangeLog from commit logs. 2011-12-01 11:09:02 +01:00
decrypt.c gpgsm: Support ECDSA in de-vs mode. 2023-11-08 17:16:31 +01:00
delete.c sm: Fix issuer certificate look error due to legacy error code. 2023-02-24 17:46:39 +01:00
encrypt.c gpg,gpgsm: Remove compatibility_flags allow-ecc-encr and vsd-allow-encr. 2024-05-06 14:34:48 +02:00
export.c sm: Fix issuer certificate look error due to legacy error code. 2023-02-24 17:46:39 +01:00
fingerprint.c sm: Flag Brainpool curves as compliant for all other operations. 2023-10-24 14:51:16 +02:00
gpgsm-w32info.rc w32: Add manifest files to most binaries 2020-10-02 17:04:12 +02:00
gpgsm.c gpgsm: Use a cache to speed up parent certificate lookup. 2024-09-30 19:05:41 +02:00
gpgsm.h gpgsm: Use a cache to speed up parent certificate lookup. 2024-09-30 19:05:41 +02:00
gpgsm.w32-manifest.in w32: Add missing manifests and set a requestedExecutionLevel. 2023-05-25 11:10:21 +02:00
import.c sm: Support import of PKCS#12 encoded ECC private keys. 2023-10-17 16:40:49 +02:00
keydb.c sm: Fix issuer certificate look error due to legacy error code. 2023-02-24 17:46:39 +01:00
keydb.h sm: On Windows close the kbx files at several places. 2021-03-02 19:01:07 +01:00
keylist.c gpgsm: Set validity flag in keylisting to n for untrusted root cert. 2023-11-27 12:34:38 +01:00
Makefile.am sm: Complete rewrite of the PKCS#12 parser 2023-07-05 14:21:16 +02:00
minip12.c sm: More improvements for PKCS#12 parsing for latest IVBB changes. 2024-08-07 11:21:35 +02:00
minip12.h sm: Complete rewrite of the PKCS#12 parser 2023-07-05 14:21:16 +02:00
misc.c gpgsm: Some more ECC support backported. 2022-11-14 17:23:06 +01:00
passphrase.c Change all http://www.gnu.org in license notices to https:// 2016-11-05 12:02:19 +01:00
passphrase.h Change all http://www.gnu.org in license notices to https:// 2016-11-05 12:02:19 +01:00
qualified.c Replace most of the remaining stdio calls by estream calls. 2020-10-21 21:09:38 +02:00
server.c gpgsm: Use a cache to speed up parent certificate lookup. 2024-09-30 19:05:41 +02:00
sign.c gpgsm: Support ECDSA in de-vs mode. 2023-11-08 17:16:31 +01:00
t-minip12.c sm: Minor robustness fix for a regression test. 2023-10-17 16:42:33 +02:00
verify.c gpgsm: Support ECDSA in de-vs mode. 2023-11-08 17:16:31 +01:00