aboutsummaryrefslogtreecommitdiffstats
path: root/g10/getkey.c
diff options
context:
space:
mode:
authorWerner Koch <[email protected]>1999-03-17 12:13:04 +0000
committerWerner Koch <[email protected]>1999-03-17 12:13:04 +0000
commit8d255ff264b519faa056a1041cbf1eb969c23206 (patch)
treef7a2a55452b20d3e01a6067209430f0045d4c241 /g10/getkey.c
parentSee ChangeLog: Sun Mar 14 19:34:36 CET 1999 Werner Koch (diff)
downloadgnupg-8d255ff264b519faa056a1041cbf1eb969c23206.tar.gz
gnupg-8d255ff264b519faa056a1041cbf1eb969c23206.zip
See ChangeLog: Wed Mar 17 13:09:03 CET 1999 Werner Koch
Diffstat (limited to 'g10/getkey.c')
-rw-r--r--g10/getkey.c29
1 files changed, 29 insertions, 0 deletions
diff --git a/g10/getkey.c b/g10/getkey.c
index 424590ed2..4d16ecd84 100644
--- a/g10/getkey.c
+++ b/g10/getkey.c
@@ -31,6 +31,7 @@
#include "keydb.h"
#include "options.h"
#include "main.h"
+#include "trustdb.h"
#include "i18n.h"
#define MAX_UNK_CACHE_ENTRIES 1000 /* we use a linked list - so I guess
@@ -832,6 +833,34 @@ get_keyblock_byfprint( KBNODE *ret_keyblock, const byte *fprint,
+/****************
+ * Search for a key with the given lid and return the complete keyblock
+ */
+int
+get_keyblock_bylid( KBNODE *ret_keyblock, ulong lid )
+{
+ int rc;
+ PKT_public_key *pk = m_alloc_clear( sizeof *pk );
+ struct getkey_ctx_s ctx;
+ u32 kid[2];
+
+ if( keyid_from_lid( lid, kid ) )
+ kid[0] = kid[1] = 0;
+ memset( &ctx, 0, sizeof ctx );
+ ctx.not_allocated = 1;
+ ctx.nitems = 1;
+ ctx.items[0].mode = 12;
+ ctx.items[0].keyid[0] = kid[0];
+ ctx.items[0].keyid[1] = kid[1];
+ rc = lookup_pk( &ctx, pk, ret_keyblock );
+ get_pubkey_end( &ctx );
+
+ free_public_key( pk );
+ return rc;
+}
+
+
+
/****************