summaryrefslogtreecommitdiff
path: root/usr/src/cmd/cmd-crypto/pktool/common.c
diff options
context:
space:
mode:
Diffstat (limited to 'usr/src/cmd/cmd-crypto/pktool/common.c')
-rw-r--r--usr/src/cmd/cmd-crypto/pktool/common.c22
1 files changed, 22 insertions, 0 deletions
diff --git a/usr/src/cmd/cmd-crypto/pktool/common.c b/usr/src/cmd/cmd-crypto/pktool/common.c
index 95c5e2e229..55eb70826f 100644
--- a/usr/src/cmd/cmd-crypto/pktool/common.c
+++ b/usr/src/cmd/cmd-crypto/pktool/common.c
@@ -1174,3 +1174,25 @@ verify_ekunames(char *ekuliststr, EKU_LIST **ekulist)
return (rv);
}
+
+KMF_RETURN
+token_auth_needed(KMF_HANDLE_T handle, char *tokenlabel, int *auth)
+{
+ CK_TOKEN_INFO info;
+ CK_SLOT_ID slot;
+ CK_RV ckrv;
+ KMF_RETURN rv;
+
+ *auth = 0;
+ rv = kmf_pk11_token_lookup(handle, tokenlabel, &slot);
+ if (rv != KMF_OK)
+ return (rv);
+
+ ckrv = C_GetTokenInfo(slot, &info);
+ if (ckrv != KMF_OK)
+ return (KMF_ERR_INTERNAL);
+
+ *auth = (info.flags & CKF_LOGIN_REQUIRED);
+
+ return (KMF_OK);
+}