summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDamien Miller <djm@cvs.openbsd.org>2013-12-19 00:10:31 +0000
committerDamien Miller <djm@cvs.openbsd.org>2013-12-19 00:10:31 +0000
commitd4dff735c07177bd7a94db2df97bd0cd68677665 (patch)
treec304e8a772c279eb8a08d013b61181a8ceccbdb0
parentbd2ea4d81732fc86a19ee117a516533f0b9d1f29 (diff)
skip requesting smartcard PIN when removing keys from agent; bz#2187
patch from jay AT slushpupie.com; ok dtucker
-rw-r--r--usr.bin/ssh/ssh-add.c15
1 files changed, 9 insertions, 6 deletions
diff --git a/usr.bin/ssh/ssh-add.c b/usr.bin/ssh/ssh-add.c
index fdbc052bd38..9f70fe137c0 100644
--- a/usr.bin/ssh/ssh-add.c
+++ b/usr.bin/ssh/ssh-add.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: ssh-add.c,v 1.107 2013/12/15 18:17:26 pascal Exp $ */
+/* $OpenBSD: ssh-add.c,v 1.108 2013/12/19 00:10:30 djm Exp $ */
/*
* Author: Tatu Ylonen <ylo@cs.hut.fi>
* Copyright (c) 1995 Tatu Ylonen <ylo@cs.hut.fi>, Espoo, Finland
@@ -287,14 +287,17 @@ add_file(AuthenticationConnection *ac, const char *filename, int key_only)
static int
update_card(AuthenticationConnection *ac, int add, const char *id)
{
- char *pin;
+ char *pin = NULL;
int ret = -1;
- pin = read_passphrase("Enter passphrase for PKCS#11: ", RP_ALLOW_STDIN);
- if (pin == NULL)
- return -1;
+ if (add) {
+ if ((pin = read_passphrase("Enter passphrase for PKCS#11: ",
+ RP_ALLOW_STDIN)) == NULL)
+ return -1;
+ }
- if (ssh_update_card(ac, add, id, pin, lifetime, confirm)) {
+ if (ssh_update_card(ac, add, id, pin == NULL ? "" : pin,
+ lifetime, confirm)) {
fprintf(stderr, "Card %s: %s\n",
add ? "added" : "removed", id);
ret = 0;