diff options
Diffstat (limited to 'sm/gpgsm.h')
-rw-r--r-- | sm/gpgsm.h | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/sm/gpgsm.h b/sm/gpgsm.h index b05918f67..6b543ed04 100644 --- a/sm/gpgsm.h +++ b/sm/gpgsm.h @@ -199,6 +199,15 @@ struct cert_cache_item_s }; typedef struct cert_cache_item_s *cert_cache_item_t; +/* On object used to keep a KEYINFO data from the agent. */ +struct keyinfo_cache_item_s +{ + struct keyinfo_cache_item_s *next; + char *serialno; /* Malloced serialnumber of a card. */ + char hexgrip[1]; /* The keygrip in hexformat. */ +}; +typedef struct keyinfo_cache_item_s *keyinfo_cache_item_t; + /* Session control object. This object is passed down to most functions. Note that the default values for it are set by @@ -251,6 +260,10 @@ struct server_control_s /* The cache used to find the parent cert. */ cert_cache_item_t parent_cert_cache; + + /* Cache of recently gathered KEYINFO data. */ + keyinfo_cache_item_t keyinfo_cache; + int keyinfo_cache_valid; }; @@ -443,6 +456,7 @@ gpg_error_t gpgsm_qualified_consent (ctrl_t ctrl, ksba_cert_t cert); gpg_error_t gpgsm_not_qualified_warning (ctrl_t ctrl, ksba_cert_t cert); /*-- call-agent.c --*/ +void gpgsm_flush_keyinfo_cache (ctrl_t ctrl); int gpgsm_agent_pksign (ctrl_t ctrl, const char *keygrip, const char *desc, unsigned char *digest, size_t digestlen, |