#define GNUTLS_PKCS11_OBJ_FLAG_LOGIN (1<<0) /* force login in the token for the operation */
#define GNUTLS_PKCS11_OBJ_FLAG_MARK_TRUSTED (1<<1) /* object marked as trusted */
#define GNUTLS_PKCS11_OBJ_FLAG_MARK_SENSITIVE (1<<2) /* object marked as sensitive (unexportable) */
+#define GNUTLS_PKCS11_OBJ_FLAG_LOGIN_SO (1<<3) /* force login as a security officer in the token for the operation */
/**
* gnutls_pkcs11_url_type_t:
if (flags & GNUTLS_PKCS11_OBJ_FLAG_LOGIN)
ret_flags |= SESSION_LOGIN;
+ else if (flags & GNUTLS_PKCS11_OBJ_FLAG_LOGIN_SO)
+ ret_flags |= SESSION_LOGIN|SESSION_SO;
return ret_flags;
}
unsigned int obj_flags = 0;
if (login)
- obj_flags = GNUTLS_PKCS11_OBJ_FLAG_LOGIN;
+ {
+ if (type == PKCS11_TYPE_TRUSTED)
+ obj_flags = GNUTLS_PKCS11_OBJ_FLAG_LOGIN_SO;
+ else
+ obj_flags = GNUTLS_PKCS11_OBJ_FLAG_LOGIN;
+ }
pkcs11_common ();