diff --git a/doc/tools/pkcs15-init.1.xml b/doc/tools/pkcs15-init.1.xml
index 8f396c26..7b28af66 100644
--- a/doc/tools/pkcs15-init.1.xml
+++ b/doc/tools/pkcs15-init.1.xml
@@ -483,6 +483,13 @@
+
+
+
+
+ Do not prompt the user; if no PINs supplied, pinpad will be used.
+
+
diff --git a/doc/tools/pkcs15-tool.1.xml b/doc/tools/pkcs15-tool.1.xml
index ae471f85..2d8a62c9 100644
--- a/doc/tools/pkcs15-tool.1.xml
+++ b/doc/tools/pkcs15-tool.1.xml
@@ -267,6 +267,13 @@
(without 'auth-id' the first non-SO, non-Unblock PIN will be verified)
+
+
+
+
+ Do not prompt the user; if no PINs supplied, pinpad will be used.
+
+
diff --git a/src/tools/pkcs15-init.c b/src/tools/pkcs15-init.c
index c0673459..a1b183d5 100644
--- a/src/tools/pkcs15-init.c
+++ b/src/tools/pkcs15-init.c
@@ -144,13 +144,14 @@ enum {
OPT_MD_CONTAINER_GUID,
OPT_VERSION,
- OPT_PIN1 = 0x10000, /* don't touch these values */
- OPT_PUK1 = 0x10001,
- OPT_PIN2 = 0x10002,
- OPT_PUK2 = 0x10003,
- OPT_SERIAL = 0x10004,
- OPT_NO_SOPIN = 0x10005,
- OPT_NO_PROMPT= 0x10006
+ OPT_PIN1 = 0x10000, /* don't touch these values */
+ OPT_PUK1 = 0x10001,
+ OPT_PIN2 = 0x10002,
+ OPT_PUK2 = 0x10003,
+ OPT_SERIAL = 0x10004,
+ OPT_NO_SOPIN = 0x10005,
+ OPT_USE_PINPAD= 0x10006,
+ OPT_USE_PINPAD_DEPRECATED
};
const struct option options[] = {
@@ -201,7 +202,8 @@ const struct option options[] = {
{ "insecure", no_argument, NULL, OPT_INSECURE },
{ "use-default-transport-keys",
no_argument, NULL, 'T' },
- { "no-prompt", no_argument, NULL, OPT_NO_PROMPT },
+ { "use-pinpad", no_argument, NULL, OPT_USE_PINPAD },
+ { "no-prompt", no_argument, NULL, OPT_USE_PINPAD_DEPRECATED },
{ "profile", required_argument, NULL, 'p' },
{ "card-profile", required_argument, NULL, 'c' },
@@ -264,6 +266,7 @@ static const char * option_help[] = {
"Insecure mode: do not require a PIN for private key",
"Do not ask for transport keys if the driver thinks it knows the key",
"Do not prompt the user; if no PINs supplied, pinpad will be used",
+ NULL,
"Specify the general profile to use",
"Specify the card profile to use",
@@ -344,7 +347,7 @@ static unsigned int opt_actions;
static int opt_extractable = 0,
opt_insecure = 0,
opt_authority = 0,
- opt_no_prompt = 0,
+ opt_use_pinpad = 0,
opt_no_sopin = 0,
opt_use_defkeys = 0,
opt_wait = 0,
@@ -804,14 +807,14 @@ do_init_app(struct sc_profile *profile)
so_puk_disabled = 1;
- if (!opt_pins[2] && !opt_no_prompt && !opt_no_sopin) {
+ if (!opt_pins[2] && !opt_use_pinpad && !opt_no_sopin) {
r = get_new_pin(&hints, role, "pin", &pins[2]);
if (r < 0)
goto failed;
opt_pins[2] = pins[2];
}
- if (!so_puk_disabled && opt_pins[2] && !opt_pins[3] && !opt_no_prompt) {
+ if (!so_puk_disabled && opt_pins[2] && !opt_pins[3] && !opt_use_pinpad) {
sc_pkcs15init_get_pin_info(profile, SC_PKCS15INIT_SO_PUK, &info);
if (!(info.attrs.pin.flags & SC_PKCS15_PIN_FLAG_SO_PIN))
@@ -1892,7 +1895,7 @@ get_pin_callback(struct sc_profile *profile,
char prompt[128];
int r;
- if (opt_no_prompt)
+ if (opt_use_pinpad)
return SC_ERROR_OBJECT_NOT_FOUND;
snprintf(prompt, sizeof(prompt), "%s required", name);
@@ -1958,9 +1961,9 @@ get_key_callback(struct sc_profile *profile,
}
printf("Transport key (%s #%d) required.\n", kind, reference);
- if (opt_no_prompt) {
+ if (opt_use_pinpad) {
printf("\n"
- "Refusing to prompt for transport key because --no-prompt\n"
+ "Refusing to prompt for transport key because --use-pinpad\n"
"was specified on the command line. Please invoke without\n"
"--no-prompt, or specify the --use-default-transport-keys\n"
"option to use the default transport keys without being\n"
@@ -2627,8 +2630,10 @@ handle_option(const struct option *opt)
case OPT_NO_SOPIN:
opt_no_sopin = 1;
break;
- case OPT_NO_PROMPT:
- opt_no_prompt = 1;
+ case OPT_USE_PINPAD_DEPRECATED:
+ fprintf(stderr, "'--no-prompt' is deprecated , use '--use-pinpad' instead.\n");
+ case OPT_USE_PINPAD:
+ opt_use_pinpad = 1;
break;
case OPT_ASSERT_PRISTINE:
this_action = ACTION_ASSERT_PRISTINE;
@@ -2969,7 +2974,7 @@ static int verify_pin(struct sc_pkcs15_card *p15card, char *auth_id_str)
else {
sc_ui_hints_t hints;
- if (opt_no_prompt)
+ if (opt_use_pinpad)
return SC_ERROR_OBJECT_NOT_FOUND;
if (pin_obj->label[0])
diff --git a/src/tools/pkcs15-tool.c b/src/tools/pkcs15-tool.c
index 4693f21d..7c4c168e 100644
--- a/src/tools/pkcs15-tool.c
+++ b/src/tools/pkcs15-tool.c
@@ -76,7 +76,7 @@ static const char * opt_pin = NULL;
static const char * opt_puk = NULL;
static int compact = 0;
static int verbose = 0;
-static int opt_no_prompt = 0;
+static int opt_use_pinpad = 0;
#if defined(ENABLE_OPENSSL) && (defined(_WIN32) || defined(HAVE_INTTYPES_H))
static int opt_rfc4716 = 0;
#endif
@@ -101,7 +101,8 @@ enum {
OPT_BIND_TO_AID,
OPT_LIST_APPLICATIONS,
OPT_LIST_SKEYS,
- OPT_NO_PROMPT,
+ OPT_USE_PINPAD,
+ OPT_USE_PINPAD_DEPRECATED,
OPT_RAW,
OPT_PRINT_VERSION,
OPT_LIST_INFO,
@@ -147,7 +148,8 @@ static const struct option options[] = {
{ "aid", required_argument, NULL, OPT_BIND_TO_AID },
{ "wait", no_argument, NULL, 'w' },
{ "verbose", no_argument, NULL, 'v' },
- { "no-prompt", no_argument, NULL, OPT_NO_PROMPT },
+ { "use-pinpad", no_argument, NULL, OPT_USE_PINPAD },
+ { "no-prompt", no_argument, NULL, OPT_USE_PINPAD_DEPRECATED },
{ NULL, 0, NULL, 0 }
};
@@ -188,6 +190,7 @@ static const char *option_help[] = {
"Wait for card insertion",
"Verbose operation. Use several times to enable debug output.",
"Do not prompt the user; if no PINs supplied, pinpad will be used.",
+ NULL,
NULL
};
@@ -1174,7 +1177,7 @@ static u8 * get_pin(const char *prompt, sc_pkcs15_object_t *pin_obj)
size_t len = 0;
int r;
- if (opt_no_prompt) {
+ if (opt_use_pinpad) {
// defer entry of the PIN to the readers pinpad.
if (verbose)
printf("%s [%.*s]: entry deferred to the reader keypad\n", prompt, (int) sizeof pin_obj->label, pin_obj->label);
@@ -2092,8 +2095,10 @@ int main(int argc, char * const argv[])
case 'w':
opt_wait = 1;
break;
- case OPT_NO_PROMPT:
- opt_no_prompt = 1;
+ case OPT_USE_PINPAD_DEPRECATED:
+ fprintf(stderr, "'--no-prompt' is deprecated , use '--use-pinpad' instead.\n");
+ case OPT_USE_PINPAD:
+ opt_use_pinpad = 1;
break;
}
}