aboutsummaryrefslogtreecommitdiffstats
path: root/kbx/keybox.h
diff options
context:
space:
mode:
authorWerner Koch <[email protected]>2014-10-31 11:15:34 +0000
committerWerner Koch <[email protected]>2014-10-31 11:15:34 +0000
commit935edf88ab29b2f63afc2a0e3af1b33c92033ab7 (patch)
treeeed38381131b8d98f4aa95a2a6aa9227ec576699 /kbx/keybox.h
parentgpg: Fix --rebuild-keydb-caches. (diff)
downloadgnupg-935edf88ab29b2f63afc2a0e3af1b33c92033ab7.tar.gz
gnupg-935edf88ab29b2f63afc2a0e3af1b33c92033ab7.zip
kbx: Let keydb_search skip unwanted blobs.
* kbx/keybox.h (keybox_blobtype_t): New. * kbx/keybox-defs.h (BLOBTYPE_*): Replace by KEYBOX_BLOBTYPE_*. * kbx/keybox-search.c (keybox_search): Add arg want_blobtype and skip non-matching blobs. * sm/keydb.c (keydb_search): Pass KEYBOX_BLOBTYPE_X509 to keybox_search. * g10/keydb.c (keydb_search): Pass KEYBOX_BLOBTYPE_PGP to keybox_search. -- Without this fix a listing of all keys would fail because the wrong blob type would be returned for the gpg or gpgsm. Signed-off-by: Werner Koch <[email protected]>
Diffstat (limited to 'kbx/keybox.h')
-rw-r--r--kbx/keybox.h9
1 files changed, 9 insertions, 0 deletions
diff --git a/kbx/keybox.h b/kbx/keybox.h
index b44f1b2ba..386fff1e6 100644
--- a/kbx/keybox.h
+++ b/kbx/keybox.h
@@ -56,6 +56,14 @@ typedef enum
#define KEYBOX_FLAG_BLOB_SECRET 1
#define KEYBOX_FLAG_BLOB_EPHEMERAL 2
+/* The keybox blob types. */
+typedef enum
+ {
+ KEYBOX_BLOBTYPE_EMPTY = 0,
+ KEYBOX_BLOBTYPE_HEADER = 1,
+ KEYBOX_BLOBTYPE_PGP = 2,
+ KEYBOX_BLOBTYPE_X509 = 3
+ } keybox_blobtype_t;
/*-- keybox-init.c --*/
@@ -87,6 +95,7 @@ int keybox_get_flags (KEYBOX_HANDLE hd, int what, int idx, unsigned int *value);
int keybox_search_reset (KEYBOX_HANDLE hd);
int keybox_search (KEYBOX_HANDLE hd, KEYBOX_SEARCH_DESC *desc, size_t ndesc,
+ keybox_blobtype_t want_blobtype,
size_t *r_descindex, unsigned long *r_skipped);