mirror of
git://git.gnupg.org/gnupg.git
synced 2025-07-14 21:47:19 +02:00
agent: Backport changes from 2.1 to support an external password manager.
* agent/agent.h (agent_askpin): Add arguments keyinfo and cache_mode. Update callers. (agent_get_passphrase): Likewise. (agent_clear_passphrase): New function. (opt): Add field allow_external_cache. * agent/call-pinentry.c (start_pinentry): Send "OPTION allow-external-password-cache" to the pinentry. (PINENTRY_STATUS_PASSWORD_FROM_CACHE): New constant. (pinentry_status_cb): New function. (agent_askpin): Add arguments keyinfo and cache_mode. If KEYINFO and CACHE_MODE describe a cachable key, then send SETKEYINFO to the pinentry. Pass PINENTRY_STATUS_CB to the "GETPIN" invocation. If the passphrase was incorrect and PINENTRY_STATUS_PASSWORD_FROM_CACHE is set, decrement PININFO->FAILED_TRIES. (agent_get_passphrase): Add arguments keyinfo and cache_mode. If KEYINFO and CACHE_MODE describe a cachable key, then send SETKEYINFO to the pinentry. (agent_clear_passphrase): New function. * agent/call-pinentry.c (start_pinentry): Act upon new var, allow_external_cache. * agent/command.c (cmd_clear_passphrase): Call agent_clear_passphrase. * agent/gpg-agent.c (oNoAllowExternalCache): New. (opts): Add option --no-allow-external-cache. (parse_rereadable_options): Set this option. -- Signed-off-by: Neal H. Walfield <neal@g10code.com> Based on commits:3a9305439b
e201c20f25
d7293cb317
56b5c9f94f
d3b5cad234
2180845959
This commit is contained in:
parent
80b6d614b7
commit
dde8ddffd3
10 changed files with 186 additions and 21 deletions
|
@ -352,6 +352,19 @@ Allow clients to use the loopback pinentry features; see the option
|
|||
@option{pinentry-mode} for details.
|
||||
@end ifset
|
||||
|
||||
@ifset gpgtwoone
|
||||
@item --no-allow-external-cache
|
||||
@opindex no-allow-external-cache
|
||||
Tell Pinentry not to enable features which use an external cache for
|
||||
passphrases.
|
||||
|
||||
Some desktop environments prefer to unlock all
|
||||
credentials with one master password and may have installed a Pinentry
|
||||
which employs an additional external cache to implement such a policy.
|
||||
By using this option the Pinentry is advised not to make use of such a
|
||||
cache and instead always ask the user for the requested passphrase.
|
||||
@end ifset
|
||||
|
||||
@item --ignore-cache-for-signing
|
||||
@opindex ignore-cache-for-signing
|
||||
This option will let @command{gpg-agent} bypass the passphrase cache for all
|
||||
|
@ -713,6 +726,7 @@ again. Only certain options are honored: @code{quiet},
|
|||
@code{verbose}, @code{debug}, @code{debug-all}, @code{debug-level},
|
||||
@code{no-grab}, @code{pinentry-program}, @code{default-cache-ttl},
|
||||
@code{max-cache-ttl}, @code{ignore-cache-for-signing},
|
||||
@code{no-allow-external-cache},
|
||||
@code{allow-mark-trusted}, @code{disable-scdaemon}, and
|
||||
@code{disable-check-own-socket}. @code{scdaemon-program} is also
|
||||
supported but due to the current implementation, which calls the
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue