return modinfo;
}
+/**
+ * gp11_module_get_slots:
+ * @module: The module for which to get the slots.
+ * @token_present: Whether to limit only to slots with a token present.
+ *
+ * Get the GP11Slot objects for a given module.
+ *
+ * Return value: The possibly empty list of slots. Release this with gp11_list_unref_free().
+ */
GList*
gp11_module_get_slots (GP11Module *module, gboolean token_present)
{
* PUBLIC
*/
+/**
+ * gp11_object_from_handle:
+ * @session: The session on which this object is available.
+ * @handle: The raw handle of the object.
+ *
+ * Initialize a GP11Object from a raw PKCS#11 handle. Normally you would use
+ * gp11_session_create_object() or gp11_session_find_objects() to access objects.
+ *
+ * Return value: The new GP11Object. You should use g_object_unref() when done with this object.
+ **/
GP11Object*
gp11_object_from_handle (GP11Session *session, CK_OBJECT_HANDLE handle)
{
return g_object_new (GP11_TYPE_OBJECT, "module", session->module, "handle", handle, "session", session, NULL);
}
+/**
+ * gp11_objects_from_handle_array:
+ * @session: The session on which these objects are available.
+ * @attr: The raw object handles, contained in an attribute.
+ *
+ * Initialize a list of GP11Object from raw PKCS#11 handles contained inside
+ * of an attribute. The attribute must contain contiguous CK_OBJECT_HANDLE
+ * handles in an array.
+ *
+ * Return value: The list of GP11Object. You should use gp11_list_unref_free() when done with
+ * this list.
+ **/
GList*
gp11_objects_from_handle_array (GP11Session *session, const GP11Attribute *attr)
{
return g_list_reverse (results);
}
+/**
+ * gp11_object_get_handle:
+ * @object: The object.
+ *
+ * Get the raw PKCS#11 handle of a GP11Object.
+ *
+ * Return value: The raw object handle.
+ **/
CK_OBJECT_HANDLE
gp11_object_get_handle (GP11Object *object)
{
return (args->base.pkcs11->C_DestroyObject) (args->base.handle, args->object);
}
+/**
+ * gp11_object_destroy:
+ * @object: The object to destroy.
+ * @err: A location to return an error.
+ *
+ * Destroy a PKCS#11 object, deleting it from storage or the session.
+ * This call may block for an indefinite period.
+ *
+ * Return value: Whether the call was successful or not.
+ **/
gboolean
gp11_object_destroy (GP11Object *object, GError **err)
{
return gp11_object_destroy_full (object, NULL, err);
}
+/**
+ * gp11_object_destroy_full:
+ * @object: The object to destroy.
+ * @cancellable: Optional cancellable object, or NULL to ignore.
+ * @err: A location to return an error.
+ *
+ * Destroy a PKCS#11 object, deleting it from storage or the session.
+ * This call may block for an indefinite period.
+ *
+ * Return value: Whether the call was successful or not.
+ **/
gboolean
gp11_object_destroy_full (GP11Object *object, GCancellable *cancellable, GError **err)
{
return _gp11_call_sync (object->session, perform_destroy, &args, cancellable, err);
}
+/**
+ * gp11_object_destroy_async:
+ * @object: The object to destroy.
+ * @cancellable: Optional cancellable object, or NULL to ignore.
+ * @callback: Callback which is called when operation completes.
+ * @user_data: Data to pass to the callback.
+ *
+ * Destroy a PKCS#11 object, deleting it from storage or the session.
+ * This call will return immediately and complete asynchronously.
+ **/
void
gp11_object_destroy_async (GP11Object *object, GCancellable *cancellable,
GAsyncReadyCallback callback, gpointer user_data)
_gp11_call_async_go (args, cancellable, callback, user_data);
}
+/**
+ * gp11_object_destroy_finish:
+ * @object: The object being destroyed.
+ * @result: The result of the destory operation passed to the callback.
+ * @err: A location to store an error.
+ *
+ * Get the status of the operation to destroy a PKCS#11 object, begun with
+ * gp11_object_destroy_async().
+ *
+ * Return value: Whether the object was destroyed successfully or not.
+ */
gboolean
gp11_object_destroy_finish (GP11Object *object, GAsyncResult *result, GError **err)
{
gp11_attributes_count (args->attrs));
}
+/**
+ * gp11_object_set:
+ * @object: The object to set attributes on.
+ * @err: A location to return an error.
+ * ...: The attributes to set.
+ *
+ * Set PKCS#11 attributes on an object.
+ * This call may block for an indefinite period.
+ *
+ * The arguments must be triples of: attribute type, data type, value
+ *
+ * <para>The variable argument list should contain:
+ * <variablelist>
+ * <varlistentry>
+ * <term>a)</term>
+ * <listitem><para>The gulong attribute type (ie: CKA_LABEL). </para></listitem>
+ * </varlistentry>
+ * <varlistentry>
+ * <term>b)</term>
+ * <listitem><para>The attribute data type (one of GP11_BOOLEAN, GP11_ULONG,
+ * GP11_STRING, GP11_DATE) orthe raw attribute value length.</para></listitem>
+ * </varlistentry>
+ * <varlistentry>
+ * <term>c)</term>
+ * <listitem><para>The attribute value, either a gboolean, gulong, gchar*, GDate* or
+ * a pointer to a raw attribute value.</para></listitem>
+ * </varlistentry>
+ * </variablelist>
+ * The variable argument list should be terminated with GP11_INVALID.</para>
+ *
+ * Return value: Whether the call was successful or not.
+ **/
gboolean
gp11_object_set (GP11Object *object, GError **err, ...)
{
return rv;
}
+/**
+ * gp11_object_set_full:
+ * @object: The object to set attributes on.
+ * @attrs: The attributes to set on the object.
+ * @cancellable: Optional cancellable object, or NULL to ignore.
+ * @err: A location to return an error.
+ *
+ * Set PKCS#11 attributes on an object. This call may block for an indefinite period.
+ *
+ * Return value: Whether the call was successful or not.
+ **/
gboolean
gp11_object_set_full (GP11Object *object, GP11Attributes *attrs,
GCancellable *cancellable, GError **err)
return _gp11_call_sync (object->session, perform_set_attributes, &args, cancellable, err);
}
+/**
+ * gp11_object_set_async:
+ * @object: The object to set attributes on.
+ * @attrs: The attributes to set on the object.
+ * @cancellable: Optional cancellable object, or NULL to ignore.
+ * @callback: Callback which is called when operation completes.
+ * @user_data: Data to pass to the callback.
+ *
+ * Set PKCS#11 attributes on an object. This call will return
+ * immediately and completes asynchronously.
+ **/
void
gp11_object_set_async (GP11Object *object, GP11Attributes *attrs, GCancellable *cancellable,
GAsyncReadyCallback callback, gpointer user_data)
_gp11_call_async_go (args, cancellable, callback, user_data);
}
+/**
+ * gp11_object_set_finish:
+ * @object: The object to set attributes on.
+ * @result: The result of the destory operation passed to the callback.
+ * @err: A location to store an error.
+ *
+ * Get the status of the operation to set attributes on a PKCS#11 object,
+ * begun with gp11_object_set_async().
+ *
+ * Return value: Whether the attributes were successfully set on the object or not.
+ */
gboolean
gp11_object_set_finish (GP11Object *object, GAsyncResult *result, GError **err)
{
return rv;
}
+/**
+ * gp11_object_get:
+ * @object: The object to get attributes from.
+ * @err: A location to store an error.
+ * ...: The attribute types to get.
+ *
+ * Get the specified attributes from the object. This call may
+ * block for an indefinite period.
+ *
+ * Note that the returned attributes are not required to be
+ * in the order they were requested.
+ *
+ * Return value: The resulting PKCS#11 attributes, or NULL if an error occurred.
+ **/
GP11Attributes*
gp11_object_get (GP11Object *object, GError **err, ...)
{
return result;
}
+/**
+ * gp11_object_get:
+ * @object: The object to get attributes from.
+ * @attr_types: The attributes to get.
+ * @n_attr_types: The number of attributes to get.
+ * @cancellable: Optional cancellation object, or NULL.
+ * @err: A location to store an error.
+ *
+ * Get the specified attributes from the object. This call may
+ * block for an indefinite period.
+ *
+ * Note that the returned attributes are not required to be
+ * in the order they were requested.
+ *
+ * Return value: The resulting PKCS#11 attributes, or NULL if an error occurred.
+ **/
GP11Attributes*
gp11_object_get_full (GP11Object *object, const gulong *attr_types, gsize n_attr_types,
GCancellable *cancellable, GError **err)
return args.results;
}
+/**
+ * gp11_object_get_async:
+ * @object: The object to get attributes from.
+ * @attr_types: The attributes to get.
+ * @n_attr_types: The number of attributes to get.
+ * @cancellable: Optional cancellation object, or NULL.
+ * @callback: A callback which is called when the operation completes.
+ * @user_data: Data to be passed to the callback.
+ *
+ * Get the specified attributes from the object. This call returns
+ * immediately and completes asynchronously.
+ **/
void
gp11_object_get_async (GP11Object *object, const gulong *attr_types, gsize n_attr_types,
GCancellable *cancellable, GAsyncReadyCallback callback, gpointer user_data)
_gp11_call_async_go (args, cancellable, callback, user_data);
}
+/**
+ * gp11_object_get_finish:
+ * @object: The object to get attributes from.
+ * @result: The result passed to the callback.
+ * @err: A location to store an error.
+ *
+ * Get the result of a get operation and return specified attributes from
+ * the object.
+ *
+ * Note that the returned attributes are not required to be
+ * in the order they were requested.
+ *
+ * Return value: The resulting PKCS#11 attributes, or NULL if an error occurred.
+ **/
GP11Attributes*
gp11_object_get_finish (GP11Object *object, GAsyncResult *result, GError **err)
{
return results;
}
+/**
+ * gp11_object_get_one:
+ * @object: The object to get an attribute from.
+ * @attr_type: The attribute to get.
+ * @err: A location to store an error.
+ *
+ * Get the specified attribute from the object. This call may
+ * block for an indefinite period.
+ *
+ * Return value: The resulting PKCS#11 attribute, or NULL if an error occurred.
+ **/
GP11Attribute*
gp11_object_get_one (GP11Object *object, gulong attr_type, GError **err)
{
return gp11_object_get_one_full (object, attr_type, NULL, err);
}
+/**
+ * gp11_object_get_one_full:
+ * @object: The object to get an attribute from.
+ * @attr_type: The attribute to get.
+ * @cancellable: Optional cancellation object, or NULL.
+ * @err: A location to store an error.
+ *
+ * Get the specified attribute from the object. This call may
+ * block for an indefinite period.
+ *
+ * Return value: The resulting PKCS#11 attribute, or NULL if an error occurred.
+ **/
GP11Attribute*
gp11_object_get_one_full (GP11Object *object, gulong attr_type,
GCancellable *cancellable, GError **err)
return attr;
}
+/**
+ * gp11_object_get_one_async:
+ * @object: The object to get an attribute from.
+ * @attr_type: The attribute to get.
+ * @cancellable: Optional cancellation object, or NULL.
+ * @callback: Called when the operation completes.
+ * @user_data: Data to be passed to the callback.
+ *
+ * Get the specified attribute from the object. This call will
+ * return immediately and complete asynchronously.
+ **/
void
gp11_object_get_one_async (GP11Object *object, gulong attr_type, GCancellable *cancellable,
GAsyncReadyCallback callback, gpointer user_data)
gp11_object_get_async (object, &attr_type, 1, cancellable, callback, user_data);
}
+/**
+ * gp11_object_get_one_finish:
+ * @object: The object to get an attribute from.
+ * @result: The result passed to the callback.
+ * @err: A location to store an error.
+ *
+ * Get the result of an operation to get an attribute from
+ * an object.
+ *
+ * Return value: The PKCS#11 attribute or NULL if an error occurred.
+ **/
+
GP11Attribute*
gp11_object_get_one_finish (GP11Object *object, GAsyncResult *result, GError **err)
{
* PUBLIC
*/
+/**
+ * gp11_session_info_free:
+ * @session_info: Session info to free.
+ *
+ * Free the GP11SessionInfo structure and all associated memory.
+ **/
void
gp11_session_info_free (GP11SessionInfo *session_info)
{
g_free (session_info);
}
+/**
+ * gp11_session_from_handle:
+ * @slot: The slot which the session belongs to.
+ * @handle: The raw PKCS#11 handle of the session.
+ *
+ * Initialize a GP11Session object from a raw PKCS#11 session handle.
+ * Usually one would use the gp11_slot_open_session() function to
+ * create a session.
+ *
+ * Return value: The new GP11Session object.
+ **/
GP11Session*
gp11_session_from_handle (GP11Slot *slot, CK_SESSION_HANDLE handle)
{
"handle", handle, "slot", slot, NULL);
}
+/**
+ * gp11_session_get_handle:
+ * @session: The session object.
+ *
+ * Get the raw PKCS#11 session handle from a GP11Session object.
+ *
+ * Return value: The raw session handle.
+ **/
CK_SESSION_HANDLE
gp11_session_get_handle (GP11Session *session)
{
return session->handle;
}
+/**
+ * gp11_session_get_info:
+ * @session: The session object.
+ *
+ * Get information about the session.
+ *
+ * Return value: The session info. Use the gp11_session_info_free() to release
+ * when done.
+ **/
GP11SessionInfo*
gp11_session_get_info (GP11Session *session)
{
(CK_BYTE_PTR)args->pin, args->n_pin);
}
+/**
+ * gp11_session_login:
+ * @session: Log into this session.
+ * @user_type: The type of login user.
+ * @pin: The user's PIN, or NULL for protected authentication path.
+ * @n_pin: The length of the PIN.
+ * @err: A location to return an error.
+ *
+ * Login the user on the session. This call may block
+ * for an indefinite period.
+ *
+ * Return value: Whether successful or not.
+ **/
gboolean
gp11_session_login (GP11Session *session, gulong user_type, const guchar *pin,
gsize n_pin, GError **err)
return gp11_session_login_full (session, user_type, pin, n_pin, NULL, err);
}
+/**
+ * gp11_session_login_full:
+ * @session: Log into this session.
+ * @user_type: The type of login user.
+ * @pin: The user's PIN, or NULL for protected authentication path.
+ * @n_pin: The length of the PIN.
+ * @cancellable: Optional cancellation object, or NULL.
+ * @err: A location to return an error.
+ *
+ * Login the user on the session. This call may block for
+ * an indefinite period.
+ *
+ * Return value: Whether successful or not.
+ **/
gboolean
gp11_session_login_full (GP11Session *session, gulong user_type, const guchar *pin,
gsize n_pin, GCancellable *cancellable, GError **err)
}
+/**
+ * gp11_session_login_async:
+ * @session: Log into this session.
+ * @user_type: The type of login user.
+ * @pin: The user's PIN, or NULL for protected authentication path.
+ * @n_pin: The length of the PIN.
+ * @cancellable: Optional cancellation object, or NULL.
+ * @callback: Called when the operation completes.
+ * @user_data: Data to pass to the callback.
+ *
+ * Login the user on the session. This call will return
+ * immediately and completes asynchronously.
+ **/
void
gp11_session_login_async (GP11Session *session, gulong user_type, const guchar *pin,
gsize n_pin, GCancellable *cancellable, GAsyncReadyCallback callback,
}
+/**
+ * gp11_session_login_finish:
+ * @session: The session logged into.
+ * @result: The result passed to the callback.
+ * @err: A location to return an error.
+ *
+ * Get the result of a login operation.
+ *
+ * Return value: Whether the operation was successful or not.
+ **/
gboolean
gp11_session_login_finish (GP11Session *session, GAsyncResult *result, GError **err)
{
return (args->pkcs11->C_Logout) (args->handle);
}
+/**
+ * gp11_session_logout:
+ * @session: Logout of this session.
+ * @err: A location to return an error.
+ *
+ * Log out of the session. This call may block for an indefinite period.
+ *
+ * Return value: Whether the logout was successful or not.
+ **/
gboolean
gp11_session_logout (GP11Session *session, GError **err)
{
return gp11_session_logout_full (session, NULL, err);
}
+/**
+ * gp11_session_logout_full:
+ * @session: Logout of this session.
+ * @cancellable: Optional cancellation object, or NULL.
+ * @err: A location to return an error.
+ *
+ * Log out of the session. This call may block for an indefinite period.
+ *
+ * Return value: Whether the logout was successful or not.
+ **/
gboolean
gp11_session_logout_full (GP11Session *session, GCancellable *cancellable, GError **err)
{
return _gp11_call_sync (session, perform_logout, &args, cancellable, err);
}
+/**
+ * gp11_session_logout_async:
+ * @session: Logout of this session.
+ * @cancellable: Optional cancellation object, or NULL.
+ * @callback: Called when the operation completes.
+ * @user_data: Data to pass to the callback.
+ *
+ * Log out of the session. This call returns immediately and completes
+ * asynchronously.
+ **/
void
gp11_session_logout_async (GP11Session *session, GCancellable *cancellable,
GAsyncReadyCallback callback, gpointer user_data)
_gp11_call_async_go (args, cancellable, callback, user_data);
}
+/**
+ * gp11_session_logout_finish:
+ * @session: Logout of this session.
+ * @result: The result passed to the callback.
+ * @err: A location to return an error.
+ *
+ * Get the result of logging out of a session.
+ *
+ * Return value: Whether the logout was successful or not.
+ **/
gboolean
gp11_session_logout_finish (GP11Session *session, GAsyncResult *result, GError **err)
{
&args->object);
}
+/**
+ * gp11_session_create_object:
+ * @session: The session to create the object on.
+ * @err: A location to store an error.
+ * ...: The attributes to create the new object with.
+ *
+ * Create a new PKCS#11 object. This call may block
+ * for an indefinite period.
+ *
+ * The arguments must be triples of: attribute type, data type, value
+ *
+ * <para>The variable argument list should contain:
+ * <variablelist>
+ * <varlistentry>
+ * <term>a)</term>
+ * <listitem><para>The gulong attribute type (ie: CKA_LABEL). </para></listitem>
+ * </varlistentry>
+ * <varlistentry>
+ * <term>b)</term>
+ * <listitem><para>The attribute data type (one of GP11_BOOLEAN, GP11_ULONG,
+ * GP11_STRING, GP11_DATE) orthe raw attribute value length.</para></listitem>
+ * </varlistentry>
+ * <varlistentry>
+ * <term>c)</term>
+ * <listitem><para>The attribute value, either a gboolean, gulong, gchar*, GDate* or
+ * a pointer to a raw attribute value.</para></listitem>
+ * </varlistentry>
+ * </variablelist>
+ *
+ * The variable argument list should be terminated with GP11_INVALID.</para>
+ *
+ * Return value: The newly created object, or NULL if an error occurred.
+ **/
GP11Object*
gp11_session_create_object (GP11Session *session, GError **err, ...)
{
return object;
}
+/**
+ * gp11_session_create_object_full:
+ * @session: The session to create the object on.
+ * @attrs: The attributes to create the object with.
+ * @cancellable: Optional cancellation object, or NULL.
+ * @err: A location to return an error, or NULL.
+ *
+ * Create a new PKCS#11 object. This call may block for an
+ * indefinite period.
+ *
+ * Return value: The newly created object or NULL if an error occurred.
+ **/
GP11Object*
gp11_session_create_object_full (GP11Session *session, GP11Attributes *attrs,
GCancellable *cancellable, GError **err)
return gp11_object_from_handle (session, args.object);
}
+/**
+ * gp11_session_create_object_async:
+ * @session: The session to create the object on.
+ * @attrs: The attributes to create the object with.
+ * @cancellable: Optional cancellation object or NULL.
+ * @callback: Called when the operation completes.
+ * @user_data: Data to pass to the callback.
+ *
+ * Create a new PKCS#11 object. This call will return immediately
+ * and complete asynchronously.
+ **/
void
gp11_session_create_object_async (GP11Session *session, GP11Attributes *attrs,
GCancellable *cancellable, GAsyncReadyCallback callback,
_gp11_call_async_go (args, cancellable, callback, user_data);
}
+/**
+ * gp11_session_create_object_finish:
+ * @session: The session to create the object on.
+ * @result: The result passed to the callback.
+ * @err: A location to return an error, or NULL.
+ *
+ * Get the result of creating a new PKCS#11 object.
+ *
+ * Return value: The newly created object or NULL if an error occurred.
+ **/
GP11Object*
gp11_session_create_object_finish (GP11Session *session, GAsyncResult *result, GError **err)
{
return g_list_reverse (results);
}
+/**
+ * gp11_session_find_objects:
+ * @session: The session to find objects on.
+ * @err: A location to return an error or NULL.
+ * ...: The attributes to match.
+ *
+ * Find objects matching the passed attributes. This call may
+ * block for an indefinite period.
+ *
+ * The arguments must be triples of: attribute type, data type, value
+ *
+ * <para>The variable argument list should contain:
+ * <variablelist>
+ * <varlistentry>
+ * <term>a)</term>
+ * <listitem><para>The gulong attribute type (ie: CKA_LABEL). </para></listitem>
+ * </varlistentry>
+ * <varlistentry>
+ * <term>b)</term>
+ * <listitem><para>The attribute data type (one of GP11_BOOLEAN, GP11_ULONG,
+ * GP11_STRING, GP11_DATE) orthe raw attribute value length.</para></listitem>
+ * </varlistentry>
+ * <varlistentry>
+ * <term>c)</term>
+ * <listitem><para>The attribute value, either a gboolean, gulong, gchar*, GDate* or
+ * a pointer to a raw attribute value.</para></listitem>
+ * </varlistentry>
+ * </variablelist>
+ * The variable argument list should be terminated with GP11_INVALID.</para>
+ *
+ * Return value: A list of the matching objects, which may be empty.
+ **/
GList*
gp11_session_find_objects (GP11Session *session, GError **err, ...)
{
return results;
}
+/**
+ * gp11_session_find_objects_full:
+ * @session: The session to find objects on.
+ * @attrs: The attributes to match.
+ * @cancellable: Optional cancellation object or NULL.
+ * @err: A location to return an error or NULL.
+ *
+ * Find the objects matching the passed attributes. This call may
+ * block for an indefinite period.
+ *
+ * Return value: A list of the matching objects, which may be empty.
+ **/
GList*
gp11_session_find_objects_full (GP11Session *session, GP11Attributes *attrs,
GCancellable *cancellable, GError **err)
return results;
}
+/**
+ * gp11_session_find_objects_async:
+ * @session: The session to find objects on.
+ * @attrs: The attributes to match.
+ * @cancellable: Optional cancellation object or NULL.
+ * @callback: Called when the operation completes.
+ * @user_data: Data to pass to the callback.
+ *
+ * Find the objects matching the passed attributes. This call will
+ * return immediately and complete asynchronously.
+ **/
void
gp11_session_find_objects_async (GP11Session *session, GP11Attributes *attrs,
GCancellable *cancellable, GAsyncReadyCallback callback,
_gp11_call_async_go (args, cancellable, callback, user_data);
}
+/**
+ * gp11_session_find_objects_finish:
+ * @session: The session to find objects on.
+ * @result: The attributes to match.
+ * @err: A location to return an error.
+ *
+ * Get the result of a find operation.
+ *
+ * Return value: A list of the matching objects, which may be empty.
+ **/
GList*
gp11_session_find_objects_finish (GP11Session *session, GAsyncResult *result, GError **err)
{
* PUBLIC
*/
+/**
+ * gp11_slot_info_free:
+ * @slot_info: The slot info to free, or NULL.
+ *
+ * Free the GP11SlotInfo and associated resources.
+ **/
void
gp11_slot_info_free (GP11SlotInfo *slot_info)
{
g_free (slot_info);
}
+/**
+ * gp11_token_info_free:
+ * @token_info: The token info to free, or NULL.
+ *
+ * Free the GP11TokenInfo and associated resources.
+ **/
void
gp11_token_info_free (GP11TokenInfo *token_info)
{
g_free (token_info);
}
+/**
+ * gp11_mechanism_info_free:
+ * @mech_info: The mechanism info to free, or NULL.
+ *
+ * Free the GP11MechanismInfo and associated resources.
+ **/
void
gp11_mechanism_info_free (GP11MechanismInfo *mech_info)
{
g_free (mech_info);
}
+/**
+ * gp11_slot_get_handle:
+ * @slot: The slot to get the handle of.
+ *
+ * Get the raw PKCS#11 handle of a slot.
+ *
+ * Return value: The raw handle.
+ **/
CK_SLOT_ID
gp11_slot_get_handle (GP11Slot *slot)
{
return slot->handle;
}
+/**
+ * gp11_slot_get_reuse_sessions:
+ * @slot: The slot to get setting from.
+ *
+ * Get the reuse sessions setting. When this is set, sessions
+ * will be pooled and reused if their flags match when
+ * gp11_slot_open_session() is called.
+ *
+ * Return value: Whether reusing sessions or not.
+ **/
gboolean
gp11_slot_get_reuse_sessions (GP11Slot *slot)
{
return reuse;
}
+/**
+ * gp11_slot_set_reuse_sessions:
+ * @slot: The slot to set the setting on.
+ * @reuse: Whether to reuse sessions or not.
+ *
+ * When this is set, sessions will be pooled and reused
+ * if their flags match when gp11_slot_open_session() is called.
+ **/
void
gp11_slot_set_reuse_sessions (GP11Slot *slot, gboolean reuse)
{
g_object_set (slot, "reuse-sessions", reuse, NULL);
}
+/**
+ * gp11_slot_get_auto_login:
+ * @slot: The slot to get setting from.
+ *
+ * Get the auto login setting. When this is set, this slot
+ * will emit the 'authenticate-token' signal when a session
+ * requires authentication.
+ *
+ * Return value: Whether auto login or not.
+ **/
gboolean
gp11_slot_get_auto_login (GP11Slot *slot)
{
return auto_login;
}
+/**
+ * gp11_slot_set_auto_login:
+ * @slot: The slot to set the setting on.
+ * @auto_login: Whether auto login or not.
+ *
+ * When this is set, this slot
+ * will emit the 'authenticate-token' signal when a session
+ * requires authentication.
+ **/
void
gp11_slot_set_auto_login (GP11Slot *slot, gboolean auto_login)
{
g_object_set (slot, "auto-login", auto_login, NULL);
}
+/**
+ * gp11_slot_get_info:
+ * @slot: The slot to get info for.
+ *
+ * Get the information for this slot.
+ *
+ * Return value: The slot information. When done, use gp11_slot_info_free()
+ * to release it.
+ **/
GP11SlotInfo*
gp11_slot_get_info (GP11Slot *slot)
{
return slotinfo;
}
+/**
+ * gp11_slot_get_token_info:
+ * @slot: The slot to get info for.
+ *
+ * Get the token information for this slot.
+ *
+ * Return value: The token information. When done, use gp11_token_info_free()
+ * to release it.
+ **/
GP11TokenInfo*
gp11_slot_get_token_info (GP11Slot *slot)
{
return tokeninfo;
}
+/**
+ * gp11_slot_get_mechanisms:
+ * @slot: The slot to get mechanisms for.
+ *
+ * Get the available mechanisms for this slot.
+ *
+ * Return value: A list of the mechanisms for this slot. Use
+ * gp11_mechanisms_free() when done with this.
+ **/
GP11Mechanisms*
gp11_slot_get_mechanisms (GP11Slot *slot)
{
}
+/**
+ * gp11_slot_get_mechanism_info:
+ * @slot: The slot to get mechanism info from.
+ * @mech_type: The mechanisms type to get info for.
+ *
+ * Get information for the specified mechanism.
+ *
+ * Return value: The mechanism information, or NULL if failed. Use
+ * gp11_mechanism_info_free() when done with it.
+ **/
GP11MechanismInfo*
gp11_slot_get_mechanism_info (GP11Slot *slot, gulong mech_type)
{
NULL, NULL, &args->session);
}
+/**
+ * gp11_slot_open_session:
+ * @slot: The slot ot open a session on.
+ * @flags: The flags to open a session with.
+ * @err: A location to return an error, or NULL.
+ *
+ * Open a session on the slot. If the 'auto reuse' setting is set,
+ * then this may be a recycled session with the same flags.
+ *
+ * This call may block for an indefinite period.
+ *
+ * Return value: A new session or NULL if an error occurs.
+ **/
GP11Session*
gp11_slot_open_session (GP11Slot *slot, gulong flags, GError **err)
{
return gp11_slot_open_session_full (slot, flags, NULL, err);
}
+/**
+ * gp11_slot_open_session_full:
+ * @slot: The slot to open a session on.
+ * @flags: The flags to open a session with.
+ * @cancellable: Optional cancellation object, or NULL.
+ * @err: A location to return an error, or NULL.
+ *
+ * Open a session on the slot. If the 'auto reuse' setting is set,
+ * then this may be a recycled session with the same flags.
+ *
+ * This call may block for an indefinite period.
+ *
+ * Return value: A new session or NULL if an error occurs.
+ **/
GP11Session*
gp11_slot_open_session_full (GP11Slot *slot, gulong flags, GCancellable *cancellable, GError **err)
{
return make_session_object (slot, flags, args.session);
}
+/**
+ * gp11_slot_open_session_async:
+ * @slot: The slot to open a session on.
+ * @flags: The flags to open a session with.
+ * @cancellable: Optional cancellation object, or NULL.
+ * @callback: Called when the operation completes.
+ * @user_data: Data to pass to the callback.
+ *
+ * Open a session on the slot. If the 'auto reuse' setting is set,
+ * then this may be a recycled session with the same flags.
+ *
+ * This call will return immediately and complete asynchronously.
+ **/
void
gp11_slot_open_session_async (GP11Slot *slot, gulong flags, GCancellable *cancellable,
GAsyncReadyCallback callback, gpointer user_data)
_gp11_call_async_go (args, cancellable, callback, user_data);
}
+/**
+ * gp11_slot_open_session_finish:
+ * @slot: The slot to open a session on.
+ * @result: The result passed to the callback.
+ * @err: A location to return an error or NULL.
+ *
+ * Get the result of an open session operation. If the 'auto reuse' setting is set,
+ * then this may be a recycled session with the same flags.
+ *
+ * Return value: The new session or NULL if an error occurs.
+ */
GP11Session*
gp11_slot_open_session_finish (GP11Slot *slot, GAsyncResult *result, GError **err)
{
# Used for dependencies. The docs will be rebuilt if any of these change.
# e.g. HFILE_GLOB=$(top_srcdir)/gtk/*.h
# e.g. CFILE_GLOB=$(top_srcdir)/gtk/*.c
-HFILE_GLOB=$(top_srcdir)/gp11/*.h
-CFILE_GLOB=$(top_srcdir)/gp11/*.c
+HFILE_GLOB=../*.h
+CFILE_GLOB=../*.c
# Header files to ignore when scanning.
# e.g. IGNORE_HFILES=gtkdebug.h gtkintl.h
<chapter>
<title>[Insert title here]</title>
<xi:include href="xml/gp11.xml"/>
+ <xi:include href="xml/gp11-private.xml"/>
<xi:include href="xml/pkcs11.xml"/>
<xi:include href="xml/gp11-test.xml"/>
</chapter>
</SECTION>
<SECTION>
+<FILE>gp11-private</FILE>
+GP11CallFunc
+GP11Arguments
+GP11_ARGUMENTS_INIT
+<TITLE>GP11Call</TITLE>
+GP11Call
+<SUBSECTION Standard>
+GP11_CALL
+GP11_IS_CALL
+GP11_TYPE_CALL
+GP11_CALL_CLASS
+GP11_IS_CALL_CLASS
+GP11_CALL_GET_CLASS
+</SECTION>
+
+<SECTION>
<FILE>pkcs11</FILE>
CRYPTOKI_VERSION_MAJOR
CRYPTOKI_VERSION_MINOR
-CKA_AC_ISSUER
-CKA_ALLOWED_MECHANISMS
-CKA_ALWAYS_AUTHENTICATE
-CKA_ALWAYS_SENSITIVE
-CKA_APPLICATION
-CKA_ATTR_TYPES
-CKA_AUTH_PIN_FLAGS
-CKA_BASE
-CKA_BITS_PER_PIXEL
-CKA_CERTIFICATE_CATEGORY
-CKA_CERTIFICATE_TYPE
-CKA_CHAR_COLUMNS
-CKA_CHAR_ROWS
-CKA_CHAR_SETS
-CKA_CHECK_VALUE
-CKA_CLASS
-CKA_COEFFICIENT
-CKA_COLOR
-CKA_DECRYPT
-CKA_DEFAULT_CMS_ATTRIBUTES
-CKA_DERIVE
-CKA_ECDSA_PARAMS
-CKA_EC_PARAMS
-CKA_EC_POINT
-CKA_ENCODING_METHODS
-CKA_ENCRYPT
-CKA_END_DATE
-CKA_EXPONENT_1
-CKA_EXPONENT_2
-CKA_EXTRACTABLE
-CKA_HASH_OF_ISSUER_PUBLIC_KEY
-CKA_HASH_OF_SUBJECT_PUBLIC_KEY
-CKA_HAS_RESET
-CKA_HW_FEATURE_TYPE
-CKA_ID
-CKA_ISSUER
-CKA_JAVA_MIDP_SECURITY_DOMAIN
-CKA_KEY_GEN_MECHANISM
-CKA_KEY_TYPE
-CKA_LABEL
-CKA_LOCAL
-CKA_MECHANISM_TYPE
-CKA_MIME_TYPES
-CKA_MODIFIABLE
-CKA_MODULUS
-CKA_MODULUS_BITS
-CKA_NEVER_EXTRACTABLE
-CKA_OBJECT_ID
-CKA_OWNER
-CKA_PIXEL_X
-CKA_PIXEL_Y
-CKA_PRIME
-CKA_PRIME_1
-CKA_PRIME_2
-CKA_PRIME_BITS
-CKA_PRIVATE
-CKA_PRIVATE_EXPONENT
-CKA_PUBLIC_EXPONENT
-CKA_REQUIRED_CMS_ATTRIBUTES
-CKA_RESET_ON_INIT
-CKA_RESOLUTION
-CKA_SECONDARY_AUTH
-CKA_SENSITIVE
-CKA_SERIAL_NUMBER
-CKA_SIGN
-CKA_SIGN_RECOVER
-CKA_START_DATE
-CKA_SUBJECT
-CKA_SUBPRIME
-CKA_SUB_PRIME_BITS
-CKA_SUPPORTED_CMS_ATTRIBUTES
-CKA_TOKEN
-CKA_TRUSTED
-CKA_UNWRAP
-CKA_UNWRAP_TEMPLATE
-CKA_URL
-CKA_VALUE
-CKA_VALUE_BITS
-CKA_VALUE_LEN
-CKA_VENDOR_DEFINED
-CKA_VERIFY
-CKA_VERIFY_RECOVER
-CKA_WRAP
-CKA_WRAP_TEMPLATE
-CKA_WRAP_WITH_TRUSTED
-CKC_VENDOR_DEFINED
-CKC_WTLS
-CKC_X_509
-CKC_X_509_ATTR_CERT
-CKF_ARRAY_ATTRIBUTE
-CKF_CLOCK_ON_TOKEN
-CKF_DECRYPT
-CKF_DERIVE
-CKF_DIGEST
-CKF_DONT_BLOCK
-CKF_DUAL_CRYPTO_OPERATIONS
-CKF_ENCRYPT
-CKF_EXTENSION
-CKF_GENERATE
-CKF_GENERATE_KEY_PAIR
-CKF_HW
-CKF_HW_SLOT
-CKF_LIBRARY_CANT_CREATE_OS_THREADS
-CKF_LOGIN_REQUIRED
-CKF_OS_LOCKING_OK
-CKF_PROTECTED_AUTHENTICATION_PATH
-CKF_REMOVABLE_DEVICE
-CKF_RESTORE_KEY_NOT_NEEDED
-CKF_RNG
-CKF_RW_SESSION
-CKF_SECONDARY_AUTHENTICATION
-CKF_SERIAL_SESSION
-CKF_SIGN
-CKF_SIGN_RECOVER
-CKF_SO_PIN_COUNT_LOW
-CKF_SO_PIN_FINAL_TRY
-CKF_SO_PIN_LOCKED
-CKF_SO_PIN_TO_BE_CHANGED
-CKF_TOKEN_INITIALIZED
-CKF_TOKEN_PRESENT
-CKF_UNWRAP
-CKF_USER_PIN_COUNT_LOW
-CKF_USER_PIN_FINAL_TRY
-CKF_USER_PIN_INITIALIZED
-CKF_USER_PIN_LOCKED
-CKF_USER_PIN_TO_BE_CHANGED
-CKF_VERIFY
-CKF_VERIFY_RECOVER
-CKF_WRAP
-CKF_WRITE_PROTECTED
-CKH_CLOCK
-CKH_MONOTONIC_COUNTER
-CKH_USER_INTERFACE
-CKH_VENDOR_DEFINED
-CKK_AES
-CKK_BATON
-CKK_BLOWFISH
-CKK_CAST
-CKK_CAST128
-CKK_CAST3
-CKK_CDMF
-CKK_DES
-CKK_DES2
-CKK_DES3
-CKK_DH
-CKK_DSA
-CKK_EC
-CKK_ECDSA
-CKK_GENERIC_SECRET
-CKK_IDEA
-CKK_JUNIPER
-CKK_KEA
-CKK_RC2
-CKK_RC4
-CKK_RC5
-CKK_RSA
-CKK_SKIPJACK
-CKK_TWOFISH
-CKK_VENDOR_DEFINED
-CKK_X9_42_DH
-CKM_AES_CBC
-CKM_AES_CBC_PAD
-CKM_AES_ECB
-CKM_AES_KEY_GEN
-CKM_AES_MAC
-CKM_AES_MAC_GENERAL
-CKM_BATON_CBC128
-CKM_BATON_COUNTER
-CKM_BATON_ECB128
-CKM_BATON_ECB96
-CKM_BATON_KEY_GEN
-CKM_BATON_SHUFFLE
-CKM_BATON_WRAP
-CKM_CAST128_CBC
-CKM_CAST128_CBC_PAD
-CKM_CAST128_ECB
-CKM_CAST128_KEY_GEN
-CKM_CAST128_MAC
-CKM_CAST128_MAC_GENERAL
-CKM_CAST3_CBC
-CKM_CAST3_CBC_PAD
-CKM_CAST3_ECB
-CKM_CAST3_KEY_GEN
-CKM_CAST3_MAC
-CKM_CAST3_MAC_GENERAL
-CKM_CAST5_CBC
-CKM_CAST5_CBC_PAD
-CKM_CAST5_ECB
-CKM_CAST5_KEY_GEN
-CKM_CAST5_MAC
-CKM_CAST5_MAC_GENERAL
-CKM_CAST_CBC
-CKM_CAST_CBC_PAD
-CKM_CAST_ECB
-CKM_CAST_KEY_GEN
-CKM_CAST_MAC
-CKM_CAST_MAC_GENERAL
-CKM_CDMF_CBC
-CKM_CDMF_CBC_PAD
-CKM_CDMF_ECB
-CKM_CDMF_KEY_GEN
-CKM_CDMF_MAC
-CKM_CDMF_MAC_GENERAL
-CKM_CONCATENATE_BASE_AND_DATA
-CKM_CONCATENATE_BASE_AND_KEY
-CKM_CONCATENATE_DATA_AND_BASE
-CKM_DES2_KEY_GEN
-CKM_DES3_CBC
-CKM_DES3_CBC_PAD
-CKM_DES3_ECB
-CKM_DES3_KEY_GEN
-CKM_DES3_MAC
-CKM_DES3_MAC_GENERAL
-CKM_DES_CBC
-CKM_DES_CBC_PAD
-CKM_DES_ECB
-CKM_DES_KEY_GEN
-CKM_DES_MAC
-CKM_DES_MAC_GENERAL
-CKM_DH_PKCS_DERIVE
-CKM_DH_PKCS_KEY_PAIR_GEN
-CKM_DH_PKCS_PARAMETER_GEN
-CKM_DSA
-CKM_DSA_KEY_PAIR_GEN
-CKM_DSA_PARAMETER_GEN
-CKM_DSA_SHA1
-CKM_ECDH1_COFACTOR_DERIVE
-CKM_ECDH1_DERIVE
-CKM_ECDSA
-CKM_ECDSA_KEY_PAIR_GEN
-CKM_ECDSA_SHA1
-CKM_ECMQV_DERIVE
-CKM_EC_KEY_PAIR_GEN
-CKM_EXTRACT_KEY_FROM_KEY
-CKM_FASTHASH
-CKM_FORTEZZA_TIMESTAMP
-CKM_GENERIC_SECRET_KEY_GEN
-CKM_IDEA_CBC
-CKM_IDEA_CBC_PAD
-CKM_IDEA_ECB
-CKM_IDEA_KEY_GEN
-CKM_IDEA_MAC
-CKM_IDEA_MAC_GENERAL
-CKM_JUNIPER_CBC128
-CKM_JUNIPER_COUNTER
-CKM_JUNIPER_ECB128
-CKM_JUNIPER_KEY_GEN
-CKM_JUNIPER_SHUFFLE
-CKM_JUNIPER_WRAP
-CKM_KEA_KEY_DERIVE
-CKM_KEA_KEY_PAIR_GEN
-CKM_KEY_WRAP_LYNKS
-CKM_KEY_WRAP_SET_OAEP
-CKM_MD2
-CKM_MD2_HMAC
-CKM_MD2_HMAC_GENERAL
-CKM_MD2_KEY_DERIVATION
-CKM_MD2_RSA_PKCS
-CKM_MD5
-CKM_MD5_HMAC
-CKM_MD5_HMAC_GENERAL
-CKM_MD5_KEY_DERIVATION
-CKM_MD5_RSA_PKCS
-CKM_PBA_SHA1_WITH_SHA1_HMAC
-CKM_PBE_MD2_DES_CBC
-CKM_PBE_MD5_CAST128_CBC
-CKM_PBE_MD5_CAST3_CBC
-CKM_PBE_MD5_CAST5_CBC
-CKM_PBE_MD5_CAST_CBC
-CKM_PBE_MD5_DES_CBC
-CKM_PBE_SHA1_CAST128_CBC
-CKM_PBE_SHA1_CAST5_CBC
-CKM_PBE_SHA1_DES2_EDE_CBC
-CKM_PBE_SHA1_DES3_EDE_CBC
-CKM_PBE_SHA1_RC2_128_CBC
-CKM_PBE_SHA1_RC2_40_CBC
-CKM_PBE_SHA1_RC4_128
-CKM_PBE_SHA1_RC4_40
-CKM_PKCS5_PBKD2
-CKM_RC2_CBC
-CKM_RC2_CBC_PAD
-CKM_RC2_ECB
-CKM_RC2_KEY_GEN
-CKM_RC2_MAC
-CKM_RC2_MAC_GENERAL
-CKM_RC4
-CKM_RC4_KEY_GEN
-CKM_RC5_CBC
-CKM_RC5_CBC_PAD
-CKM_RC5_ECB
-CKM_RC5_KEY_GEN
-CKM_RC5_MAC
-CKM_RC5_MAC_GENERAL
-CKM_RIPEMD128
-CKM_RIPEMD128_HMAC
-CKM_RIPEMD128_HMAC_GENERAL
-CKM_RIPEMD128_RSA_PKCS
-CKM_RIPEMD160
-CKM_RIPEMD160_HMAC
-CKM_RIPEMD160_HMAC_GENERAL
-CKM_RIPEMD160_RSA_PKCS
-CKM_RSA_9796
-CKM_RSA_PKCS
-CKM_RSA_PKCS_KEY_PAIR_GEN
-CKM_RSA_PKCS_OAEP
-CKM_RSA_PKCS_PSS
-CKM_RSA_X9_31
-CKM_RSA_X9_31_KEY_PAIR_GEN
-CKM_RSA_X_509
-CKM_SHA1_KEY_DERIVATION
-CKM_SHA1_RSA_PKCS
-CKM_SHA1_RSA_PKCS_PSS
-CKM_SHA1_RSA_X9_31
-CKM_SHA256
-CKM_SHA256_HMAC
-CKM_SHA256_HMAC_GENERAL
-CKM_SHA256_RSA_PKCS
-CKM_SHA256_RSA_PKCS_PSS
-CKM_SHA384
-CKM_SHA384_HMAC
-CKM_SHA384_HMAC_GENERAL
-CKM_SHA384_RSA_PKCS
-CKM_SHA384_RSA_PKCS_PSS
-CKM_SHA512
-CKM_SHA512_HMAC
-CKM_SHA512_HMAC_GENERAL
-CKM_SHA512_RSA_PKCS
-CKM_SHA512_RSA_PKCS_PSS
-CKM_SHA_1
-CKM_SHA_1_HMAC
-CKM_SHA_1_HMAC_GENERAL
-CKM_SKIPJACK_CBC64
-CKM_SKIPJACK_CFB16
-CKM_SKIPJACK_CFB32
-CKM_SKIPJACK_CFB64
-CKM_SKIPJACK_CFB8
-CKM_SKIPJACK_ECB64
-CKM_SKIPJACK_KEY_GEN
-CKM_SKIPJACK_OFB64
-CKM_SKIPJACK_PRIVATE_WRAP
-CKM_SKIPJACK_RELAYX
-CKM_SKIPJACK_WRAP
-CKM_SSL3_KEY_AND_MAC_DERIVE
-CKM_SSL3_MASTER_KEY_DERIVE
-CKM_SSL3_MASTER_KEY_DERIVE_DH
-CKM_SSL3_MD5_MAC
-CKM_SSL3_PRE_MASTER_KEY_GEN
-CKM_SSL3_SHA1_MAC
-CKM_TLS_KEY_AND_MAC_DERIVE
-CKM_TLS_MASTER_KEY_DERIVE
-CKM_TLS_MASTER_KEY_DERIVE_DH
-CKM_TLS_PRE_MASTER_KEY_GEN
-CKM_VENDOR_DEFINED
-CKM_X9_42_DH_DERIVE
-CKM_X9_42_DH_HYBRID_DERIVE
-CKM_X9_42_DH_KEY_PAIR_GEN
-CKM_X9_42_DH_PARAMETER_GEN
-CKM_X9_42_MQV_DERIVE
-CKM_XOR_BASE_AND_DATA
-CKN_SURRENDER
-CKO_CERTIFICATE
-CKO_DATA
-CKO_DOMAIN_PARAMETERS
-CKO_HW_FEATURE
-CKO_MECHANISM
-CKO_PRIVATE_KEY
-CKO_PUBLIC_KEY
-CKO_SECRET_KEY
-CKO_VENDOR_DEFINED
-CKR_ARGUMENTS_BAD
-CKR_ATTRIBUTE_READ_ONLY
-CKR_ATTRIBUTE_SENSITIVE
-CKR_ATTRIBUTE_TYPE_INVALID
-CKR_ATTRIBUTE_VALUE_INVALID
-CKR_BUFFER_TOO_SMALL
-CKR_CANCEL
-CKR_CANT_LOCK
-CKR_CRYPTOKI_ALREADY_INITIALIZED
-CKR_CRYPTOKI_NOT_INITIALIZED
-CKR_DATA_INVALID
-CKR_DATA_LEN_RANGE
-CKR_DEVICE_ERROR
-CKR_DEVICE_MEMORY
-CKR_DEVICE_REMOVED
-CKR_DOMAIN_PARAMS_INVALID
-CKR_ENCRYPTED_DATA_INVALID
-CKR_ENCRYPTED_DATA_LEN_RANGE
-CKR_FUNCTION_CANCELED
-CKR_FUNCTION_FAILED
-CKR_FUNCTION_NOT_PARALLEL
-CKR_FUNCTION_NOT_SUPPORTED
-CKR_FUNCTION_REJECTED
-CKR_GENERAL_ERROR
-CKR_HOST_MEMORY
-CKR_INFORMATION_SENSITIVE
-CKR_KEY_CHANGED
-CKR_KEY_FUNCTION_NOT_PERMITTED
-CKR_KEY_HANDLE_INVALID
-CKR_KEY_INDIGESTIBLE
-CKR_KEY_NEEDED
-CKR_KEY_NOT_NEEDED
-CKR_KEY_NOT_WRAPPABLE
-CKR_KEY_SIZE_RANGE
-CKR_KEY_TYPE_INCONSISTENT
-CKR_KEY_UNEXTRACTABLE
-CKR_MECHANISM_INVALID
-CKR_MECHANISM_PARAM_INVALID
-CKR_MUTEX_BAD
-CKR_MUTEX_NOT_LOCKED
-CKR_NEED_TO_CREATE_THREADS
-CKR_NO_EVENT
-CKR_OBJECT_HANDLE_INVALID
-CKR_OK
-CKR_OPERATION_ACTIVE
-CKR_OPERATION_NOT_INITIALIZED
-CKR_PIN_EXPIRED
-CKR_PIN_INCORRECT
-CKR_PIN_INVALID
-CKR_PIN_LEN_RANGE
-CKR_PIN_LOCKED
-CKR_RANDOM_NO_RNG
-CKR_RANDOM_SEED_NOT_SUPPORTED
-CKR_SAVED_STATE_INVALID
-CKR_SESSION_CLOSED
-CKR_SESSION_COUNT
-CKR_SESSION_EXISTS
-CKR_SESSION_HANDLE_INVALID
-CKR_SESSION_PARALLEL_NOT_SUPPORTED
-CKR_SESSION_READ_ONLY
-CKR_SESSION_READ_ONLY_EXISTS
-CKR_SESSION_READ_WRITE_SO_EXISTS
-CKR_SIGNATURE_INVALID
-CKR_SIGNATURE_LEN_RANGE
-CKR_SLOT_ID_INVALID
-CKR_STATE_UNSAVEABLE
-CKR_TEMPLATE_INCOMPLETE
-CKR_TEMPLATE_INCONSISTENT
-CKR_TOKEN_NOT_PRESENT
-CKR_TOKEN_NOT_RECOGNIZED
-CKR_TOKEN_WRITE_PROTECTED
-CKR_UNWRAPPING_KEY_HANDLE_INVALID
-CKR_UNWRAPPING_KEY_SIZE_RANGE
-CKR_UNWRAPPING_KEY_TYPE_INCONSISTENT
-CKR_USER_ALREADY_LOGGED_IN
-CKR_USER_ANOTHER_ALREADY_LOGGED_IN
-CKR_USER_NOT_LOGGED_IN
-CKR_USER_PIN_NOT_INITIALIZED
-CKR_USER_TOO_MANY_TYPES
-CKR_USER_TYPE_INVALID
-CKR_VENDOR_DEFINED
-CKR_WRAPPED_KEY_INVALID
-CKR_WRAPPED_KEY_LEN_RANGE
-CKR_WRAPPING_KEY_HANDLE_INVALID
-CKR_WRAPPING_KEY_SIZE_RANGE
-CKR_WRAPPING_KEY_TYPE_INCONSISTENT
-CKS_RO_PUBLIC_SESSION
-CKS_RO_USER_FUNCTIONS
-CKS_RW_PUBLIC_SESSION
-CKS_RW_SO_FUNCTIONS
-CKS_RW_USER_FUNCTIONS
-CKU_CONTEXT_SPECIFIC
-CKU_SO
-CKU_USER
-CK_ATTRIBUTE
-CK_ATTRIBUTE_PTR
-CK_BBOOL
-CK_BYTE
-CK_BYTE_PTR
-CK_CHAR
-CK_CHAR_PTR
-CK_C_INITIALIZE_ARGS
-CK_C_INITIALIZE_ARGS_PTR
-CK_DATE
-CK_DATE_PTR
-CK_DEFINE_FUNCTION
-CK_EFFECTIVELY_INFINITE
-CK_FALSE
-CK_FUNCTION_LIST
-CK_FUNCTION_LIST_PTR
-CK_FUNCTION_LIST_PTR_PTR
-CK_INFO
-CK_INFO_PTR
-CK_INVALID_HANDLE
-CK_LONG
-CK_MECHANISM
-CK_MECHANISM_INFO
-CK_MECHANISM_INFO_PTR
-CK_MECHANISM_PTR
-CK_MECHANISM_TYPE_PTR
-CK_OBJECT_CLASS_PTR
-CK_OBJECT_HANDLE_PTR
-CK_SESSION_HANDLE_PTR
-CK_SESSION_INFO
-CK_SESSION_INFO_PTR
-CK_SLOT_ID_PTR
-CK_SLOT_INFO
-CK_SLOT_INFO_PTR
-CK_SPEC
-CK_TOKEN_INFO
-CK_TOKEN_INFO_PTR
-CK_TRUE
-CK_ULONG
-CK_ULONG_PTR
-CK_UNAVAILABLE_INFORMATION
-CK_UTF8CHAR
-CK_UTF8CHAR_PTR
-CK_VERSION
-CK_VERSION_PTR
-CK_VOID_PTR
-CK_VOID_PTR_PTR
-CRYPTOKI_COMPAT
-CRYPTOKI_VERSION_MAJOR
-CRYPTOKI_VERSION_MINOR
-CRYPTOKI_VERSION_REVISION
-NULL_PTR
-args
-ck_attribute
-ck_attribute_type_t
-ck_c_initialize_args
-ck_certificate_type_t
-ck_createmutex_t
-ck_date
-ck_destroymutex_t
-ck_flags_t
-ck_function_list
-ck_hw_feature_type_t
-ck_info
-ck_key_type_t
-ck_lockmutex_t
-ck_mechanism
-ck_mechanism_info
-ck_mechanism_type_t
-ck_notification_t
-ck_notify_t
-ck_object_class_t
-ck_object_handle_t
-ck_rv_t
-ck_session_handle_t
-ck_session_info
-ck_slot_id_t
-ck_slot_info
-ck_state_t
-ck_token_info
-ck_unlockmutex_t
-ck_user_type_t
-ck_version
-create_mutex
-cryptoki_version
-destroy_mutex
-device_error
-firmware_version
-free_private_memory
-free_public_memory
-hardware_version
-library_description
-library_version
-lock_mutex
-manufacturer_id
-max_key_size
-max_pin_len
-max_rw_session_count
-max_session_count
-min_key_size
-min_pin_len
-parameter
-parameter_len
-reserved
-rw_session_count
-serial_number
-session_count
-slot_description
-slot_id
-total_private_memory
-total_public_memory
-unlock_mutex
-utc_time
-value
-value_len
-<!-- ##### MACRO CKA_AC_ISSUER ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKA_ALLOWED_MECHANISMS ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKA_ALWAYS_AUTHENTICATE ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKA_ALWAYS_SENSITIVE ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKA_APPLICATION ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKA_ATTR_TYPES ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKA_AUTH_PIN_FLAGS ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKA_BASE ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKA_BITS_PER_PIXEL ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKA_CERTIFICATE_CATEGORY ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKA_CERTIFICATE_TYPE ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKA_CHAR_COLUMNS ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKA_CHAR_ROWS ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKA_CHAR_SETS ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKA_CHECK_VALUE ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKA_CLASS ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKA_COEFFICIENT ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKA_COLOR ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKA_DECRYPT ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKA_DEFAULT_CMS_ATTRIBUTES ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKA_DERIVE ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKA_ECDSA_PARAMS ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKA_EC_PARAMS ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKA_EC_POINT ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKA_ENCODING_METHODS ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKA_ENCRYPT ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKA_END_DATE ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKA_EXPONENT_1 ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKA_EXPONENT_2 ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKA_EXTRACTABLE ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKA_HASH_OF_ISSUER_PUBLIC_KEY ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKA_HASH_OF_SUBJECT_PUBLIC_KEY ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKA_HAS_RESET ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKA_HW_FEATURE_TYPE ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKA_ID ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKA_ISSUER ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKA_JAVA_MIDP_SECURITY_DOMAIN ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKA_KEY_GEN_MECHANISM ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKA_KEY_TYPE ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKA_LABEL ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKA_LOCAL ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKA_MECHANISM_TYPE ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKA_MIME_TYPES ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKA_MODIFIABLE ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKA_MODULUS ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKA_MODULUS_BITS ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKA_NEVER_EXTRACTABLE ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKA_OBJECT_ID ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKA_OWNER ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKA_PIXEL_X ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKA_PIXEL_Y ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKA_PRIME ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKA_PRIME_1 ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKA_PRIME_2 ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKA_PRIME_BITS ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKA_PRIVATE ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKA_PRIVATE_EXPONENT ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKA_PUBLIC_EXPONENT ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKA_REQUIRED_CMS_ATTRIBUTES ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKA_RESET_ON_INIT ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKA_RESOLUTION ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKA_SECONDARY_AUTH ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKA_SENSITIVE ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKA_SERIAL_NUMBER ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKA_SIGN ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKA_SIGN_RECOVER ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKA_START_DATE ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKA_SUBJECT ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKA_SUBPRIME ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKA_SUB_PRIME_BITS ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKA_SUPPORTED_CMS_ATTRIBUTES ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKA_TOKEN ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKA_TRUSTED ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKA_UNWRAP ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKA_UNWRAP_TEMPLATE ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKA_URL ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKA_VALUE ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKA_VALUE_BITS ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKA_VALUE_LEN ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKA_VENDOR_DEFINED ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKA_VERIFY ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKA_VERIFY_RECOVER ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKA_WRAP ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKA_WRAP_TEMPLATE ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKA_WRAP_WITH_TRUSTED ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKC_VENDOR_DEFINED ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKC_WTLS ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKC_X_509 ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKC_X_509_ATTR_CERT ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKF_ARRAY_ATTRIBUTE ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKF_CLOCK_ON_TOKEN ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKF_DECRYPT ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKF_DERIVE ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKF_DIGEST ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKF_DONT_BLOCK ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKF_DUAL_CRYPTO_OPERATIONS ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKF_ENCRYPT ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKF_EXTENSION ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKF_GENERATE ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKF_GENERATE_KEY_PAIR ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKF_HW ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKF_HW_SLOT ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKF_LIBRARY_CANT_CREATE_OS_THREADS ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKF_LOGIN_REQUIRED ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKF_OS_LOCKING_OK ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKF_PROTECTED_AUTHENTICATION_PATH ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKF_REMOVABLE_DEVICE ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKF_RESTORE_KEY_NOT_NEEDED ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKF_RNG ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKF_RW_SESSION ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKF_SECONDARY_AUTHENTICATION ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKF_SERIAL_SESSION ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKF_SIGN ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKF_SIGN_RECOVER ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKF_SO_PIN_COUNT_LOW ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKF_SO_PIN_FINAL_TRY ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKF_SO_PIN_LOCKED ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKF_SO_PIN_TO_BE_CHANGED ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKF_TOKEN_INITIALIZED ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKF_TOKEN_PRESENT ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKF_UNWRAP ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKF_USER_PIN_COUNT_LOW ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKF_USER_PIN_FINAL_TRY ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKF_USER_PIN_INITIALIZED ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKF_USER_PIN_LOCKED ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKF_USER_PIN_TO_BE_CHANGED ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKF_VERIFY ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKF_VERIFY_RECOVER ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKF_WRAP ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKF_WRITE_PROTECTED ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKH_CLOCK ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKH_MONOTONIC_COUNTER ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKH_USER_INTERFACE ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKH_VENDOR_DEFINED ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKK_AES ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKK_BATON ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKK_BLOWFISH ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKK_CAST ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKK_CAST128 ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKK_CAST3 ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKK_CDMF ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKK_DES ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKK_DES2 ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKK_DES3 ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKK_DH ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKK_DSA ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKK_EC ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKK_ECDSA ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKK_GENERIC_SECRET ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKK_IDEA ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKK_JUNIPER ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKK_KEA ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKK_RC2 ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKK_RC4 ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKK_RC5 ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKK_RSA ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKK_SKIPJACK ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKK_TWOFISH ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKK_VENDOR_DEFINED ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKK_X9_42_DH ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKM_AES_CBC ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKM_AES_CBC_PAD ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKM_AES_ECB ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKM_AES_KEY_GEN ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKM_AES_MAC ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKM_AES_MAC_GENERAL ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKM_BATON_CBC128 ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKM_BATON_COUNTER ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKM_BATON_ECB128 ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKM_BATON_ECB96 ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKM_BATON_KEY_GEN ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKM_BATON_SHUFFLE ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKM_BATON_WRAP ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKM_CAST128_CBC ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKM_CAST128_CBC_PAD ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKM_CAST128_ECB ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKM_CAST128_KEY_GEN ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKM_CAST128_MAC ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKM_CAST128_MAC_GENERAL ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKM_CAST3_CBC ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKM_CAST3_CBC_PAD ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKM_CAST3_ECB ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKM_CAST3_KEY_GEN ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKM_CAST3_MAC ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKM_CAST3_MAC_GENERAL ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKM_CAST5_CBC ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKM_CAST5_CBC_PAD ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKM_CAST5_ECB ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKM_CAST5_KEY_GEN ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKM_CAST5_MAC ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKM_CAST5_MAC_GENERAL ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKM_CAST_CBC ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKM_CAST_CBC_PAD ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKM_CAST_ECB ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKM_CAST_KEY_GEN ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKM_CAST_MAC ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKM_CAST_MAC_GENERAL ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKM_CDMF_CBC ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKM_CDMF_CBC_PAD ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKM_CDMF_ECB ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKM_CDMF_KEY_GEN ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKM_CDMF_MAC ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKM_CDMF_MAC_GENERAL ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKM_CONCATENATE_BASE_AND_DATA ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKM_CONCATENATE_BASE_AND_KEY ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKM_CONCATENATE_DATA_AND_BASE ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKM_DES2_KEY_GEN ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKM_DES3_CBC ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKM_DES3_CBC_PAD ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKM_DES3_ECB ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKM_DES3_KEY_GEN ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKM_DES3_MAC ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKM_DES3_MAC_GENERAL ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKM_DES_CBC ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKM_DES_CBC_PAD ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKM_DES_ECB ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKM_DES_KEY_GEN ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKM_DES_MAC ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKM_DES_MAC_GENERAL ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKM_DH_PKCS_DERIVE ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKM_DH_PKCS_KEY_PAIR_GEN ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKM_DH_PKCS_PARAMETER_GEN ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKM_DSA ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKM_DSA_KEY_PAIR_GEN ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKM_DSA_PARAMETER_GEN ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKM_DSA_SHA1 ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKM_ECDH1_COFACTOR_DERIVE ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKM_ECDH1_DERIVE ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKM_ECDSA ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKM_ECDSA_KEY_PAIR_GEN ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKM_ECDSA_SHA1 ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKM_ECMQV_DERIVE ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKM_EC_KEY_PAIR_GEN ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKM_EXTRACT_KEY_FROM_KEY ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKM_FASTHASH ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKM_FORTEZZA_TIMESTAMP ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKM_GENERIC_SECRET_KEY_GEN ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKM_IDEA_CBC ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKM_IDEA_CBC_PAD ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKM_IDEA_ECB ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKM_IDEA_KEY_GEN ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKM_IDEA_MAC ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKM_IDEA_MAC_GENERAL ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKM_JUNIPER_CBC128 ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKM_JUNIPER_COUNTER ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKM_JUNIPER_ECB128 ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKM_JUNIPER_KEY_GEN ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKM_JUNIPER_SHUFFLE ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKM_JUNIPER_WRAP ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKM_KEA_KEY_DERIVE ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKM_KEA_KEY_PAIR_GEN ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKM_KEY_WRAP_LYNKS ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKM_KEY_WRAP_SET_OAEP ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKM_MD2 ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKM_MD2_HMAC ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKM_MD2_HMAC_GENERAL ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKM_MD2_KEY_DERIVATION ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKM_MD2_RSA_PKCS ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKM_MD5 ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKM_MD5_HMAC ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKM_MD5_HMAC_GENERAL ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKM_MD5_KEY_DERIVATION ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKM_MD5_RSA_PKCS ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKM_PBA_SHA1_WITH_SHA1_HMAC ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKM_PBE_MD2_DES_CBC ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKM_PBE_MD5_CAST128_CBC ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKM_PBE_MD5_CAST3_CBC ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKM_PBE_MD5_CAST5_CBC ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKM_PBE_MD5_CAST_CBC ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKM_PBE_MD5_DES_CBC ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKM_PBE_SHA1_CAST128_CBC ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKM_PBE_SHA1_CAST5_CBC ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKM_PBE_SHA1_DES2_EDE_CBC ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKM_PBE_SHA1_DES3_EDE_CBC ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKM_PBE_SHA1_RC2_128_CBC ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKM_PBE_SHA1_RC2_40_CBC ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKM_PBE_SHA1_RC4_128 ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKM_PBE_SHA1_RC4_40 ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKM_PKCS5_PBKD2 ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKM_RC2_CBC ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKM_RC2_CBC_PAD ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKM_RC2_ECB ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKM_RC2_KEY_GEN ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKM_RC2_MAC ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKM_RC2_MAC_GENERAL ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKM_RC4 ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKM_RC4_KEY_GEN ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKM_RC5_CBC ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKM_RC5_CBC_PAD ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKM_RC5_ECB ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKM_RC5_KEY_GEN ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKM_RC5_MAC ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKM_RC5_MAC_GENERAL ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKM_RIPEMD128 ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKM_RIPEMD128_HMAC ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKM_RIPEMD128_HMAC_GENERAL ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKM_RIPEMD128_RSA_PKCS ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKM_RIPEMD160 ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKM_RIPEMD160_HMAC ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKM_RIPEMD160_HMAC_GENERAL ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKM_RIPEMD160_RSA_PKCS ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKM_RSA_9796 ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKM_RSA_PKCS ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKM_RSA_PKCS_KEY_PAIR_GEN ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKM_RSA_PKCS_OAEP ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKM_RSA_PKCS_PSS ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKM_RSA_X9_31 ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKM_RSA_X9_31_KEY_PAIR_GEN ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKM_RSA_X_509 ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKM_SHA1_KEY_DERIVATION ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKM_SHA1_RSA_PKCS ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKM_SHA1_RSA_PKCS_PSS ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKM_SHA1_RSA_X9_31 ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKM_SHA256 ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKM_SHA256_HMAC ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKM_SHA256_HMAC_GENERAL ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKM_SHA256_RSA_PKCS ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKM_SHA256_RSA_PKCS_PSS ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKM_SHA384 ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKM_SHA384_HMAC ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKM_SHA384_HMAC_GENERAL ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKM_SHA384_RSA_PKCS ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKM_SHA384_RSA_PKCS_PSS ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKM_SHA512 ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKM_SHA512_HMAC ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKM_SHA512_HMAC_GENERAL ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKM_SHA512_RSA_PKCS ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKM_SHA512_RSA_PKCS_PSS ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKM_SHA_1 ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKM_SHA_1_HMAC ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKM_SHA_1_HMAC_GENERAL ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKM_SKIPJACK_CBC64 ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKM_SKIPJACK_CFB16 ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKM_SKIPJACK_CFB32 ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKM_SKIPJACK_CFB64 ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKM_SKIPJACK_CFB8 ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKM_SKIPJACK_ECB64 ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKM_SKIPJACK_KEY_GEN ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKM_SKIPJACK_OFB64 ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKM_SKIPJACK_PRIVATE_WRAP ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKM_SKIPJACK_RELAYX ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKM_SKIPJACK_WRAP ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKM_SSL3_KEY_AND_MAC_DERIVE ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKM_SSL3_MASTER_KEY_DERIVE ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKM_SSL3_MASTER_KEY_DERIVE_DH ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKM_SSL3_MD5_MAC ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKM_SSL3_PRE_MASTER_KEY_GEN ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKM_SSL3_SHA1_MAC ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKM_TLS_KEY_AND_MAC_DERIVE ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKM_TLS_MASTER_KEY_DERIVE ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKM_TLS_MASTER_KEY_DERIVE_DH ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKM_TLS_PRE_MASTER_KEY_GEN ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKM_VENDOR_DEFINED ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKM_X9_42_DH_DERIVE ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKM_X9_42_DH_HYBRID_DERIVE ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKM_X9_42_DH_KEY_PAIR_GEN ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKM_X9_42_DH_PARAMETER_GEN ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKM_X9_42_MQV_DERIVE ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKM_XOR_BASE_AND_DATA ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKN_SURRENDER ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKO_CERTIFICATE ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKO_DATA ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKO_DOMAIN_PARAMETERS ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKO_HW_FEATURE ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKO_MECHANISM ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKO_PRIVATE_KEY ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKO_PUBLIC_KEY ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKO_SECRET_KEY ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKO_VENDOR_DEFINED ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKR_ARGUMENTS_BAD ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKR_ATTRIBUTE_READ_ONLY ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKR_ATTRIBUTE_SENSITIVE ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKR_ATTRIBUTE_TYPE_INVALID ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKR_ATTRIBUTE_VALUE_INVALID ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKR_BUFFER_TOO_SMALL ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKR_CANCEL ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKR_CANT_LOCK ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKR_CRYPTOKI_ALREADY_INITIALIZED ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKR_CRYPTOKI_NOT_INITIALIZED ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKR_DATA_INVALID ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKR_DATA_LEN_RANGE ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKR_DEVICE_ERROR ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKR_DEVICE_MEMORY ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKR_DEVICE_REMOVED ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKR_DOMAIN_PARAMS_INVALID ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKR_ENCRYPTED_DATA_INVALID ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKR_ENCRYPTED_DATA_LEN_RANGE ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKR_FUNCTION_CANCELED ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKR_FUNCTION_FAILED ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKR_FUNCTION_NOT_PARALLEL ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKR_FUNCTION_NOT_SUPPORTED ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKR_FUNCTION_REJECTED ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKR_GENERAL_ERROR ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKR_HOST_MEMORY ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKR_INFORMATION_SENSITIVE ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKR_KEY_CHANGED ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKR_KEY_FUNCTION_NOT_PERMITTED ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKR_KEY_HANDLE_INVALID ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKR_KEY_INDIGESTIBLE ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKR_KEY_NEEDED ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKR_KEY_NOT_NEEDED ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKR_KEY_NOT_WRAPPABLE ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKR_KEY_SIZE_RANGE ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKR_KEY_TYPE_INCONSISTENT ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKR_KEY_UNEXTRACTABLE ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKR_MECHANISM_INVALID ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKR_MECHANISM_PARAM_INVALID ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKR_MUTEX_BAD ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKR_MUTEX_NOT_LOCKED ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKR_NEED_TO_CREATE_THREADS ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKR_NO_EVENT ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKR_OBJECT_HANDLE_INVALID ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKR_OK ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKR_OPERATION_ACTIVE ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKR_OPERATION_NOT_INITIALIZED ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKR_PIN_EXPIRED ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKR_PIN_INCORRECT ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKR_PIN_INVALID ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKR_PIN_LEN_RANGE ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKR_PIN_LOCKED ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKR_RANDOM_NO_RNG ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKR_RANDOM_SEED_NOT_SUPPORTED ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKR_SAVED_STATE_INVALID ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKR_SESSION_CLOSED ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKR_SESSION_COUNT ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKR_SESSION_EXISTS ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKR_SESSION_HANDLE_INVALID ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKR_SESSION_PARALLEL_NOT_SUPPORTED ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKR_SESSION_READ_ONLY ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKR_SESSION_READ_ONLY_EXISTS ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKR_SESSION_READ_WRITE_SO_EXISTS ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKR_SIGNATURE_INVALID ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKR_SIGNATURE_LEN_RANGE ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKR_SLOT_ID_INVALID ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKR_STATE_UNSAVEABLE ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKR_TEMPLATE_INCOMPLETE ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKR_TEMPLATE_INCONSISTENT ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKR_TOKEN_NOT_PRESENT ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKR_TOKEN_NOT_RECOGNIZED ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKR_TOKEN_WRITE_PROTECTED ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKR_UNWRAPPING_KEY_HANDLE_INVALID ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKR_UNWRAPPING_KEY_SIZE_RANGE ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKR_UNWRAPPING_KEY_TYPE_INCONSISTENT ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKR_USER_ALREADY_LOGGED_IN ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKR_USER_ANOTHER_ALREADY_LOGGED_IN ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKR_USER_NOT_LOGGED_IN ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKR_USER_PIN_NOT_INITIALIZED ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKR_USER_TOO_MANY_TYPES ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKR_USER_TYPE_INVALID ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKR_VENDOR_DEFINED ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKR_WRAPPED_KEY_INVALID ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKR_WRAPPED_KEY_LEN_RANGE ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKR_WRAPPING_KEY_HANDLE_INVALID ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKR_WRAPPING_KEY_SIZE_RANGE ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKR_WRAPPING_KEY_TYPE_INCONSISTENT ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKS_RO_PUBLIC_SESSION ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKS_RO_USER_FUNCTIONS ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKS_RW_PUBLIC_SESSION ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKS_RW_SO_FUNCTIONS ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKS_RW_USER_FUNCTIONS ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKU_CONTEXT_SPECIFIC ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKU_SO ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CKU_USER ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### TYPEDEF CK_ATTRIBUTE ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### TYPEDEF CK_ATTRIBUTE_PTR ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### TYPEDEF CK_BBOOL ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### TYPEDEF CK_BYTE ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### TYPEDEF CK_BYTE_PTR ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### TYPEDEF CK_CHAR ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### TYPEDEF CK_CHAR_PTR ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### TYPEDEF CK_C_INITIALIZE_ARGS ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### TYPEDEF CK_C_INITIALIZE_ARGS_PTR ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### TYPEDEF CK_DATE ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### TYPEDEF CK_DATE_PTR ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CK_DEFINE_FUNCTION ##### -->
-<para>
-
-</para>
-
-@retval:
-@name:
-
-<!-- ##### MACRO CK_EFFECTIVELY_INFINITE ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CK_FALSE ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### TYPEDEF CK_FUNCTION_LIST ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### TYPEDEF CK_FUNCTION_LIST_PTR ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### TYPEDEF CK_FUNCTION_LIST_PTR_PTR ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### TYPEDEF CK_INFO ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### TYPEDEF CK_INFO_PTR ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CK_INVALID_HANDLE ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### TYPEDEF CK_LONG ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### TYPEDEF CK_MECHANISM ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### TYPEDEF CK_MECHANISM_INFO ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### TYPEDEF CK_MECHANISM_INFO_PTR ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### TYPEDEF CK_MECHANISM_PTR ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### TYPEDEF CK_MECHANISM_TYPE_PTR ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### TYPEDEF CK_OBJECT_CLASS_PTR ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### TYPEDEF CK_OBJECT_HANDLE_PTR ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### TYPEDEF CK_SESSION_HANDLE_PTR ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### TYPEDEF CK_SESSION_INFO ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### TYPEDEF CK_SESSION_INFO_PTR ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### TYPEDEF CK_SLOT_ID_PTR ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### TYPEDEF CK_SLOT_INFO ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### TYPEDEF CK_SLOT_INFO_PTR ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CK_SPEC ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### TYPEDEF CK_TOKEN_INFO ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### TYPEDEF CK_TOKEN_INFO_PTR ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CK_TRUE ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### TYPEDEF CK_ULONG ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### TYPEDEF CK_ULONG_PTR ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CK_UNAVAILABLE_INFORMATION ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### TYPEDEF CK_UTF8CHAR ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### TYPEDEF CK_UTF8CHAR_PTR ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### TYPEDEF CK_VERSION ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### TYPEDEF CK_VERSION_PTR ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### TYPEDEF CK_VOID_PTR ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### TYPEDEF CK_VOID_PTR_PTR ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CRYPTOKI_COMPAT ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CRYPTOKI_VERSION_MAJOR ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CRYPTOKI_VERSION_MINOR ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO CRYPTOKI_VERSION_REVISION ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO NULL_PTR ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### TYPEDEF args ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO ck_attribute ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO ck_attribute_type_t ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO ck_c_initialize_args ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO ck_certificate_type_t ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO ck_createmutex_t ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO ck_date ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO ck_destroymutex_t ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO ck_flags_t ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO ck_function_list ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO ck_hw_feature_type_t ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO ck_info ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO ck_key_type_t ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO ck_lockmutex_t ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO ck_mechanism ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO ck_mechanism_info ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO ck_mechanism_type_t ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO ck_notification_t ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO ck_notify_t ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO ck_object_class_t ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO ck_object_handle_t ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO ck_rv_t ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO ck_session_handle_t ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO ck_session_info ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO ck_slot_id_t ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO ck_slot_info ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO ck_state_t ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO ck_token_info ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO ck_unlockmutex_t ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO ck_user_type_t ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO ck_version ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO create_mutex ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO cryptoki_version ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO destroy_mutex ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO device_error ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO firmware_version ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO free_private_memory ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO free_public_memory ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO hardware_version ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO library_description ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO library_version ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO lock_mutex ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO manufacturer_id ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO max_key_size ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO max_pin_len ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO max_rw_session_count ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO max_session_count ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO min_key_size ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO min_pin_len ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO parameter ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO parameter_len ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO reserved ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO rw_session_count ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO serial_number ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO session_count ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO slot_description ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO slot_id ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO total_private_memory ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO total_public_memory ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO unlock_mutex ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO utc_time ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO value ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO value_len ##### -->
-<para>
-
-</para>
-
-