version 1.91, 2009/08/27 17:44:52 |
version 1.92, 2010/02/08 10:50:20 |
|
|
char *pin; |
char *pin; |
int ret = -1; |
int ret = -1; |
|
|
pin = read_passphrase("Enter passphrase for smartcard: ", RP_ALLOW_STDIN); |
pin = read_passphrase("Enter passphrase for PKCS#11: ", RP_ALLOW_STDIN); |
if (pin == NULL) |
if (pin == NULL) |
return -1; |
return -1; |
|
|
|
|
fprintf(stderr, " -X Unlock agent.\n"); |
fprintf(stderr, " -X Unlock agent.\n"); |
fprintf(stderr, " -t life Set lifetime (in seconds) when adding identities.\n"); |
fprintf(stderr, " -t life Set lifetime (in seconds) when adding identities.\n"); |
fprintf(stderr, " -c Require confirmation to sign using identities\n"); |
fprintf(stderr, " -c Require confirmation to sign using identities\n"); |
#ifdef SMARTCARD |
fprintf(stderr, " -s pkcs11 Add keys from PKCS#11 provider.\n"); |
fprintf(stderr, " -s reader Add key in smartcard reader.\n"); |
fprintf(stderr, " -e pkcs11 Remove keys provided by PKCS#11 provider.\n"); |
fprintf(stderr, " -e reader Remove key in smartcard reader.\n"); |
|
#endif |
|
} |
} |
|
|
int |
int |
|
|
extern char *optarg; |
extern char *optarg; |
extern int optind; |
extern int optind; |
AuthenticationConnection *ac = NULL; |
AuthenticationConnection *ac = NULL; |
char *sc_reader_id = NULL; |
char *pkcs11provider = NULL; |
int i, ch, deleting = 0, ret = 0; |
int i, ch, deleting = 0, ret = 0; |
|
|
/* Ensure that fds 0, 1 and 2 are open or directed to /dev/null */ |
/* Ensure that fds 0, 1 and 2 are open or directed to /dev/null */ |
|
|
ret = 1; |
ret = 1; |
goto done; |
goto done; |
case 's': |
case 's': |
sc_reader_id = optarg; |
pkcs11provider = optarg; |
break; |
break; |
case 'e': |
case 'e': |
deleting = 1; |
deleting = 1; |
sc_reader_id = optarg; |
pkcs11provider = optarg; |
break; |
break; |
case 't': |
case 't': |
if ((lifetime = convtime(optarg)) == -1) { |
if ((lifetime = convtime(optarg)) == -1) { |
|
|
} |
} |
argc -= optind; |
argc -= optind; |
argv += optind; |
argv += optind; |
if (sc_reader_id != NULL) { |
if (pkcs11provider != NULL) { |
if (update_card(ac, !deleting, sc_reader_id) == -1) |
if (update_card(ac, !deleting, pkcs11provider) == -1) |
ret = 1; |
ret = 1; |
goto done; |
goto done; |
} |
} |