aboutsummaryrefslogtreecommitdiffstats
path: root/sm/gpgsm.h
diff options
context:
space:
mode:
Diffstat (limited to 'sm/gpgsm.h')
-rw-r--r--sm/gpgsm.h14
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,