diff options
author | Stef Walter <stef@memberwebs.com> | 2008-12-09 20:59:55 +0000 |
---|---|---|
committer | Stef Walter <stef@memberwebs.com> | 2008-12-09 20:59:55 +0000 |
commit | ae56e5c788e3ed6c60d98d445574d3042aaae24f (patch) | |
tree | 9b3acb30fbdfd9e791c81dafb895fd92b396ebfd /p11-capi-session.h | |
parent | 398b05acabebf6d882c0aaa94a4dfd3f5d6431d4 (diff) |
Move into module folder
Diffstat (limited to 'p11-capi-session.h')
-rw-r--r-- | p11-capi-session.h | 169 |
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 */ |