diff options
Diffstat (limited to 'usr/src/cmd/cmd-crypto/pktool/common.c')
-rw-r--r-- | usr/src/cmd/cmd-crypto/pktool/common.c | 22 |
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); +} |