Home GnuPG
Diffusion GnuPG 9087c1d3637c

gpgsm: Implement a cache for the KEYINFO queries.

Description

gpgsm: Implement a cache for the KEYINFO queries.

* sm/gpgsm.h (struct keyinfo_cache_item_s): New.
(struct server_control_s): Add keyinfo_cache and keyinfo_cache_valid.
* sm/call-agent.c (keyinfo_cache_disabled): New flag.
(release_a_keyinfo_cache): New.
(gpgsm_flush_keyinfo_cache): New.
(struct keyinfo_status_parm_s): New.
(keyinfo_status_cb): Implement a fill mode.
(gpgsm_agent_keyinfo): Implement a cache.
* sm/server.c (reset_notify): Flush the cache.
* sm/gpgsm.c (gpgsm_deinit_default_ctrl): Ditto.

In almost all cases we have just a few private keys in the agent and
thus it is better to fetch them early. This does not work in a
restricted connection but we take care and disable the cache in this
case.

This cache gives a a minor speed up.

(cherry picked from commit 241971fac0fc52efc87ed5753a01d18b0672d900)

Details

Provenance
wernerAuthored on Oct 2 2024, 4:44 PM
Parents
rG09d4b8f496dd: gpgsm: Use a cache for ISTRUSTED queries.
Branches
Unknown
Tags
Unknown
Tasks
T7308: Speed up the X.509 key listings