From cf748e8736b984194345bfd74887b35d3d23fa37 Mon Sep 17 00:00:00 2001 From: Ben Kibbey Date: Wed, 25 Jan 2012 19:16:33 -0500 Subject: [PATCH] Return GPG_ERR_CARD_NOT_PRESENT when pinentry-mode=loopback. Since there isn't a way to prompt the user to insert the smartcard when pinentry-mode=loopback, return GPG_ERR_CARD_NOT_PRESENT instead of GPG_ERR_NO_PIN_ENTRY. * agent/divert-scd.c (ask_for_card): Return GPG_ERR_CARD_NOT_PRESENT when pinentry-mode=loopback. --- agent/divert-scd.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/agent/divert-scd.c b/agent/divert-scd.c index f176a6b94..59264243d 100644 --- a/agent/divert-scd.c +++ b/agent/divert-scd.c @@ -99,6 +99,10 @@ ask_for_card (ctrl_t ctrl, const unsigned char *shadow_info, char **r_kid) else { rc = agent_get_confirmation (ctrl, desc, NULL, NULL, 0); + if (ctrl->pinentry_mode == PINENTRY_MODE_LOOPBACK && + gpg_err_code (rc) == GPG_ERR_NO_PIN_ENTRY) + rc = gpg_error (GPG_ERR_CARD_NOT_PRESENT); + xfree (desc); } }