summaryrefslogtreecommitdiffstats
path: root/agent
diff options
context:
space:
mode:
authorBen Kibbey <bjk@luxsci.net>2012-02-03 23:50:22 +0100
committerBen Kibbey <bjk@luxsci.net>2012-02-03 23:50:22 +0100
commitecda65498ac60dfde50fbbc71cd0cc321d7175a9 (patch)
tree79ed841e3929fe43134c749df9c69b1fb3a577e5 /agent
parentInform the client of the preset passphrase length. (diff)
downloadgnupg2-ecda65498ac60dfde50fbbc71cd0cc321d7175a9.tar.xz
gnupg2-ecda65498ac60dfde50fbbc71cd0cc321d7175a9.zip
Also let GENKEY and PKDECRYPT send the INQUIRE_MAXLEN status message.
* agent/command.c (cmd_pkdecrypt): Send the INQUIRE_MAXLEN status message before doing the inquire. (cmd_genkey): Ditto.
Diffstat (limited to 'agent')
-rw-r--r--agent/command.c14
1 files changed, 11 insertions, 3 deletions
diff --git a/agent/command.c b/agent/command.c
index 732046ce3..c673662d1 100644
--- a/agent/command.c
+++ b/agent/command.c
@@ -855,12 +855,16 @@ cmd_pkdecrypt (assuan_context_t ctx, char *line)
unsigned char *value;
size_t valuelen;
membuf_t outbuf;
+ char buf[50];
(void)line;
/* First inquire the data to decrypt */
- rc = assuan_inquire (ctx, "CIPHERTEXT",
- &value, &valuelen, MAXLEN_CIPHERTEXT);
+ snprintf (buf, sizeof (buf), "%u", MAXLEN_CIPHERTEXT);
+ rc = assuan_write_status (ctx, "INQUIRE_MAXLEN", buf);
+ if (!rc)
+ rc = assuan_inquire (ctx, "CIPHERTEXT",
+ &value, &valuelen, MAXLEN_CIPHERTEXT);
if (rc)
return rc;
@@ -908,6 +912,7 @@ cmd_genkey (assuan_context_t ctx, char *line)
char *cache_nonce = NULL;
int opt_preset;
char *p;
+ char buf[50];
opt_preset = has_option (line, "--preset");
no_protection = has_option (line, "--no-protection");
@@ -921,7 +926,10 @@ cmd_genkey (assuan_context_t ctx, char *line)
cache_nonce = xtrystrdup (line);
/* First inquire the parameters */
- rc = assuan_inquire (ctx, "KEYPARAM", &value, &valuelen, MAXLEN_KEYPARAM);
+ snprintf (buf, sizeof (buf), "%u", MAXLEN_KEYPARAM);
+ rc = assuan_write_status (ctx, "INQUIRE_MAXLEN", buf);
+ if (!rc)
+ rc = assuan_inquire (ctx, "KEYPARAM", &value, &valuelen, MAXLEN_KEYPARAM);
if (rc)
return rc;