dirmngr: add option to retrieve extra WKS info.

* dirmngr/server.c (cmd_wkd_get): Add option --submission-address.

Signed-off-by: Werner Koch <wk@gnupg.org>
This commit is contained in:
Werner Koch 2016-06-28 15:50:38 +02:00
parent 20ca075d96
commit b1e8e0d4b9
No known key found for this signature in database
GPG Key ID: E3FDFF218E45B72B
1 changed files with 22 additions and 8 deletions

View File

@ -799,9 +799,10 @@ cmd_dns_cert (assuan_context_t ctx, char *line)
static const char hlp_wkd_get[] =
"WKD_GET <user_id>\n"
"WKD_GET [--submission-address] <user_id>\n"
"\n"
"Return the key for <user_id> from a Web Key Directory.\n";
"Return the key or the submission address for <user_id>\n"
"from a Web Key Directory.";
static gpg_error_t
cmd_wkd_get (assuan_context_t ctx, char *line)
{
@ -812,7 +813,9 @@ cmd_wkd_get (assuan_context_t ctx, char *line)
char sha1buf[20];
char *uri = NULL;
char *encodedhash = NULL;
int opt_submission_addr;
opt_submission_addr = has_option (line, "--submission-address");
line = skip_options (line);
mbox = mailbox_from_userid (line);
@ -831,11 +834,21 @@ cmd_wkd_get (assuan_context_t ctx, char *line)
goto leave;
}
uri = strconcat ("https://",
domain,
"/.well-known/openpgpkey/hu/",
encodedhash,
NULL);
if (opt_submission_addr)
{
uri = strconcat ("https://",
domain,
"/.well-known/openpgpkey/submission-address",
NULL);
}
else
{
uri = strconcat ("https://",
domain,
"/.well-known/openpgpkey/hu/",
encodedhash,
NULL);
}
if (!uri)
{
err = gpg_error_from_syserror ();
@ -848,7 +861,8 @@ cmd_wkd_get (assuan_context_t ctx, char *line)
outfp = es_fopencookie (ctx, "w", data_line_cookie_functions);
if (!outfp)
err = set_error (GPG_ERR_ASS_GENERAL, "error setting up a data stream");
err = set_error (GPG_ERR_ASS_GENERAL,
"error setting up a data stream");
else
{
err = ks_action_fetch (ctrl, uri, outfp);