From 51c9da45018480888888d451722bb23b6f1519d9 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Love=20H=C3=B6rnquist=20=C3=85strand?= Date: Wed, 16 Jan 2008 14:22:36 +0000 Subject: [PATCH] Only log in if needed. git-svn-id: svn://svn.h5l.se/heimdal/trunk/heimdal@22462 ec53bebd-3082-4978-b11e-865c3cabbd6b --- lib/hx509/test_soft_pkcs11.c | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/lib/hx509/test_soft_pkcs11.c b/lib/hx509/test_soft_pkcs11.c index 98b69883a..8028b92a9 100644 --- a/lib/hx509/test_soft_pkcs11.c +++ b/lib/hx509/test_soft_pkcs11.c @@ -116,13 +116,19 @@ main(int argc, char **argv) if (ret != CKR_OK) errx(1, "C_OpenSession failed: %d", (int)ret); - ret = C_Login(session, CKU_USER, (unsigned char*)"foobar", 6); - if (ret != CKR_OK) - errx(1, "C_Login failed: %d", (int)ret); + ret = C_GetTokenInfo(slot, &token_info); + if (ret) + errx(1, "C_GetTokenInfo1 failed: %d", (int)ret); + + if (token_info.flags & CKF_LOGIN_REQUIRED) { + ret = C_Login(session, CKU_USER, (unsigned char*)"foobar", 6); + if (ret != CKR_OK) + errx(1, "C_Login failed: %d", (int)ret); + } ret = C_GetTokenInfo(slot, &token_info); if (ret) - errx(1, "C_GetTokenInfo failed: %d", (int)ret); + errx(1, "C_GetTokenInfo2 failed: %d", (int)ret); if (token_info.flags & CKF_LOGIN_REQUIRED) errx(1, "login required, even after C_Login"); -- 2.11.4.GIT