mirror of
git://git.gnupg.org/gnupg.git
synced 2025-07-02 22:46:30 +02:00
agent: Add --force option for LEARN.
* agent/command.c (cmd_learn): Handle --force option. (cmd_keytocard): Don't update key storage file. * agent/agent.h (agent_handle_learn): Add FORCE. * agent/learncard.c (agent_handle_learn): Implement FORCE to update key stroage file. --
This commit is contained in:
parent
d0ff2ee041
commit
4ffadb74b3
3 changed files with 10 additions and 50 deletions
|
@ -299,7 +299,7 @@ send_cert_back (ctrl_t ctrl, const char *id, void *assuan_context)
|
|||
/* Perform the learn operation. If ASSUAN_CONTEXT is not NULL and
|
||||
SEND is true all new certificates are send back via Assuan. */
|
||||
int
|
||||
agent_handle_learn (ctrl_t ctrl, int send, void *assuan_context)
|
||||
agent_handle_learn (ctrl_t ctrl, int send, void *assuan_context, int force)
|
||||
{
|
||||
int rc;
|
||||
|
||||
|
@ -399,7 +399,7 @@ agent_handle_learn (ctrl_t ctrl, int send, void *assuan_context)
|
|||
for (p=item->hexgrip, i=0; i < 20; p += 2, i++)
|
||||
grip[i] = xtoi_2 (p);
|
||||
|
||||
if (!agent_key_available (grip))
|
||||
if (!force && !agent_key_available (grip))
|
||||
continue; /* The key is already available. */
|
||||
|
||||
/* Unknown key - store it. */
|
||||
|
@ -430,7 +430,7 @@ agent_handle_learn (ctrl_t ctrl, int send, void *assuan_context)
|
|||
n = gcry_sexp_canon_len (shdkey, 0, NULL, NULL);
|
||||
assert (n);
|
||||
|
||||
rc = agent_write_private_key (grip, shdkey, n, 0);
|
||||
rc = agent_write_private_key (grip, shdkey, n, force);
|
||||
xfree (shdkey);
|
||||
if (rc)
|
||||
{
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue