ansasaki / rpms / libp11

Forked from rpms/libp11 6 years ago
Clone
Blob Blame History Raw
diff --git a/examples/listkeys.c b/examples/listkeys.c
index 5e4249b..38e16b9 100644
--- a/examples/listkeys.c
+++ b/examples/listkeys.c
@@ -77,13 +77,6 @@ int main(int argc, char *argv[])
 	printf("Slot token model.......: %s\n", slot->token->model);
 	printf("Slot token serialnr....: %s\n", slot->token->serialnr);
 
-	/* get public keys */
-	rc = PKCS11_enumerate_public_keys(slot->token, &keys, &nkeys);
-	error_queue("PKCS11_enumerate_public_keys");
-	CHECK_ERR(rc < 0, "PKCS11_enumerate_public_keys failed", 4);
-	CHECK_ERR(nkeys == 0, "No public keys found", 5);
-	list_keys("Public keys", keys, nkeys);
-
 	if (slot->token->loginRequired && argc > 2) {
 		strcpy(password, argv[2]);
 		/* perform pkcs #11 login */
@@ -93,6 +86,13 @@ int main(int argc, char *argv[])
 		CHECK_ERR(rc < 0, "PKCS11_login failed", 6);
 	}
 
+	/* get public keys */
+	rc = PKCS11_enumerate_public_keys(slot->token, &keys, &nkeys);
+	error_queue("PKCS11_enumerate_public_keys");
+	CHECK_ERR(rc < 0, "PKCS11_enumerate_public_keys failed", 4);
+	CHECK_ERR(nkeys == 0, "No public keys found", 5);
+	list_keys("Public keys", keys, nkeys);
+
 	/* get private keys */
 	rc = PKCS11_enumerate_keys(slot->token, &keys, &nkeys);
 	error_queue("PKCS11_enumerate_keys");