summaryrefslogtreecommitdiff
path: root/p11-capi-session.h
diff options
context:
space:
mode:
authorStef Walter <stef@memberwebs.com>2008-12-09 20:59:55 +0000
committerStef Walter <stef@memberwebs.com>2008-12-09 20:59:55 +0000
commitae56e5c788e3ed6c60d98d445574d3042aaae24f (patch)
tree9b3acb30fbdfd9e791c81dafb895fd92b396ebfd /p11-capi-session.h
parent398b05acabebf6d882c0aaa94a4dfd3f5d6431d4 (diff)
Move into module folder
Diffstat (limited to 'p11-capi-session.h')
-rw-r--r--p11-capi-session.h169
1 files changed, 0 insertions, 169 deletions
diff --git a/p11-capi-session.h b/p11-capi-session.h
deleted file mode 100644
index 8f84026..0000000
--- a/p11-capi-session.h
+++ /dev/null
@@ -1,169 +0,0 @@
-/*
- * Copyright (C) 2007 Stef Walter
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
- */
-
-#ifndef P11C_SESSION_H
-#define P11C_SESSION_H
-
-#include "p11-capi.h"
-
-/* --------------------------------------------------------------------
- *
- * Session = P11cSession
- * - A PKCS#11 Session
- *
- * Objects = P11cObject
- * - There's a global list of objects in p11c-object.c indexed by
- * object handle.
- * - The object itself has no attributes or cached data, but knows how
- * to load data when needed.
- * - Each object has a unique key which guarantees we don't load the
- * same object twice with two different object handles.
- *
- * Object Data = P11cObjectData
- * - Object Data is owned by the Session
- * - Loaded data and/or attributes for an object.
- */
-
-/* Callback to cleanup a current operation */
-typedef void (*P11cSessionCancel) (struct _P11cSession* sess);
-
-/* Represents an open session */
-typedef struct _P11cSession
-{
- CK_SESSION_HANDLE id; /* Unique ID for this session */
- CK_SLOT_ID slot;
- int in_call; /* Whether this session is use in PKCS#11 function */
-
- HCERTSTORE store; /* Handle to an open certificate store */
-
- BOOL read_write; /* A read-write session? */
-
- int operation_type; /* Whether an operation is happening or not */
- void* operation_data; /* Data for this operation */
- P11cSessionCancel operation_cancel; /* Callback to cancel operation when necessary */
-
- P11cHash* object_data;
-
- CK_NOTIFY notify_callback; /* Application specified callback */
- CK_VOID_PTR user_data; /* Argument for above */
-
- int refs; /* Reference count */
- HANDLE mutex; /* Mutex for protecting this structure */
-}
-P11cSession;
-
-/* Debug print something related to a session */
-#define DBGS(sess, msg) \
- p11c_debug("S%d: %s", (sess) ? (sess)->id : 0, (msg))
-
-/* Create a session */
-CK_RV p11c_session_create (CK_SLOT_ID slot, P11cSession** ret);
-
-/* Destroy a session */
-void p11c_session_destroy (P11cSession* sess);
-
-/* Register a new session */
-CK_RV p11c_session_register (P11cSession* sess);
-
-/* Get information about a session */
-void p11c_session_get_info (P11cSession* sess,
- CK_SESSION_INFO_PTR info);
-
-/* Get a session from a handle, and lock it */
-CK_RV p11c_session_get_lock_ref (CK_ULONG id, BOOL writable,
- P11cSession **sess);
-
-/* Get a session from a handle, remove it from list, and lock it */
-CK_RV p11c_session_remove_lock_ref (CK_ULONG id, P11cSession **sess);
-
-/* Unlock and unreference a session */
-void p11c_session_unref_unlock (P11cSession* sess);
-
-/* Close all sessions on a certain slot/token */
-CK_RV p11c_session_close_all (CK_SLOT_ID slot);
-
-
-
-/* Start a find operation on a session */
-CK_RV p11c_session_find_init (P11cSession* sess,
- CK_ATTRIBUTE_PTR templ,
- CK_ULONG count);
-
-/* Return results from a find operation */
-CK_RV p11c_session_find (P11cSession* sess,
- CK_OBJECT_HANDLE_PTR objects,
- CK_ULONG max_object_count,
- CK_ULONG_PTR object_count);
-
-/* End a find operation */
-CK_RV p11c_session_find_final (P11cSession* sess);
-
-
-/* Start a sign operation on a session */
-CK_RV p11c_session_sign_init (P11cSession* sess,
- CK_MECHANISM_PTR mech,
- P11cObjectData *objdata);
-
-/* Perform sign operation */
-CK_RV p11c_session_sign (P11cSession* sess,
- CK_BYTE_PTR data, CK_ULONG n_data,
- CK_BYTE_PTR sig, CK_ULONG_PTR n_sig);
-
-/* Start a decrypt operation on a session */
-CK_RV p11c_session_decrypt_init (P11cSession* sess,
- CK_MECHANISM_PTR mech,
- P11cObjectData *objdata);
-
-/* Perform decrypt operation */
-CK_RV p11c_session_decrypt (P11cSession* sess,
- CK_BYTE_PTR encdata, CK_ULONG n_encdata,
- CK_BYTE_PTR result, CK_ULONG_PTR n_result);
-
-/* Get object data for an object */
-CK_RV p11c_session_get_object_data (P11cSession* sess,
- P11cObject* obj,
- P11cObjectData** objdata);
-
-/* Get object data for an object handle */
-CK_RV p11c_session_get_object_data_for (P11cSession* sess,
- CK_OBJECT_HANDLE hand,
- P11cObjectData** objdata);
-
-/* Set object data for an object */
-void p11c_session_take_object_data (P11cSession* sess,
- P11cObject* obj,
- P11cObjectData* objdata);
-
-/* Clear object data for an object */
-void p11c_session_clear_object_data (P11cSession* sess,
- P11cObject* obj);
-
-/* Enumerate object data for all objects */
-typedef void (*P11cEnumObjectData) (P11cSession* sess,
- P11cObject* obj,
- P11cObjectData* data,
- void* arg);
-
-void p11c_session_enum_object_data (P11cSession* sess,
- P11cEnumObjectData enum_func,
- void* arg);
-
-void p11c_session_cleanup_all (void);
-
-#endif /* P11C_SESSION_H */