aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--doc/HACKING2
-rw-r--r--tools/gpg-wks-client.c21
2 files changed, 17 insertions, 6 deletions
diff --git a/doc/HACKING b/doc/HACKING
index d2168d65b..94e65d83b 100644
--- a/doc/HACKING
+++ b/doc/HACKING
@@ -46,6 +46,8 @@ are
- scd :: The scdaemon component
- ccid :: The CCID driver in scdaemon
- dirmngr :: The dirmngr component
+ - wks :: The web key service tools
+ - tools :: Other code in tools
- w32 :: Windows related code
- po :: Translations
- build :: Changes to the build system
diff --git a/tools/gpg-wks-client.c b/tools/gpg-wks-client.c
index 25ee43f2e..312f58bc1 100644
--- a/tools/gpg-wks-client.c
+++ b/tools/gpg-wks-client.c
@@ -291,11 +291,10 @@ get_key (estream_t *r_key, const char *fingerprint, const char *addrspec)
{
gpg_error_t err;
ccparray_t ccp;
- const char **argv;
- estream_t key;
+ const char **argv = NULL;
+ estream_t key = NULL;
struct get_key_status_parm_s parm;
-
- (void)addrspec; /* FIXME - need to use it. */
+ char *filterexp = NULL;
memset (&parm, 0, sizeof parm);
@@ -306,7 +305,15 @@ get_key (estream_t *r_key, const char *fingerprint, const char *addrspec)
{
err = gpg_error_from_syserror ();
log_error ("error allocating memory buffer: %s\n", gpg_strerror (err));
- return err;
+ goto leave;
+ }
+
+ filterexp = es_bsprintf ("keep-uid=mbox = %s", addrspec);
+ if (!filterexp)
+ {
+ err = gpg_error_from_syserror ();
+ log_error ("error allocating memory buffer: %s\n", gpg_strerror (err));
+ goto leave;
}
ccparray_init (&ccp, 0);
@@ -321,6 +328,8 @@ get_key (estream_t *r_key, const char *fingerprint, const char *addrspec)
ccparray_put (&ccp, "--always-trust");
ccparray_put (&ccp, "--armor");
ccparray_put (&ccp, "--export-options=export-minimal");
+ ccparray_put (&ccp, "--export-filter");
+ ccparray_put (&ccp, filterexp);
ccparray_put (&ccp, "--export");
ccparray_put (&ccp, "--");
ccparray_put (&ccp, fingerprint);
@@ -353,6 +362,7 @@ get_key (estream_t *r_key, const char *fingerprint, const char *addrspec)
leave:
es_fclose (key);
xfree (argv);
+ xfree (filterexp);
return err;
}
@@ -388,7 +398,6 @@ command_send (const char *fingerprint, char *userid)
err = get_key (&key, fingerprint, addrspec);
if (err)
goto leave;
- log_debug ("fixme: Check that the key has the requested user-id.\n");
/* Get the submission address. */
err = wkd_get_submission_address (addrspec, &submission_to);