Diffusion GnuPG 02a2633a7f0b

agent: Clear bogus pinentry cache, when it causes an error.

Authored by gniibe on Jan 28 2019, 4:58 AM.

Description

agent: Clear bogus pinentry cache, when it causes an error.

* agent/agent.h (PINENTRY_STATUS_*): Expose to public.
(struct pin_entry_info_s): Add status.
* agent/call-pinentry.c (agent_askpin): Clearing the ->status
before the loop, let the assuan_transact set ->status.  When
failure with PINENTRY_STATUS_PASSWORD_FROM_CACHE, it returns
soon.
* agent/findkey.c (unprotect): Clear the pinentry cache,
when it causes an error.
  • GnuPG-bug-id: T4348
  • Signed-off-by: NIIBE Yutaka <gniibe@fsij.org>