Index: mozilla/security/nss/lib/pk11wrap/secmodti.h |
=================================================================== |
--- mozilla/security/nss/lib/pk11wrap/secmodti.h (revision 191424) |
+++ mozilla/security/nss/lib/pk11wrap/secmodti.h (working copy) |
@@ -1,187 +0,0 @@ |
-/* This Source Code Form is subject to the terms of the Mozilla Public |
- * License, v. 2.0. If a copy of the MPL was not distributed with this |
- * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ |
-/* |
- * Internal header file included only by files in pkcs11 dir, or in |
- * pkcs11 specific client and server files. |
- */ |
- |
-#ifndef _SECMODTI_H_ |
-#define _SECMODTI_H_ 1 |
-#include "prmon.h" |
-#include "prtypes.h" |
-#include "nssilckt.h" |
-#include "secmodt.h" |
-#include "pkcs11t.h" |
- |
-#include "nssdevt.h" |
- |
-/* internal data structures */ |
- |
-/* Traverse slots callback */ |
-typedef struct pk11TraverseSlotStr { |
- SECStatus (*callback)(PK11SlotInfo *,CK_OBJECT_HANDLE, void *); |
- void *callbackArg; |
- CK_ATTRIBUTE *findTemplate; |
- int templateCount; |
-} pk11TraverseSlot; |
- |
- |
-/* represent a pkcs#11 slot reference counted. */ |
-struct PK11SlotInfoStr { |
- /* the PKCS11 function list for this slot */ |
- void *functionList; |
- SECMODModule *module; /* our parent module */ |
- /* Boolean to indicate the current state of this slot */ |
- PRBool needTest; /* Has this slot been tested for Export complience */ |
- PRBool isPerm; /* is this slot a permanment device */ |
- PRBool isHW; /* is this slot a hardware device */ |
- PRBool isInternal; /* is this slot one of our internal PKCS #11 devices */ |
- PRBool disabled; /* is this slot disabled... */ |
- PK11DisableReasons reason; /* Why this slot is disabled */ |
- PRBool readOnly; /* is the token in this slot read-only */ |
- PRBool needLogin; /* does the token of the type that needs |
- * authentication (still true even if token is logged |
- * in) */ |
- PRBool hasRandom; /* can this token generated random numbers */ |
- PRBool defRWSession; /* is the default session RW (we open our default |
- * session rw if the token can only handle one session |
- * at a time. */ |
- PRBool isThreadSafe; /* copied from the module */ |
- /* The actual flags (many of which are distilled into the above PRBools) */ |
- CK_FLAGS flags; /* flags from PKCS #11 token Info */ |
- /* a default session handle to do quick and dirty functions */ |
- CK_SESSION_HANDLE session; |
- PZLock *sessionLock; /* lock for this session */ |
- /* our ID */ |
- CK_SLOT_ID slotID; |
- /* persistant flags saved from startup to startup */ |
- unsigned long defaultFlags; |
- /* keep track of who is using us so we don't accidently get freed while |
- * still in use */ |
- PRInt32 refCount; /* to be in/decremented by atomic calls ONLY! */ |
- PZLock *freeListLock; |
- PK11SymKey *freeSymKeysWithSessionHead; |
- PK11SymKey *freeSymKeysHead; |
- int keyCount; |
- int maxKeyCount; |
- /* Password control functions for this slot. many of these are only |
- * active if the appropriate flag is on in defaultFlags */ |
- int askpw; /* what our password options are */ |
- int timeout; /* If we're ask_timeout, what is our timeout time is |
- * seconds */ |
- int authTransact; /* allow multiple authentications off one password if |
- * they are all part of the same transaction */ |
- int64 authTime; /* when were we last authenticated */ |
- int minPassword; /* smallest legal password */ |
- int maxPassword; /* largest legal password */ |
- uint16 series; /* break up the slot info into various groups of |
- * inserted tokens so that keys and certs can be |
- * invalidated */ |
- uint16 flagSeries; /* record the last series for the last event |
- * returned for this slot */ |
- PRBool flagState; /* record the state of the last event returned for this |
- * slot. */ |
- uint16 wrapKey; /* current wrapping key for SSL master secrets */ |
- CK_MECHANISM_TYPE wrapMechanism; |
- /* current wrapping mechanism for current wrapKey */ |
- CK_OBJECT_HANDLE refKeys[1]; /* array of existing wrapping keys for */ |
- CK_MECHANISM_TYPE *mechanismList; /* list of mechanism supported by this |
- * token */ |
- int mechanismCount; |
- /* cache the certificates stored on the token of this slot */ |
- CERTCertificate **cert_array; |
- int array_size; |
- int cert_count; |
- char serial[16]; |
- /* since these are odd sizes, keep them last. They are odd sizes to |
- * allow them to become null terminated strings */ |
- char slot_name[65]; |
- char token_name[33]; |
- PRBool hasRootCerts; |
- PRBool hasRootTrust; |
- PRBool hasRSAInfo; |
- CK_FLAGS RSAInfoFlags; |
- PRBool protectedAuthPath; |
- PRBool isActiveCard; |
- PRIntervalTime lastLoginCheck; |
- unsigned int lastState; |
- /* for Stan */ |
- NSSToken *nssToken; |
- /* fast mechanism lookup */ |
- char mechanismBits[256]; |
-}; |
- |
-/* Symetric Key structure. Reference Counted */ |
-struct PK11SymKeyStr { |
- CK_MECHANISM_TYPE type; /* type of operation this key was created for*/ |
- CK_OBJECT_HANDLE objectID; /* object id of this key in the slot */ |
- PK11SlotInfo *slot; /* Slot this key is loaded into */ |
- void *cx; /* window context in case we need to loggin */ |
- PK11SymKey *next; |
- PRBool owner; |
- SECItem data; /* raw key data if available */ |
- CK_SESSION_HANDLE session; |
- PRBool sessionOwner; |
- PRInt32 refCount; /* number of references to this key */ |
- int size; /* key size in bytes */ |
- PK11Origin origin; /* where this key came from |
- * (see def in secmodt.h) */ |
- PK11SymKey *parent; /* potential owner key of the session */ |
- uint16 series; /* break up the slot info into various groups |
- * of inserted tokens so that keys and certs |
- * can be invalidated */ |
- void *userData; /* random data the application can attach to |
- * this key */ |
- PK11FreeDataFunc freeFunc; /* function to free the user data */ |
-}; |
- |
- |
-/* |
- * hold a hash, encryption or signing context for multi-part operations. |
- * hold enough information so that multiple contexts can be interleaved |
- * if necessary. ... Not RefCounted. |
- */ |
-struct PK11ContextStr { |
- CK_ATTRIBUTE_TYPE operation; /* type of operation this context is doing |
- * (CKA_ENCRYPT, CKA_SIGN, CKA_HASH, etc. */ |
- PK11SymKey *key; /* symetric key used in this context */ |
- PK11SlotInfo *slot; /* slot this context is operationing on */ |
- CK_SESSION_HANDLE session; /* session this context is using */ |
- PZLock *sessionLock; /* lock before accessing a PKCS #11 |
- * session */ |
- PRBool ownSession;/* do we own the session? */ |
- void *cx; /* window context in case we need to loggin*/ |
- void *savedData;/* save data when we are multiplexing on a |
- * single context */ |
- unsigned long savedLength; /* length of the saved context */ |
- SECItem *param; /* mechanism parameters used to build this |
- context */ |
- PRBool init; /* has this contexted been initialized */ |
- CK_MECHANISM_TYPE type; /* what is the PKCS #11 this context is |
- * representing (usually what algorithm is |
- * being used (CKM_RSA_PKCS, CKM_DES, |
- * CKM_SHA, etc.*/ |
- PRBool fortezzaHack; /*Fortezza SSL has some special |
- * non-standard semantics*/ |
-}; |
- |
-/* |
- * structure to hold a pointer to a unique PKCS #11 object |
- * (pointer to the slot and the object id). |
- */ |
-struct PK11GenericObjectStr { |
- PK11GenericObject *prev; |
- PK11GenericObject *next; |
- PK11SlotInfo *slot; |
- CK_OBJECT_HANDLE objectID; |
-}; |
- |
- |
-#define MAX_TEMPL_ATTRS 16 /* maximum attributes in template */ |
- |
-/* This mask includes all CK_FLAGs with an equivalent CKA_ attribute. */ |
-#define CKF_KEY_OPERATION_FLAGS 0x000e7b00UL |
- |
- |
-#endif /* _SECMODTI_H_ */ |