aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorWerner Koch <[email protected]>2016-07-04 09:28:58 +0000
committerWerner Koch <[email protected]>2016-07-04 09:29:12 +0000
commit8c8ae043b8d65cb79e0e99c5bdbdcbf34714bd0c (patch)
tree81ca97b96a472bf20bc56a0ac934f74204462a7f
parenttests: Add a gettime test for sizeof (time_t) > 4. (diff)
downloadgnupg-8c8ae043b8d65cb79e0e99c5bdbdcbf34714bd0c.tar.gz
gnupg-8c8ae043b8d65cb79e0e99c5bdbdcbf34714bd0c.zip
wks: Add command --read to gpg-wks-client.
* tools/gpg-wks-client.c (aRead): New. (opts): Add command "--read". (main): Implement that. -- This command allows to process alread decrypted Web Key Service messages. It can for example be used in /etc/mailcap --8<---------------cut here---------------start------------->8--- application/vnd.gnupg.wks; gpg-wks-client -v --read --send;\ needsterminal; description=Web Key Service message --8<---------------cut here---------------end--------------->8--- to allow Mutt to process confirmation requests. Signed-off-by: Werner Koch <[email protected]>
-rw-r--r--tools/gpg-wks-client.c17
1 files changed, 15 insertions, 2 deletions
diff --git a/tools/gpg-wks-client.c b/tools/gpg-wks-client.c
index 312f58bc1..20dfa2952 100644
--- a/tools/gpg-wks-client.c
+++ b/tools/gpg-wks-client.c
@@ -51,6 +51,7 @@ enum cmd_and_opt_values
aCreate,
aReceive,
+ aRead,
oGpgProgram,
oSend,
@@ -66,7 +67,9 @@ static ARGPARSE_OPTS opts[] = {
ARGPARSE_c (aCreate, "create",
("create a publication request")),
ARGPARSE_c (aReceive, "receive",
- ("receive a confirmation request")),
+ ("receive a MIME confirmation request")),
+ ARGPARSE_c (aRead, "read",
+ ("receive a plain text confirmation request")),
ARGPARSE_group (301, ("@\nOptions:\n ")),
@@ -96,6 +99,7 @@ static struct debug_flags_s debug_flags [] =
static void wrong_args (const char *text) GPGRT_ATTR_NORETURN;
static gpg_error_t command_send (const char *fingerprint, char *userid);
+static gpg_error_t process_confirmation_request (estream_t msg);
static gpg_error_t command_receive_cb (void *opaque,
const char *mediatype, estream_t fp);
@@ -172,6 +176,7 @@ parse_arguments (ARGPARSE_ARGS *pargs, ARGPARSE_OPTS *popts)
case aCreate:
case aReceive:
+ case aRead:
cmd = pargs->r_opt;
break;
@@ -242,12 +247,20 @@ main (int argc, char **argv)
case aReceive:
if (argc)
- wrong_args ("--receive");
+ wrong_args ("--receive < MIME-DATA");
err = wks_receive (es_stdin, command_receive_cb, NULL);
if (err)
log_error ("processing mail failed: %s\n", gpg_strerror (err));
break;
+ case aRead:
+ if (argc)
+ wrong_args ("--read < WKS-DATA");
+ err = process_confirmation_request (es_stdin);
+ if (err)
+ log_error ("processing mail failed: %s\n", gpg_strerror (err));
+ break;
+
default:
usage (1);
break;