You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
47 lines
1.2 KiB
47 lines
1.2 KiB
diff --git a/src/p11tool.c b/src/p11tool.c |
|
index 2abf23a27..a6fce78e3 100644 |
|
--- a/src/p11tool.c |
|
+++ b/src/p11tool.c |
|
@@ -68,7 +68,7 @@ int main(int argc, char **argv) |
|
} |
|
|
|
static |
|
-unsigned opt_to_flags(void) |
|
+unsigned opt_to_flags(common_info_st *cinfo) |
|
{ |
|
unsigned flags = 0; |
|
|
|
@@ -78,6 +78,12 @@ unsigned opt_to_flags(void) |
|
} else { |
|
flags |= GNUTLS_PKCS11_OBJ_FLAG_MARK_NOT_PRIVATE; |
|
} |
|
+ } else { /* if not given mark as private the private objects, and public the public ones */ |
|
+ if (cinfo->privkey) |
|
+ flags |= GNUTLS_PKCS11_OBJ_FLAG_MARK_PRIVATE; |
|
+ else if (cinfo->pubkey || cinfo->cert) |
|
+ flags |= GNUTLS_PKCS11_OBJ_FLAG_MARK_NOT_PRIVATE; |
|
+ /* else set the defaults of the token */ |
|
} |
|
|
|
if (ENABLED_OPT(MARK_TRUSTED)) |
|
@@ -166,8 +172,6 @@ static void cmd_parser(int argc, char **argv) |
|
|
|
memset(&cinfo, 0, sizeof(cinfo)); |
|
|
|
- flags = opt_to_flags(); |
|
- |
|
if (HAVE_OPT(SECRET_KEY)) |
|
cinfo.secret_key = OPT_ARG(SECRET_KEY); |
|
|
|
@@ -227,6 +231,8 @@ static void cmd_parser(int argc, char **argv) |
|
sec_param = OPT_ARG(SEC_PARAM); |
|
} |
|
|
|
+ flags = opt_to_flags(&cinfo); |
|
+ |
|
if (debug > 4) { |
|
if (HAVE_OPT(MARK_PRIVATE)) |
|
fprintf(stderr, "Private: %s\n", |
|
-- |
|
2.14.3 |
|
|
|
|