summaryrefslogtreecommitdiff
path: root/src/key.c
diff options
context:
space:
mode:
authorStef Walter <stef@memberwebs.com>2008-12-24 21:18:39 +0000
committerStef Walter <stef@memberwebs.com>2008-12-24 21:18:39 +0000
commit8804d957de520b394b669e60b4cb1877b80778a2 (patch)
tree0533d7ea50e17f5a306ce0b3fda5d55d80365431 /src/key.c
parentcdaffa87e8578503bc2f86fe1c0a3e000233666d (diff)
Add generic crypto testing.
Diffstat (limited to 'src/key.c')
-rw-r--r--src/key.c15
1 files changed, 8 insertions, 7 deletions
diff --git a/src/key.c b/src/key.c
index 977877a..6f182e6 100644
--- a/src/key.c
+++ b/src/key.c
@@ -760,13 +760,14 @@ p11t_key_login_context_specific (CK_SESSION_HANDLE session, CK_OBJECT_HANDLE key
assert(session != CK_INVALID);
assert(p11t_module_funcs);
- attr.type = CKA_ALWAYS_AUTHENTICATE;
- attr.ulValueLen = sizeof (always);
- attr.pValue = &always;
-
- if (!p11t_object_get (session, key, &attr, 1) || !always) {
- p11t_check_fail ("Key wants context specific login, but CKA_ALWAYS_AUTHENTICATE not set");
- return CKR_ATTRIBUTE_VALUE_INVALID;
+ if (key != CK_INVALID) {
+ attr.type = CKA_ALWAYS_AUTHENTICATE;
+ attr.ulValueLen = sizeof (always);
+ attr.pValue = &always;
+ if (!p11t_object_get (session, key, &attr, 1) || !always) {
+ p11t_check_fail ("Key wants context specific login, but CKA_ALWAYS_AUTHENTICATE not set");
+ return CKR_ATTRIBUTE_VALUE_INVALID;
+ }
}
rv = (p11t_module_funcs->C_GetSessionInfo)(session, &info);