summaryrefslogtreecommitdiff
path: root/ssh-agent.c
diff options
context:
space:
mode:
authorBen Lindstrom <mouring@eviladmin.org>2002-03-22 03:51:06 +0000
committerBen Lindstrom <mouring@eviladmin.org>2002-03-22 03:51:06 +0000
commitba72d30aa541015c4e17c21cc1328c7db399d26a (patch)
tree48d275fba1025501485f2f67a6a3b6140a4e63ba /ssh-agent.c
parent266ec63eb36e2d3154ead355ce67cdee5c9394a3 (diff)
- rees@cvs.openbsd.org 2002/03/21 22:44:05
[authfd.c authfd.h ssh-add.c ssh-agent.c ssh.c] Add PIN-protection for secret key.
Diffstat (limited to 'ssh-agent.c')
-rw-r--r--ssh-agent.c14
1 files changed, 9 insertions, 5 deletions
diff --git a/ssh-agent.c b/ssh-agent.c
index 555396fc5..1874eb152 100644
--- a/ssh-agent.c
+++ b/ssh-agent.c
@@ -34,7 +34,7 @@
34 */ 34 */
35 35
36#include "includes.h" 36#include "includes.h"
37RCSID("$OpenBSD: ssh-agent.c,v 1.82 2002/03/04 17:27:39 stevesk Exp $"); 37RCSID("$OpenBSD: ssh-agent.c,v 1.83 2002/03/21 22:44:05 rees Exp $");
38 38
39#if defined(HAVE_SYS_QUEUE_H) && !defined(HAVE_BOGUS_SYS_QUEUE_H) 39#if defined(HAVE_SYS_QUEUE_H) && !defined(HAVE_BOGUS_SYS_QUEUE_H)
40#include <sys/queue.h> 40#include <sys/queue.h>
@@ -454,12 +454,14 @@ process_add_smartcard_key (SocketEntry *e)
454{ 454{
455 Idtab *tab; 455 Idtab *tab;
456 Key *n = NULL, *k = NULL; 456 Key *n = NULL, *k = NULL;
457 char *sc_reader_id = NULL; 457 char *sc_reader_id = NULL, *pin;
458 int success = 0; 458 int success = 0;
459 459
460 sc_reader_id = buffer_get_string(&e->input, NULL); 460 sc_reader_id = buffer_get_string(&e->input, NULL);
461 k = sc_get_key(sc_reader_id); 461 pin = buffer_get_string(&e->input, NULL);
462 k = sc_get_key(sc_reader_id, pin);
462 xfree(sc_reader_id); 463 xfree(sc_reader_id);
464 xfree(pin);
463 465
464 if (k == NULL) { 466 if (k == NULL) {
465 error("sc_get_pubkey failed"); 467 error("sc_get_pubkey failed");
@@ -505,11 +507,13 @@ process_remove_smartcard_key(SocketEntry *e)
505{ 507{
506 Key *k = NULL; 508 Key *k = NULL;
507 int success = 0; 509 int success = 0;
508 char *sc_reader_id = NULL; 510 char *sc_reader_id = NULL, *pin;
509 511
510 sc_reader_id = buffer_get_string(&e->input, NULL); 512 sc_reader_id = buffer_get_string(&e->input, NULL);
511 k = sc_get_key(sc_reader_id); 513 pin = buffer_get_string(&e->input, NULL);
514 k = sc_get_key(sc_reader_id, pin);
512 xfree(sc_reader_id); 515 xfree(sc_reader_id);
516 xfree(pin);
513 517
514 if (k == NULL) { 518 if (k == NULL) {
515 error("sc_get_pubkey failed"); 519 error("sc_get_pubkey failed");