From be77a7ab8a8bdbde6f40a233a1a60f7924a21d4a Mon Sep 17 00:00:00 2001 From: Ben Kibbey Date: Sun, 5 Mar 2023 17:14:07 -0800 Subject: [PATCH] agent: Try to SETREPEATOK if the pinentry supports it. * agent/call-pinentry.c (agent_get_passphrase): Do SETREPEATOK. (agent_askpin): Ditto. Signed-off-by: Ben Kibbey --- agent/call-pinentry.c | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/agent/call-pinentry.c b/agent/call-pinentry.c index c6c52be74..656d5f623 100644 --- a/agent/call-pinentry.c +++ b/agent/call-pinentry.c @@ -1543,6 +1543,17 @@ agent_askpin (ctrl_t ctrl, NULL, NULL, NULL, NULL, NULL, NULL); if (rc) pininfo->with_repeat = 0; /* Pinentry does not support it. */ + + if (pininfo->with_repeat) + { + snprintf (line, DIM(line), "SETREPEATOK %s", + L_("Passphrases match.")); + rc = assuan_transact (entry_ctx, line, + NULL, NULL, NULL, NULL, NULL, NULL); + if (rc) + rc = 0; /* Pinentry does not support it. */ + } + } pininfo->repeat_okay = 0; pininfo->status = 0; @@ -1802,6 +1813,16 @@ agent_get_passphrase (ctrl_t ctrl, if (rc) pininfo->with_repeat = 0; /* Pinentry does not support it. */ + if (pininfo->with_repeat) + { + snprintf (line, DIM(line), "SETREPEATOK %s", + L_("Passphrases match.")); + rc = assuan_transact (entry_ctx, line, + NULL, NULL, NULL, NULL, NULL, NULL); + if (rc) + rc = 0; /* Pinentry does not support it. */ + } + (void)setup_genpin (ctrl); rc = setup_enforced_constraints (ctrl);