cryptlib  3.4.1
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Macros
Classes | Macros | Typedefs | Enumerations | Functions | Variables
cryptkrn.h File Reference

Go to the source code of this file.

Classes

struct  MESSAGE_DATA
 
struct  MECHANISM_WRAP_INFO
 
struct  MECHANISM_SIGN_INFO
 
struct  MECHANISM_DERIVE_INFO
 
struct  MECHANISM_KDF_INFO
 
struct  MESSAGE_CREATEOBJECT_INFO
 
struct  MESSAGE_KEYMGMT_INFO
 
struct  MESSAGE_CERTMGMT_INFO
 
struct  MESSAGE_FUNCTION_EXTINFO
 
struct  TF
 

Macros

#define ORIGINAL_VALUE(x)   orig_##x
 
#define ORIGINAL_INT(x)   const int orig_##x = ( int ) x
 
#define ORIGINAL_PTR(x)   const BYTE *orig_##x = ( const BYTE * ) x
 
#define ORIGINAL_INT_VAR(x, y)   const int orig_##x = ( y )
 
#define DECLARE_ORIGINAL_INT(x)   int orig_##x
 
#define STORE_ORIGINAL_INT(x, y)   orig_##x = ( y )
 
#define FORALL(iter, start, end, condition)
 
#define EXISTS(iter, start, end, condition)
 
#define SUBTYPE_CLASS_MASK   0x70000000L
 
#define SUBTYPE_CLASS_A   0x10000000L
 
#define SUBTYPE_CLASS_B   0x20000000L
 
#define SUBTYPE_CLASS_C   0x40000000L
 
#define MK_SUBTYPE_A(value)   ( SUBTYPE_CLASS_A | ( 1L << ( value - 1 ) ) )
 
#define MK_SUBTYPE_B(value)   ( SUBTYPE_CLASS_B | ( 1L << ( value - 1 ) ) )
 
#define MK_SUBTYPE_C(value)   ( SUBTYPE_CLASS_C | ( 1L << ( value - 1 ) ) )
 
#define SUBTYPE_NONE   0x00000000L
 
#define SUBTYPE_CTX_CONV   MK_SUBTYPE_A( 1 )
 
#define SUBTYPE_CTX_PKC   MK_SUBTYPE_A( 2 )
 
#define SUBTYPE_CTX_HASH   MK_SUBTYPE_A( 3 )
 
#define SUBTYPE_CTX_MAC   MK_SUBTYPE_A( 4 )
 
#define SUBTYPE_CTX_GENERIC   MK_SUBTYPE_A( 5 )
 
#define SUBTYPE_CERT_CERT   MK_SUBTYPE_A( 6 )
 
#define SUBTYPE_CERT_CERTREQ   MK_SUBTYPE_A( 7 )
 
#define SUBTYPE_CERT_REQ_CERT   MK_SUBTYPE_A( 8 )
 
#define SUBTYPE_CERT_REQ_REV   MK_SUBTYPE_A( 9 )
 
#define SUBTYPE_CERT_CERTCHAIN   MK_SUBTYPE_A( 10 )
 
#define SUBTYPE_CERT_ATTRCERT   MK_SUBTYPE_A( 11 )
 
#define SUBTYPE_CERT_CRL   MK_SUBTYPE_A( 12 )
 
#define SUBTYPE_CERT_CMSATTR   MK_SUBTYPE_A( 13 )
 
#define SUBTYPE_CERT_RTCS_REQ   MK_SUBTYPE_A( 14 )
 
#define SUBTYPE_CERT_RTCS_RESP   MK_SUBTYPE_A( 15 )
 
#define SUBTYPE_CERT_OCSP_REQ   MK_SUBTYPE_A( 16 )
 
#define SUBTYPE_CERT_OCSP_RESP   MK_SUBTYPE_A( 17 )
 
#define SUBTYPE_CERT_PKIUSER   MK_SUBTYPE_A( 18 )
 
#define SUBTYPE_ENV_ENV   MK_SUBTYPE_B( 1 )
 
#define SUBTYPE_ENV_ENV_PGP   MK_SUBTYPE_B( 2 )
 
#define SUBTYPE_ENV_DEENV   MK_SUBTYPE_B( 3 )
 
#define SUBTYPE_KEYSET_FILE   MK_SUBTYPE_B( 4 )
 
#define SUBTYPE_KEYSET_FILE_PARTIAL   MK_SUBTYPE_B( 5 )
 
#define SUBTYPE_KEYSET_FILE_READONLY   MK_SUBTYPE_B( 6 )
 
#define SUBTYPE_KEYSET_DBMS   MK_SUBTYPE_B( 7 )
 
#define SUBTYPE_KEYSET_DBMS_STORE   MK_SUBTYPE_B( 8 )
 
#define SUBTYPE_KEYSET_HTTP   MK_SUBTYPE_B( 9 )
 
#define SUBTYPE_KEYSET_LDAP   MK_SUBTYPE_B( 10 )
 
#define SUBTYPE_DEV_SYSTEM   MK_SUBTYPE_B( 11 )
 
#define SUBTYPE_DEV_PKCS11   MK_SUBTYPE_B( 12 )
 
#define SUBTYPE_DEV_CRYPTOAPI   MK_SUBTYPE_B( 13 )
 
#define SUBTYPE_DEV_HARDWARE   MK_SUBTYPE_B( 14 )
 
#define SUBTYPE_SESSION_SSH   MK_SUBTYPE_C( 1 )
 
#define SUBTYPE_SESSION_SSH_SVR   MK_SUBTYPE_C( 2 )
 
#define SUBTYPE_SESSION_SSL   MK_SUBTYPE_C( 3 )
 
#define SUBTYPE_SESSION_SSL_SVR   MK_SUBTYPE_C( 4 )
 
#define SUBTYPE_SESSION_RTCS   MK_SUBTYPE_C( 5 )
 
#define SUBTYPE_SESSION_RTCS_SVR   MK_SUBTYPE_C( 6 )
 
#define SUBTYPE_SESSION_OCSP   MK_SUBTYPE_C( 7 )
 
#define SUBTYPE_SESSION_OCSP_SVR   MK_SUBTYPE_C( 8 )
 
#define SUBTYPE_SESSION_TSP   MK_SUBTYPE_C( 9 )
 
#define SUBTYPE_SESSION_TSP_SVR   MK_SUBTYPE_C( 10 )
 
#define SUBTYPE_SESSION_CMP   MK_SUBTYPE_C( 11 )
 
#define SUBTYPE_SESSION_CMP_SVR   MK_SUBTYPE_C( 12 )
 
#define SUBTYPE_SESSION_SCEP   MK_SUBTYPE_C( 13 )
 
#define SUBTYPE_SESSION_SCEP_SVR   MK_SUBTYPE_C( 14 )
 
#define SUBTYPE_SESSION_CERT_SVR   MK_SUBTYPE_C( 15 )
 
#define SUBTYPE_USER_SO   MK_SUBTYPE_C( 16 )
 
#define SUBTYPE_USER_NORMAL   MK_SUBTYPE_C( 17 )
 
#define SUBTYPE_USER_CA   MK_SUBTYPE_C( 18 )
 
#define MESSAGE_FLAG_INTERNAL   0x100
 
#define MKINTERNAL(message)   ( message | MESSAGE_FLAG_INTERNAL )
 
#define MESSAGE_MASK   0xFF
 
#define setMessageData(msgDataPtr, dataPtr, dataLength)
 
#define MESSAGE_VALUE_TRUE   ( ( MESSAGE_CAST ) &messageValueTrue )
 
#define MESSAGE_VALUE_FALSE   ( ( MESSAGE_CAST ) &messageValueFalse )
 
#define MESSAGE_VALUE_OK   ( ( MESSAGE_CAST ) &messageValueCryptOK )
 
#define MESSAGE_VALUE_ERROR   ( ( MESSAGE_CAST ) &messageValueCryptError )
 
#define MESSAGE_VALUE_UNUSED   ( ( MESSAGE_CAST ) &messageValueCryptUnused )
 
#define MESSAGE_VALUE_DEFAULT   ( ( MESSAGE_CAST ) &messageValueCryptUseDefault )
 
#define MESSAGE_VALUE_CURSORFIRST   ( ( MESSAGE_CAST ) &messageValueCursorFirst )
 
#define MESSAGE_VALUE_CURSORNEXT   ( ( MESSAGE_CAST ) &messageValueCursorNext )
 
#define MESSAGE_VALUE_CURSORPREVIOUS   ( ( MESSAGE_CAST ) &messageValueCursorPrevious )
 
#define MESSAGE_VALUE_CURSORLAST   ( ( MESSAGE_CAST ) &messageValueCursorLast )
 
#define isAttribute(attribute)
 
#define isInternalAttribute(attribute)
 
#define isAttributeMessage(message)
 
#define isActionMessage(message)
 
#define isMechanismActionMessage(message)
 
#define SYSTEM_OBJECT_HANDLE   0 /* Internal system object */
 
#define DEFAULTUSER_OBJECT_HANDLE   1 /* Default user object */
 
#define NO_SYSTEM_OBJECTS   2 /* Total number of system objects */
 
#define MAX_OBJECTS   16384
 
#define ACTION_PERM_NOTAVAIL   0x00
 
#define ACTION_PERM_NONE   0x01
 
#define ACTION_PERM_NONE_EXTERNAL   0x02
 
#define ACTION_PERM_ALL   0x03
 
#define ACTION_PERM_NONE_ALL   0x000
 
#define ACTION_PERM_NONE_EXTERNAL_ALL   0xAAA
 
#define ACTION_PERM_ALL_MAX   0xFFF
 
#define ACTION_PERM_BASE   MESSAGE_CTX_ENCRYPT
 
#define ACTION_PERM_MASK   0x03
 
#define ACTION_PERM_BITS   2
 
#define ACTION_PERM_COUNT
 
#define ACTION_PERM_LAST   ( 1 << ( ( ( ACTION_PERM_COUNT ) * ACTION_PERM_BITS ) + 1 ) )
 
#define ACTION_PERM_SHIFT(action)   ( ( ( action ) - ACTION_PERM_BASE ) * ACTION_PERM_BITS )
 
#define MK_ACTION_PERM(action, perm)   ( ( perm ) << ACTION_PERM_SHIFT( action ) )
 
#define MK_ACTION_PERM_NONE_EXTERNAL(action)   ( ( action ) & ACTION_PERM_NONE_EXTERNAL_ALL )
 
#define ACTION_PERM_FLAG_NONE   0x000
 
#define ACTION_PERM_FLAG_MAX   0xFFF
 
#define clearMechanismInfo(mechanismInfo)   memset( mechanismInfo, 0, sizeof( *mechanismInfo ) )
 
#define setMechanismWrapInfo(mechanismInfo, wrapped, wrappedLen, key, keyLen, keyCtx, wrapCtx)
 
#define setMechanismWrapInfoEx(mechanismInfo, wrapped, wrappedLen, key, keyLen, keyCtx, wrapCtx, auxCtx, auxInf)
 
#define setMechanismSignInfo(mechanismInfo, sig, sigLen, hashCtx, hashCtx2, signCtx)
 
#define setMechanismDeriveInfo(mechanismInfo, out, outLen, in, inLen, hAlgo, slt, sltLen, iters)
 
#define setMechanismKDFInfo(mechanismInfo, keyCtx, masterKeyCtx, hAlgo, slt, sltLen)
 
#define setMessageCreateObjectInfo(createObjectInfo, a1)
 
#define setMessageCreateObjectIndirectInfo(createObjectInfo, data, dataLen, type)
 
#define KEYMGMT_FLAG_NONE   0x0000 /* No flag */
 
#define KEYMGMT_FLAG_CHECK_ONLY   0x0001 /* Perform existence check only */
 
#define KEYMGMT_FLAG_LABEL_ONLY   0x0002 /* Get key label only */
 
#define KEYMGMT_FLAG_UPDATE   0x0004 /* Update existing (allow dups) */
 
#define KEYMGMT_FLAG_DATAONLY_CERT   0x0008 /* Create data-only certs */
 
#define KEYMGMT_FLAG_USAGE_CRYPT   0x0010 /* Prefer encryption key */
 
#define KEYMGMT_FLAG_USAGE_SIGN   0x0020 /* Prefer signature key */
 
#define KEYMGMT_FLAG_GETISSUER   0x0040 /* Get issuing PKI user for cert */
 
#define KEYMGMT_FLAG_INITIALOP   0x0080 /* Initial cert issue operation */
 
#define KEYMGMT_FLAG_MAX   0x00FF /* Maximum possible flag value */
 
#define KEYMGMT_MASK_USAGEOPTIONS
 
#define KEYMGMT_MASK_CERTOPTIONS
 
#define setMessageKeymgmtInfo(keymgmtInfo, idType, id, idLength, aux, auxLen, keyFlags)
 
#define setMessageCertMgmtInfo(certMgmtInfo, mgmtCaKey, mgmtRequest)
 
#define initMessageExtInfo(messageExtInfo, objectInfo)
 
#define setMessageObjectLocked(messageExtInfo)   ( messageExtInfo )->isUnlocked = FALSE
 
#define setMessageObjectUnlocked(messageExtInfo)   ( messageExtInfo )->isUnlocked = TRUE
 
#define isMessageObjectUnlocked(messageExtInfo)   ( ( messageExtInfo )->isUnlocked )
 
#define CREATEOBJECT_FLAG_NONE   0x00 /* No create-object flags */
 
#define CREATEOBJECT_FLAG_SECUREMALLOC   0x01 /* Use krnlMemAlloc() to alloc.*/
 
#define CREATEOBJECT_FLAG_DUMMY   0x02 /* Dummy obj.used as placeholder */
 
#define CREATEOBJECT_FLAG_PERSISTENT   0x04 /* Obj.backed by key in device */
 
#define CREATEOBJECT_FLAG_MAX   0x0F /* Maximum possible flag value */
 
#define krnlSendNotifier(handle, message)   krnlSendMessage( handle, message, NULL, 0 )
 

Typedefs

typedef int OBJECT_SUBTYPE
 
typedef void * MESSAGE_CAST
 
typedef int(* MESSAGE_FUNCTION )(INOUT void *objectInfoPtr, const MESSAGE_TYPE message, void *messageDataPtr, const int messageValue) STDC_NONNULL_ARG((1))
 
typedef void(* THREAD_FUNCTION )(const struct TF *threadParams)
 
typedef BYTE THREAD_STATE [48]
 
typedef struct TF THREAD_PARAMS
 

Enumerations

enum  OBJECT_TYPE {
  OBJECT_TYPE_NONE, OBJECT_TYPE_CONTEXT, OBJECT_TYPE_KEYSET, OBJECT_TYPE_ENVELOPE,
  OBJECT_TYPE_CERTIFICATE, OBJECT_TYPE_DEVICE, OBJECT_TYPE_SESSION, OBJECT_TYPE_USER,
  OBJECT_TYPE_LAST
}
 
enum  MESSAGE_TYPE {
  MESSAGE_NONE, MESSAGE_DESTROY, MESSAGE_INCREFCOUNT, MESSAGE_DECREFCOUNT,
  MESSAGE_GETDEPENDENT, MESSAGE_SETDEPENDENT, MESSAGE_CLONE, MESSAGE_GETATTRIBUTE,
  MESSAGE_GETATTRIBUTE_S, MESSAGE_SETATTRIBUTE, MESSAGE_SETATTRIBUTE_S, MESSAGE_DELETEATTRIBUTE,
  MESSAGE_COMPARE, MESSAGE_CHECK, MESSAGE_SELFTEST, MESSAGE_CHANGENOTIFY,
  MESSAGE_CTX_ENCRYPT, MESSAGE_CTX_DECRYPT, MESSAGE_CTX_SIGN, MESSAGE_CTX_SIGCHECK,
  MESSAGE_CTX_HASH, MESSAGE_CTX_GENKEY, MESSAGE_CTX_GENIV, MESSAGE_CRT_SIGN,
  MESSAGE_CRT_SIGCHECK, MESSAGE_CRT_EXPORT, MESSAGE_DEV_QUERYCAPABILITY, MESSAGE_DEV_EXPORT,
  MESSAGE_DEV_IMPORT, MESSAGE_DEV_SIGN, MESSAGE_DEV_SIGCHECK, MESSAGE_DEV_DERIVE,
  MESSAGE_DEV_KDF, MESSAGE_DEV_CREATEOBJECT, MESSAGE_DEV_CREATEOBJECT_INDIRECT, MESSAGE_ENV_PUSHDATA,
  MESSAGE_ENV_POPDATA, MESSAGE_KEY_GETKEY, MESSAGE_KEY_SETKEY, MESSAGE_KEY_DELETEKEY,
  MESSAGE_KEY_GETFIRSTCERT, MESSAGE_KEY_GETNEXTCERT, MESSAGE_KEY_CERTMGMT, MESSAGE_USER_USERMGMT,
  MESSAGE_USER_TRUSTMGMT, MESSAGE_LAST, IMESSAGE_DESTROY = MKINTERNAL( MESSAGE_DESTROY ), IMESSAGE_INCREFCOUNT = MKINTERNAL( MESSAGE_INCREFCOUNT ),
  IMESSAGE_DECREFCOUNT = MKINTERNAL( MESSAGE_DECREFCOUNT ), IMESSAGE_GETDEPENDENT = MKINTERNAL( MESSAGE_GETDEPENDENT ), IMESSAGE_SETDEPENDENT = MKINTERNAL( MESSAGE_SETDEPENDENT ), IMESSAGE_CLONE = MKINTERNAL( MESSAGE_CLONE ),
  IMESSAGE_GETATTRIBUTE = MKINTERNAL( MESSAGE_GETATTRIBUTE ), IMESSAGE_GETATTRIBUTE_S = MKINTERNAL( MESSAGE_GETATTRIBUTE_S ), IMESSAGE_SETATTRIBUTE = MKINTERNAL( MESSAGE_SETATTRIBUTE ), IMESSAGE_SETATTRIBUTE_S = MKINTERNAL( MESSAGE_SETATTRIBUTE_S ),
  IMESSAGE_DELETEATTRIBUTE = MKINTERNAL( MESSAGE_DELETEATTRIBUTE ), IMESSAGE_COMPARE = MKINTERNAL( MESSAGE_COMPARE ), IMESSAGE_CHECK = MKINTERNAL( MESSAGE_CHECK ), IMESSAGE_SELFTEST = MKINTERNAL( MESSAGE_SELFTEST ),
  IMESSAGE_CHANGENOTIFY = MKINTERNAL( MESSAGE_CHANGENOTIFY ), IMESSAGE_CTX_ENCRYPT = MKINTERNAL( MESSAGE_CTX_ENCRYPT ), IMESSAGE_CTX_DECRYPT = MKINTERNAL( MESSAGE_CTX_DECRYPT ), IMESSAGE_CTX_SIGN = MKINTERNAL( MESSAGE_CTX_SIGN ),
  IMESSAGE_CTX_SIGCHECK = MKINTERNAL( MESSAGE_CTX_SIGCHECK ), IMESSAGE_CTX_HASH = MKINTERNAL( MESSAGE_CTX_HASH ), IMESSAGE_CTX_GENKEY = MKINTERNAL( MESSAGE_CTX_GENKEY ), IMESSAGE_CTX_GENIV = MKINTERNAL( MESSAGE_CTX_GENIV ),
  IMESSAGE_CRT_SIGN = MKINTERNAL( MESSAGE_CRT_SIGN ), IMESSAGE_CRT_SIGCHECK = MKINTERNAL( MESSAGE_CRT_SIGCHECK ), IMESSAGE_CRT_EXPORT = MKINTERNAL( MESSAGE_CRT_EXPORT ), IMESSAGE_DEV_QUERYCAPABILITY = MKINTERNAL( MESSAGE_DEV_QUERYCAPABILITY ),
  IMESSAGE_DEV_EXPORT = MKINTERNAL( MESSAGE_DEV_EXPORT ), IMESSAGE_DEV_IMPORT = MKINTERNAL( MESSAGE_DEV_IMPORT ), IMESSAGE_DEV_SIGN = MKINTERNAL( MESSAGE_DEV_SIGN ), IMESSAGE_DEV_SIGCHECK = MKINTERNAL( MESSAGE_DEV_SIGCHECK ),
  IMESSAGE_DEV_DERIVE = MKINTERNAL( MESSAGE_DEV_DERIVE ), IMESSAGE_DEV_KDF = MKINTERNAL( MESSAGE_DEV_KDF ), IMESSAGE_DEV_CREATEOBJECT = MKINTERNAL( MESSAGE_DEV_CREATEOBJECT ), IMESSAGE_DEV_CREATEOBJECT_INDIRECT = MKINTERNAL( MESSAGE_DEV_CREATEOBJECT_INDIRECT ),
  IMESSAGE_ENV_PUSHDATA = MKINTERNAL( MESSAGE_ENV_PUSHDATA ), IMESSAGE_ENV_POPDATA = MKINTERNAL( MESSAGE_ENV_POPDATA ), IMESSAGE_KEY_GETKEY = MKINTERNAL( MESSAGE_KEY_GETKEY ), IMESSAGE_KEY_SETKEY = MKINTERNAL( MESSAGE_KEY_SETKEY ),
  IMESSAGE_KEY_DELETEKEY = MKINTERNAL( MESSAGE_KEY_DELETEKEY ), IMESSAGE_KEY_GETFIRSTCERT = MKINTERNAL( MESSAGE_KEY_GETFIRSTCERT ), IMESSAGE_KEY_GETNEXTCERT = MKINTERNAL( MESSAGE_KEY_GETNEXTCERT ), IMESSAGE_KEY_CERTMGMT = MKINTERNAL( MESSAGE_KEY_CERTMGMT ),
  IMESSAGE_USER_USERMGMT = MKINTERNAL( MESSAGE_USER_USERMGMT ), IMESSAGE_USER_TRUSTMGMT = MKINTERNAL( MESSAGE_USER_TRUSTMGMT ), IMESSAGE_LAST = MKINTERNAL( MESSAGE_LAST )
}
 
enum  MESSAGE_COMPARE_TYPE {
  MESSAGE_COMPARE_NONE, MESSAGE_COMPARE_HASH, MESSAGE_COMPARE_ICV, MESSAGE_COMPARE_KEYID,
  MESSAGE_COMPARE_KEYID_PGP, MESSAGE_COMPARE_KEYID_OPENPGP, MESSAGE_COMPARE_SUBJECT, MESSAGE_COMPARE_ISSUERANDSERIALNUMBER,
  MESSAGE_COMPARE_FINGERPRINT_SHA1, MESSAGE_COMPARE_FINGERPRINT_SHA2, MESSAGE_COMPARE_FINGERPRINT_SHAng, MESSAGE_COMPARE_CERTOBJ,
  MESSAGE_COMPARE_LAST
}
 
enum  MESSAGE_CHECK_TYPE {
  MESSAGE_CHECK_NONE, MESSAGE_CHECK_PKC, MESSAGE_CHECK_PKC_PRIVATE, MESSAGE_CHECK_PKC_ENCRYPT,
  MESSAGE_CHECK_PKC_DECRYPT, MESSAGE_CHECK_PKC_SIGCHECK, MESSAGE_CHECK_PKC_SIGN, MESSAGE_CHECK_PKC_KA_EXPORT,
  MESSAGE_CHECK_PKC_KA_IMPORT, MESSAGE_CHECK_CRYPT, MESSAGE_CHECK_HASH, MESSAGE_CHECK_MAC,
  MESSAGE_CHECK_CRYPT_READY, MESSAGE_CHECK_MAC_READY, MESSAGE_CHECK_KEYGEN_READY, MESSAGE_CHECK_PKC_ENCRYPT_AVAIL,
  MESSAGE_CHECK_PKC_DECRYPT_AVAIL, MESSAGE_CHECK_PKC_SIGCHECK_AVAIL, MESSAGE_CHECK_PKC_SIGN_AVAIL, MESSAGE_CHECK_PKC_KA_EXPORT_AVAIL,
  MESSAGE_CHECK_PKC_KA_IMPORT_AVAIL, MESSAGE_CHECK_CERT, MESSAGE_CHECK_CERTxx, MESSAGE_CHECK_CA,
  MESSAGE_CHECK_CACERT, MESSAGE_CHECK_LAST
}
 
enum  MESSAGE_CHANGENOTIFY_TYPE {
  MESSAGE_CHANGENOTIFY_NONE, MESSAGE_CHANGENOTIFY_STATE, MESSAGE_CHANGENOTIFY_OBJHANDLE, MESSAGE_CHANGENOTIFY_OWNERHANDLE,
  MESSAGE_CHANGENOTIFY_LAST
}
 
enum  MESSAGE_USERMGMT_TYPE { MESSAGE_USERMGMT_NONE, MESSAGE_USERMGMT_ZEROISE, MESSAGE_USERMGMT_LAST }
 
enum  MESSAGE_TRUSTMGMT_TYPE {
  MESSAGE_TRUSTMGMT_NONE, MESSAGE_TRUSTMGMT_ADD, MESSAGE_TRUSTMGMT_DELETE, MESSAGE_TRUSTMGMT_CHECK,
  MESSAGE_TRUSTMGMT_GETISSUER, MESSAGE_TRUSTMGMT_LAST
}
 
enum  MESSAGE_SETDEPENDENT_TYPE { SETDEP_OPTION_NONE, SETDEP_OPTION_NOINCREF, SETDEP_OPTION_INCREF, SETDEP_OPTION_LAST }
 
enum  MECHANISM_TYPE {
  MECHANISM_NONE, MECHANISM_ENC_PKCS1, MECHANISM_ENC_PKCS1_PGP, MECHANISM_ENC_PKCS1_RAW,
  MECHANISM_ENC_OAEP, MECHANISM_ENC_CMS, MECHANISM_SIG_PKCS1, MECHANISM_SIG_SSL,
  MECHANISM_DERIVE_PKCS5, MECHANISM_DERIVE_PKCS12, MECHANISM_DERIVE_SSL, MECHANISM_DERIVE_TLS,
  MECHANISM_DERIVE_TLS12, MECHANISM_DERIVE_CMP, MECHANISM_DERIVE_PGP, MECHANISM_PRIVATEKEYWRAP,
  MECHANISM_PRIVATEKEYWRAP_PKCS8, MECHANISM_PRIVATEKEYWRAP_PGP2, MECHANISM_PRIVATEKEYWRAP_OPENPGP_OLD, MECHANISM_PRIVATEKEYWRAP_OPENPGP,
  MECHANISM_LAST
}
 
enum  KEYMGMT_ITEM_TYPE {
  KEYMGMT_ITEM_NONE, KEYMGMT_ITEM_PUBLICKEY, KEYMGMT_ITEM_PRIVATEKEY, KEYMGMT_ITEM_SECRETKEY,
  KEYMGMT_ITEM_REQUEST, KEYMGMT_ITEM_REVREQUEST, KEYMGMT_ITEM_PKIUSER, KEYMGMT_ITEM_REVOCATIONINFO,
  KEYMGMT_ITEM_KEYMETADATA, KEYMGMT_ITEM_DATA, KEYMGMT_ITEM_LAST
}
 
enum  SEMAPHORE_TYPE { SEMAPHORE_NONE, SEMAPHORE_DRIVERBIND, SEMAPHORE_LAST }
 
enum  MUTEX_TYPE {
  MUTEX_NONE, MUTEX_SCOREBOARD, MUTEX_SOCKETPOOL, MUTEX_RANDOM,
  MUTEX_LAST
}
 

Functions

int initCryptlib (void)
 
int endCryptlib (void)
 
CHECK_RETVAL STDC_NONNULL_ARG ((1, 2, 9)) int krnlCreateObject(OUT_HANDLE_OPT int *objectHandle
 
CHECK_RETVAL OUT_BUFFER_ALLOC_OPT (objectDataSize) void **objectDataPtr
 
CHECK_RETVAL IN_LENGTH_SHORT
const int 
IN_ENUM (OBJECT) const OBJECT_TYPE type
 
CHECK_RETVAL IN_LENGTH_SHORT
const int 
IN_ENUM (OBJECT_SUB) const OBJECT_SUBTYPE subType
 
CHECK_RETVAL IN_LENGTH_SHORT
const int 
IN_FLAGS (CREATEOBJECT) const int createObjectFlags
 
CHECK_RETVAL IN_LENGTH_SHORT
const int IN_HANDLE const
CRYPT_USER 
IN_FLAGS (ACTION) const int actionFlags
 
int krnlSendMessage (IN_HANDLE const int objectHandle, IN_MESSAGE const MESSAGE_TYPE message, void *messageDataPtr, const int messageValue)
 
CHECK_RETVAL STDC_NONNULL_ARG ((3)) int krnlAcquireObject(IN_HANDLE const int objectHandle
 
int krnlReleaseObject (IN_HANDLE const int objectHandle)
 
 STDC_NONNULL_ARG ((2)) int krnlSuspendObject(IN_HANDLE const int objectHandle
 
CHECK_RETVAL int krnlResumeObject (IN_HANDLE const int objectHandle, IN_INT_Z const int refCount)
 
CHECK_RETVAL_BOOL BOOLEAN krnlIsExiting (void)
 
CHECK_RETVAL STDC_NONNULL_ARG ((1)) int krnlDispatchThread(THREAD_FUNCTION threadFunction
 
CHECK_RETVAL_BOOL BOOLEAN krnlWaitSemaphore (IN_ENUM(SEMAPHORE) const SEMAPHORE_TYPE semaphore)
 
CHECK_RETVAL int krnlEnterMutex (IN_ENUM(MUTEX) const MUTEX_TYPE mutex)
 
void krnlExitMutex (IN_ENUM(MUTEX) const MUTEX_TYPE mutex)
 

Variables

const int messageValueTrue
 
const int messageValueFalse
 
const int messageValueCryptOK
 
const int messageValueCryptError
 
const int messageValueCryptUnused
 
const int messageValueCryptUseDefault
 
const int messageValueCursorFirst
 
const int messageValueCursorNext
 
const int messageValueCursorPrevious
 
const int messageValueCursorLast
 
CHECK_RETVAL IN_LENGTH_SHORT
const int 
objectDataSize
 
CHECK_RETVAL IN_LENGTH_SHORT
const int IN_HANDLE const
CRYPT_USER 
owner
 
CHECK_RETVAL IN_LENGTH_SHORT
const int IN_HANDLE const
CRYPT_USER IN
CALLBACK_FUNCTION
MESSAGE_FUNCTION 
messageFunction
 
CHECK_RETVAL OUT_OPT_PTR void ** objectPtr
 
CHECK_RETVAL OUT_OPT_PTR void
IN_ERROR const int 
errorCode
 
OUT_INT_Z int * refCount
 
CHECK_RETVAL THREAD_STATE threadState
 
CHECK_RETVAL THREAD_STATE void * ptrParam
 
CHECK_RETVAL THREAD_STATE void
const int 
intParam
 
CHECK_RETVAL THREAD_STATE void
const int const SEMAPHORE_TYPE 
semaphore
 
CHECK_RETVAL IN_LENGTH int size
 

Macro Definition Documentation

#define ACTION_PERM_ALL   0x03

Definition at line 663 of file cryptkrn.h.

#define ACTION_PERM_ALL_MAX   0xFFF

Definition at line 667 of file cryptkrn.h.

#define ACTION_PERM_BASE   MESSAGE_CTX_ENCRYPT

Definition at line 669 of file cryptkrn.h.

#define ACTION_PERM_BITS   2

Definition at line 671 of file cryptkrn.h.

#define ACTION_PERM_COUNT
Value:
MESSAGE_CTX_ENCRYPT + 1 )

Definition at line 672 of file cryptkrn.h.

#define ACTION_PERM_FLAG_MAX   0xFFF

Definition at line 687 of file cryptkrn.h.

#define ACTION_PERM_FLAG_NONE   0x000

Definition at line 686 of file cryptkrn.h.

#define ACTION_PERM_LAST   ( 1 << ( ( ( ACTION_PERM_COUNT ) * ACTION_PERM_BITS ) + 1 ) )

Definition at line 674 of file cryptkrn.h.

#define ACTION_PERM_MASK   0x03

Definition at line 670 of file cryptkrn.h.

#define ACTION_PERM_NONE   0x01

Definition at line 661 of file cryptkrn.h.

#define ACTION_PERM_NONE_ALL   0x000

Definition at line 665 of file cryptkrn.h.

#define ACTION_PERM_NONE_EXTERNAL   0x02

Definition at line 662 of file cryptkrn.h.

#define ACTION_PERM_NONE_EXTERNAL_ALL   0xAAA

Definition at line 666 of file cryptkrn.h.

#define ACTION_PERM_NOTAVAIL   0x00

Definition at line 660 of file cryptkrn.h.

#define ACTION_PERM_SHIFT (   action)    ( ( ( action ) - ACTION_PERM_BASE ) * ACTION_PERM_BITS )

Definition at line 676 of file cryptkrn.h.

#define clearMechanismInfo (   mechanismInfo)    memset( mechanismInfo, 0, sizeof( *mechanismInfo ) )

Definition at line 843 of file cryptkrn.h.

#define CREATEOBJECT_FLAG_DUMMY   0x02 /* Dummy obj.used as placeholder */

Definition at line 1116 of file cryptkrn.h.

#define CREATEOBJECT_FLAG_MAX   0x0F /* Maximum possible flag value */

Definition at line 1118 of file cryptkrn.h.

#define CREATEOBJECT_FLAG_NONE   0x00 /* No create-object flags */

Definition at line 1113 of file cryptkrn.h.

#define CREATEOBJECT_FLAG_PERSISTENT   0x04 /* Obj.backed by key in device */

Definition at line 1117 of file cryptkrn.h.

#define CREATEOBJECT_FLAG_SECUREMALLOC   0x01 /* Use krnlMemAlloc() to alloc.*/

Definition at line 1114 of file cryptkrn.h.

#define DECLARE_ORIGINAL_INT (   x)    int orig_##x

Definition at line 41 of file cryptkrn.h.

#define DEFAULTUSER_OBJECT_HANDLE   1 /* Default user object */

Definition at line 602 of file cryptkrn.h.

#define EXISTS (   iter,
  start,
  end,
  condition 
)
Value:
{ \
int iter; \
\
for( iter = ( start ); iter < ( end ); iter++ ) \
{ \
if( condition ) \
break; \
} \
assert( iter < ( end ) ); \
}

Definition at line 64 of file cryptkrn.h.

#define FORALL (   iter,
  start,
  end,
  condition 
)
Value:
{ \
int iter; \
\
for( iter = ( start ); iter < ( end ); iter++ ) \
assert( condition ); \
}

Definition at line 56 of file cryptkrn.h.

#define initMessageExtInfo (   messageExtInfo,
  objectInfo 
)
Value:
{ \
memset( messageExtInfo, 0, sizeof( MESSAGE_FUNCTION_EXTINFO ) ); \
( messageExtInfo )->objectInfoPtr = objectInfo; \
}

Definition at line 1094 of file cryptkrn.h.

#define isActionMessage (   message)
Value:

Definition at line 587 of file cryptkrn.h.

#define isAttribute (   attribute)
Value:

Definition at line 574 of file cryptkrn.h.

#define isAttributeMessage (   message)
Value:

Definition at line 584 of file cryptkrn.h.

#define isInternalAttribute (   attribute)
Value:
( ( attribute ) > CRYPT_IATTRIBUTE_FIRST && \
( attribute ) < CRYPT_IATTRIBUTE_LAST )

Definition at line 577 of file cryptkrn.h.

#define isMechanismActionMessage (   message)
Value:

Definition at line 590 of file cryptkrn.h.

#define isMessageObjectUnlocked (   messageExtInfo)    ( ( messageExtInfo )->isUnlocked )

Definition at line 1103 of file cryptkrn.h.

#define KEYMGMT_FLAG_CHECK_ONLY   0x0001 /* Perform existence check only */

Definition at line 1006 of file cryptkrn.h.

#define KEYMGMT_FLAG_DATAONLY_CERT   0x0008 /* Create data-only certs */

Definition at line 1009 of file cryptkrn.h.

#define KEYMGMT_FLAG_GETISSUER   0x0040 /* Get issuing PKI user for cert */

Definition at line 1012 of file cryptkrn.h.

#define KEYMGMT_FLAG_INITIALOP   0x0080 /* Initial cert issue operation */

Definition at line 1013 of file cryptkrn.h.

#define KEYMGMT_FLAG_LABEL_ONLY   0x0002 /* Get key label only */

Definition at line 1007 of file cryptkrn.h.

#define KEYMGMT_FLAG_MAX   0x00FF /* Maximum possible flag value */

Definition at line 1014 of file cryptkrn.h.

#define KEYMGMT_FLAG_NONE   0x0000 /* No flag */

Definition at line 1005 of file cryptkrn.h.

#define KEYMGMT_FLAG_UPDATE   0x0004 /* Update existing (allow dups) */

Definition at line 1008 of file cryptkrn.h.

#define KEYMGMT_FLAG_USAGE_CRYPT   0x0010 /* Prefer encryption key */

Definition at line 1010 of file cryptkrn.h.

#define KEYMGMT_FLAG_USAGE_SIGN   0x0020 /* Prefer signature key */

Definition at line 1011 of file cryptkrn.h.

#define KEYMGMT_MASK_CERTOPTIONS
Value:
KEYMGMT_FLAG_USAGE_CRYPT | \
KEYMGMT_FLAG_USAGE_SIGN )

Definition at line 1018 of file cryptkrn.h.

#define KEYMGMT_MASK_USAGEOPTIONS
Value:
KEYMGMT_FLAG_USAGE_SIGN )

Definition at line 1016 of file cryptkrn.h.

#define krnlSendNotifier (   handle,
  message 
)    krnlSendMessage( handle, message, NULL, 0 )

Definition at line 1137 of file cryptkrn.h.

#define MAX_OBJECTS   16384

Definition at line 611 of file cryptkrn.h.

#define MESSAGE_FLAG_INTERNAL   0x100

Definition at line 231 of file cryptkrn.h.

#define MESSAGE_MASK   0xFF

Definition at line 236 of file cryptkrn.h.

#define MESSAGE_VALUE_CURSORFIRST   ( ( MESSAGE_CAST ) &messageValueCursorFirst )

Definition at line 561 of file cryptkrn.h.

#define MESSAGE_VALUE_CURSORLAST   ( ( MESSAGE_CAST ) &messageValueCursorLast )

Definition at line 564 of file cryptkrn.h.

#define MESSAGE_VALUE_CURSORNEXT   ( ( MESSAGE_CAST ) &messageValueCursorNext )

Definition at line 562 of file cryptkrn.h.

#define MESSAGE_VALUE_CURSORPREVIOUS   ( ( MESSAGE_CAST ) &messageValueCursorPrevious )

Definition at line 563 of file cryptkrn.h.

#define MESSAGE_VALUE_DEFAULT   ( ( MESSAGE_CAST ) &messageValueCryptUseDefault )

Definition at line 560 of file cryptkrn.h.

#define MESSAGE_VALUE_ERROR   ( ( MESSAGE_CAST ) &messageValueCryptError )

Definition at line 558 of file cryptkrn.h.

#define MESSAGE_VALUE_FALSE   ( ( MESSAGE_CAST ) &messageValueFalse )

Definition at line 556 of file cryptkrn.h.

#define MESSAGE_VALUE_OK   ( ( MESSAGE_CAST ) &messageValueCryptOK )

Definition at line 557 of file cryptkrn.h.

#define MESSAGE_VALUE_TRUE   ( ( MESSAGE_CAST ) &messageValueTrue )

Definition at line 555 of file cryptkrn.h.

#define MESSAGE_VALUE_UNUSED   ( ( MESSAGE_CAST ) &messageValueCryptUnused )

Definition at line 559 of file cryptkrn.h.

#define MK_ACTION_PERM (   action,
  perm 
)    ( ( perm ) << ACTION_PERM_SHIFT( action ) )

Definition at line 678 of file cryptkrn.h.

#define MK_ACTION_PERM_NONE_EXTERNAL (   action)    ( ( action ) & ACTION_PERM_NONE_EXTERNAL_ALL )

Definition at line 680 of file cryptkrn.h.

#define MK_SUBTYPE_A (   value)    ( SUBTYPE_CLASS_A | ( 1L << ( value - 1 ) ) )

Definition at line 154 of file cryptkrn.h.

#define MK_SUBTYPE_B (   value)    ( SUBTYPE_CLASS_B | ( 1L << ( value - 1 ) ) )

Definition at line 155 of file cryptkrn.h.

#define MK_SUBTYPE_C (   value)    ( SUBTYPE_CLASS_C | ( 1L << ( value - 1 ) ) )

Definition at line 156 of file cryptkrn.h.

#define MKINTERNAL (   message)    ( message | MESSAGE_FLAG_INTERNAL )

Definition at line 232 of file cryptkrn.h.

#define NO_SYSTEM_OBJECTS   2 /* Total number of system objects */

Definition at line 604 of file cryptkrn.h.

#define ORIGINAL_INT (   x)    const int orig_##x = ( int ) x

Definition at line 27 of file cryptkrn.h.

#define ORIGINAL_INT_VAR (   x,
 
)    const int orig_##x = ( y )

Definition at line 40 of file cryptkrn.h.

#define ORIGINAL_PTR (   x)    const BYTE *orig_##x = ( const BYTE * ) x

Definition at line 28 of file cryptkrn.h.

#define ORIGINAL_VALUE (   x)    orig_##x

Definition at line 26 of file cryptkrn.h.

#define setMechanismDeriveInfo (   mechanismInfo,
  out,
  outLen,
  in,
  inLen,
  hAlgo,
  slt,
  sltLen,
  iters 
)
Value:
{ \
memset( mechanismInfo, 0, sizeof( MECHANISM_DERIVE_INFO ) ); \
( mechanismInfo )->dataOut = ( out ); \
( mechanismInfo )->dataOutLength = ( outLen ); \
( mechanismInfo )->dataIn = ( in ); \
( mechanismInfo )->dataInLength = ( inLen ); \
( mechanismInfo )->hashAlgo = ( hAlgo ); \
( mechanismInfo )->salt = ( slt ); \
( mechanismInfo )->saltLength = ( sltLen ); \
( mechanismInfo )->iterations = ( iters ); \
}

Definition at line 882 of file cryptkrn.h.

#define setMechanismKDFInfo (   mechanismInfo,
  keyCtx,
  masterKeyCtx,
  hAlgo,
  slt,
  sltLen 
)
Value:
{ \
memset( mechanismInfo, 0, sizeof( MECHANISM_KDF_INFO ) ); \
( mechanismInfo )->keyContext = ( keyCtx ); \
( mechanismInfo )->masterKeyContext = ( masterKeyCtx ); \
( mechanismInfo )->hashAlgo = ( hAlgo ); \
( mechanismInfo )->salt = ( slt ); \
( mechanismInfo )->saltLength = ( sltLen ); \
}

Definition at line 895 of file cryptkrn.h.

#define setMechanismSignInfo (   mechanismInfo,
  sig,
  sigLen,
  hashCtx,
  hashCtx2,
  signCtx 
)
Value:
{ \
memset( mechanismInfo, 0, sizeof( MECHANISM_SIGN_INFO ) ); \
( mechanismInfo )->signature = ( sig ); \
( mechanismInfo )->signatureLength = ( sigLen ); \
( mechanismInfo )->hashContext = ( hashCtx ); \
( mechanismInfo )->hashContext2 = ( hashCtx2 ); \
( mechanismInfo )->signContext = ( signCtx ); \
}

Definition at line 872 of file cryptkrn.h.

#define setMechanismWrapInfo (   mechanismInfo,
  wrapped,
  wrappedLen,
  key,
  keyLen,
  keyCtx,
  wrapCtx 
)
Value:
{ \
memset( mechanismInfo, 0, sizeof( MECHANISM_WRAP_INFO ) ); \
( mechanismInfo )->wrappedData = ( wrapped ); \
( mechanismInfo )->wrappedDataLength = ( wrappedLen ); \
( mechanismInfo )->keyData = ( key ); \
( mechanismInfo )->keyDataLength = ( keyLen ); \
( mechanismInfo )->keyContext = ( keyCtx ); \
( mechanismInfo )->wrapContext = ( wrapCtx ); \
( mechanismInfo )->auxContext = \
( mechanismInfo )->auxInfo = CRYPT_UNUSED; \
}

Definition at line 846 of file cryptkrn.h.

#define setMechanismWrapInfoEx (   mechanismInfo,
  wrapped,
  wrappedLen,
  key,
  keyLen,
  keyCtx,
  wrapCtx,
  auxCtx,
  auxInf 
)
Value:
{ \
memset( mechanismInfo, 0, sizeof( MECHANISM_WRAP_INFO ) ); \
( mechanismInfo )->wrappedData = ( wrapped ); \
( mechanismInfo )->wrappedDataLength = ( wrappedLen ); \
( mechanismInfo )->keyData = ( key ); \
( mechanismInfo )->keyDataLength = ( keyLen ); \
( mechanismInfo )->keyContext = ( keyCtx ); \
( mechanismInfo )->wrapContext = ( wrapCtx ); \
( mechanismInfo )->auxContext = ( auxCtx ); \
( mechanismInfo )->auxInfo = ( auxInf ); \
}

Definition at line 859 of file cryptkrn.h.

#define setMessageCertMgmtInfo (   certMgmtInfo,
  mgmtCaKey,
  mgmtRequest 
)
Value:
{ \
( certMgmtInfo )->cryptCert = CRYPT_ERROR; \
( certMgmtInfo )->caKey = ( mgmtCaKey ); \
( certMgmtInfo )->request = ( mgmtRequest ); \
}

Definition at line 1054 of file cryptkrn.h.

#define setMessageCreateObjectIndirectInfo (   createObjectInfo,
  data,
  dataLen,
  type 
)
Value:
{ \
memset( createObjectInfo, 0, sizeof( MESSAGE_CREATEOBJECT_INFO ) ); \
( createObjectInfo )->cryptHandle = CRYPT_ERROR; \
( createObjectInfo )->cryptOwner = CRYPT_ERROR; \
( createObjectInfo )->strArg1 = ( data ); \
( createObjectInfo )->strArgLen1 = ( dataLen ); \
( createObjectInfo )->arg1 = ( type ); \
}

Definition at line 942 of file cryptkrn.h.

#define setMessageCreateObjectInfo (   createObjectInfo,
  a1 
)
Value:
{ \
memset( createObjectInfo, 0, sizeof( MESSAGE_CREATEOBJECT_INFO ) ); \
( createObjectInfo )->cryptHandle = CRYPT_ERROR; \
( createObjectInfo )->cryptOwner = CRYPT_ERROR; \
( createObjectInfo )->arg1 = ( a1 ); \
}

Definition at line 934 of file cryptkrn.h.

#define setMessageData (   msgDataPtr,
  dataPtr,
  dataLength 
)
Value:
{ \
( msgDataPtr )->data = ( dataPtr ); \
( msgDataPtr )->length = ( dataLength ); \
}

Definition at line 540 of file cryptkrn.h.

#define setMessageKeymgmtInfo (   keymgmtInfo,
  idType,
  id,
  idLength,
  aux,
  auxLen,
  keyFlags 
)
Value:
{ \
( keymgmtInfo )->cryptHandle = CRYPT_ERROR; \
( keymgmtInfo )->keyIDtype = ( idType ); \
( keymgmtInfo )->keyID = ( id ); \
( keymgmtInfo )->keyIDlength = ( idLength ); \
( keymgmtInfo )->auxInfo = ( aux ); \
( keymgmtInfo )->auxInfoLength = ( auxLen ); \
( keymgmtInfo )->flags = ( keyFlags ); \
}

Definition at line 1033 of file cryptkrn.h.

#define setMessageObjectLocked (   messageExtInfo)    ( messageExtInfo )->isUnlocked = FALSE

Definition at line 1099 of file cryptkrn.h.

#define setMessageObjectUnlocked (   messageExtInfo)    ( messageExtInfo )->isUnlocked = TRUE

Definition at line 1101 of file cryptkrn.h.

#define STORE_ORIGINAL_INT (   x,
 
)    orig_##x = ( y )

Definition at line 42 of file cryptkrn.h.

#define SUBTYPE_CERT_ATTRCERT   MK_SUBTYPE_A( 11 )

Definition at line 171 of file cryptkrn.h.

#define SUBTYPE_CERT_CERT   MK_SUBTYPE_A( 6 )

Definition at line 166 of file cryptkrn.h.

#define SUBTYPE_CERT_CERTCHAIN   MK_SUBTYPE_A( 10 )

Definition at line 170 of file cryptkrn.h.

#define SUBTYPE_CERT_CERTREQ   MK_SUBTYPE_A( 7 )

Definition at line 167 of file cryptkrn.h.

#define SUBTYPE_CERT_CMSATTR   MK_SUBTYPE_A( 13 )

Definition at line 173 of file cryptkrn.h.

#define SUBTYPE_CERT_CRL   MK_SUBTYPE_A( 12 )

Definition at line 172 of file cryptkrn.h.

#define SUBTYPE_CERT_OCSP_REQ   MK_SUBTYPE_A( 16 )

Definition at line 176 of file cryptkrn.h.

#define SUBTYPE_CERT_OCSP_RESP   MK_SUBTYPE_A( 17 )

Definition at line 177 of file cryptkrn.h.

#define SUBTYPE_CERT_PKIUSER   MK_SUBTYPE_A( 18 )

Definition at line 178 of file cryptkrn.h.

#define SUBTYPE_CERT_REQ_CERT   MK_SUBTYPE_A( 8 )

Definition at line 168 of file cryptkrn.h.

#define SUBTYPE_CERT_REQ_REV   MK_SUBTYPE_A( 9 )

Definition at line 169 of file cryptkrn.h.

#define SUBTYPE_CERT_RTCS_REQ   MK_SUBTYPE_A( 14 )

Definition at line 174 of file cryptkrn.h.

#define SUBTYPE_CERT_RTCS_RESP   MK_SUBTYPE_A( 15 )

Definition at line 175 of file cryptkrn.h.

#define SUBTYPE_CLASS_A   0x10000000L

Definition at line 150 of file cryptkrn.h.

#define SUBTYPE_CLASS_B   0x20000000L

Definition at line 151 of file cryptkrn.h.

#define SUBTYPE_CLASS_C   0x40000000L

Definition at line 152 of file cryptkrn.h.

#define SUBTYPE_CLASS_MASK   0x70000000L

Definition at line 149 of file cryptkrn.h.

#define SUBTYPE_CTX_CONV   MK_SUBTYPE_A( 1 )

Definition at line 160 of file cryptkrn.h.

#define SUBTYPE_CTX_GENERIC   MK_SUBTYPE_A( 5 )

Definition at line 164 of file cryptkrn.h.

#define SUBTYPE_CTX_HASH   MK_SUBTYPE_A( 3 )

Definition at line 162 of file cryptkrn.h.

#define SUBTYPE_CTX_MAC   MK_SUBTYPE_A( 4 )

Definition at line 163 of file cryptkrn.h.

#define SUBTYPE_CTX_PKC   MK_SUBTYPE_A( 2 )

Definition at line 161 of file cryptkrn.h.

#define SUBTYPE_DEV_CRYPTOAPI   MK_SUBTYPE_B( 13 )

Definition at line 194 of file cryptkrn.h.

#define SUBTYPE_DEV_HARDWARE   MK_SUBTYPE_B( 14 )

Definition at line 195 of file cryptkrn.h.

#define SUBTYPE_DEV_PKCS11   MK_SUBTYPE_B( 12 )

Definition at line 193 of file cryptkrn.h.

#define SUBTYPE_DEV_SYSTEM   MK_SUBTYPE_B( 11 )

Definition at line 192 of file cryptkrn.h.

#define SUBTYPE_ENV_DEENV   MK_SUBTYPE_B( 3 )

Definition at line 182 of file cryptkrn.h.

#define SUBTYPE_ENV_ENV   MK_SUBTYPE_B( 1 )

Definition at line 180 of file cryptkrn.h.

#define SUBTYPE_ENV_ENV_PGP   MK_SUBTYPE_B( 2 )

Definition at line 181 of file cryptkrn.h.

#define SUBTYPE_KEYSET_DBMS   MK_SUBTYPE_B( 7 )

Definition at line 187 of file cryptkrn.h.

#define SUBTYPE_KEYSET_DBMS_STORE   MK_SUBTYPE_B( 8 )

Definition at line 188 of file cryptkrn.h.

#define SUBTYPE_KEYSET_FILE   MK_SUBTYPE_B( 4 )

Definition at line 184 of file cryptkrn.h.

#define SUBTYPE_KEYSET_FILE_PARTIAL   MK_SUBTYPE_B( 5 )

Definition at line 185 of file cryptkrn.h.

#define SUBTYPE_KEYSET_FILE_READONLY   MK_SUBTYPE_B( 6 )

Definition at line 186 of file cryptkrn.h.

#define SUBTYPE_KEYSET_HTTP   MK_SUBTYPE_B( 9 )

Definition at line 189 of file cryptkrn.h.

#define SUBTYPE_KEYSET_LDAP   MK_SUBTYPE_B( 10 )

Definition at line 190 of file cryptkrn.h.

#define SUBTYPE_NONE   0x00000000L

Definition at line 158 of file cryptkrn.h.

#define SUBTYPE_SESSION_CERT_SVR   MK_SUBTYPE_C( 15 )

Definition at line 211 of file cryptkrn.h.

#define SUBTYPE_SESSION_CMP   MK_SUBTYPE_C( 11 )

Definition at line 207 of file cryptkrn.h.

#define SUBTYPE_SESSION_CMP_SVR   MK_SUBTYPE_C( 12 )

Definition at line 208 of file cryptkrn.h.

#define SUBTYPE_SESSION_OCSP   MK_SUBTYPE_C( 7 )

Definition at line 203 of file cryptkrn.h.

#define SUBTYPE_SESSION_OCSP_SVR   MK_SUBTYPE_C( 8 )

Definition at line 204 of file cryptkrn.h.

#define SUBTYPE_SESSION_RTCS   MK_SUBTYPE_C( 5 )

Definition at line 201 of file cryptkrn.h.

#define SUBTYPE_SESSION_RTCS_SVR   MK_SUBTYPE_C( 6 )

Definition at line 202 of file cryptkrn.h.

#define SUBTYPE_SESSION_SCEP   MK_SUBTYPE_C( 13 )

Definition at line 209 of file cryptkrn.h.

#define SUBTYPE_SESSION_SCEP_SVR   MK_SUBTYPE_C( 14 )

Definition at line 210 of file cryptkrn.h.

#define SUBTYPE_SESSION_SSH   MK_SUBTYPE_C( 1 )

Definition at line 197 of file cryptkrn.h.

#define SUBTYPE_SESSION_SSH_SVR   MK_SUBTYPE_C( 2 )

Definition at line 198 of file cryptkrn.h.

#define SUBTYPE_SESSION_SSL   MK_SUBTYPE_C( 3 )

Definition at line 199 of file cryptkrn.h.

#define SUBTYPE_SESSION_SSL_SVR   MK_SUBTYPE_C( 4 )

Definition at line 200 of file cryptkrn.h.

#define SUBTYPE_SESSION_TSP   MK_SUBTYPE_C( 9 )

Definition at line 205 of file cryptkrn.h.

#define SUBTYPE_SESSION_TSP_SVR   MK_SUBTYPE_C( 10 )

Definition at line 206 of file cryptkrn.h.

#define SUBTYPE_USER_CA   MK_SUBTYPE_C( 18 )

Definition at line 215 of file cryptkrn.h.

#define SUBTYPE_USER_NORMAL   MK_SUBTYPE_C( 17 )

Definition at line 214 of file cryptkrn.h.

#define SUBTYPE_USER_SO   MK_SUBTYPE_C( 16 )

Definition at line 213 of file cryptkrn.h.

#define SYSTEM_OBJECT_HANDLE   0 /* Internal system object */

Definition at line 601 of file cryptkrn.h.

Typedef Documentation

typedef void* MESSAGE_CAST

Definition at line 550 of file cryptkrn.h.

typedef int( * MESSAGE_FUNCTION)(INOUT void *objectInfoPtr, const MESSAGE_TYPE message, void *messageDataPtr, const int messageValue) STDC_NONNULL_ARG((1))

Definition at line 1078 of file cryptkrn.h.

typedef int OBJECT_SUBTYPE

Definition at line 222 of file cryptkrn.h.

typedef void( * THREAD_FUNCTION)(const struct TF *threadParams)

Definition at line 1219 of file cryptkrn.h.

typedef struct TF THREAD_PARAMS
typedef BYTE THREAD_STATE[48]

Definition at line 1221 of file cryptkrn.h.

Enumeration Type Documentation

Enumerator:
KEYMGMT_ITEM_NONE 
KEYMGMT_ITEM_PUBLICKEY 
KEYMGMT_ITEM_PRIVATEKEY 
KEYMGMT_ITEM_SECRETKEY 
KEYMGMT_ITEM_REQUEST 
KEYMGMT_ITEM_REVREQUEST 
KEYMGMT_ITEM_PKIUSER 
KEYMGMT_ITEM_REVOCATIONINFO 
KEYMGMT_ITEM_KEYMETADATA 
KEYMGMT_ITEM_DATA 
KEYMGMT_ITEM_LAST 

Definition at line 991 of file cryptkrn.h.

Enumerator:
MECHANISM_NONE 
MECHANISM_ENC_PKCS1 
MECHANISM_ENC_PKCS1_PGP 
MECHANISM_ENC_PKCS1_RAW 
MECHANISM_ENC_OAEP 
MECHANISM_ENC_CMS 
MECHANISM_SIG_PKCS1 
MECHANISM_SIG_SSL 
MECHANISM_DERIVE_PKCS5 
MECHANISM_DERIVE_PKCS12 
MECHANISM_DERIVE_SSL 
MECHANISM_DERIVE_TLS 
MECHANISM_DERIVE_TLS12 
MECHANISM_DERIVE_CMP 
MECHANISM_DERIVE_PGP 
MECHANISM_PRIVATEKEYWRAP 
MECHANISM_PRIVATEKEYWRAP_PKCS8 
MECHANISM_PRIVATEKEYWRAP_PGP2 
MECHANISM_PRIVATEKEYWRAP_OPENPGP_OLD 
MECHANISM_PRIVATEKEYWRAP_OPENPGP 
MECHANISM_LAST 

Definition at line 694 of file cryptkrn.h.

Enumerator:
MESSAGE_CHANGENOTIFY_NONE 
MESSAGE_CHANGENOTIFY_STATE 
MESSAGE_CHANGENOTIFY_OBJHANDLE 
MESSAGE_CHANGENOTIFY_OWNERHANDLE 
MESSAGE_CHANGENOTIFY_LAST 

Definition at line 494 of file cryptkrn.h.

Enumerator:
MESSAGE_CHECK_NONE 
MESSAGE_CHECK_PKC 
MESSAGE_CHECK_PKC_PRIVATE 
MESSAGE_CHECK_PKC_ENCRYPT 
MESSAGE_CHECK_PKC_DECRYPT 
MESSAGE_CHECK_PKC_SIGCHECK 
MESSAGE_CHECK_PKC_SIGN 
MESSAGE_CHECK_PKC_KA_EXPORT 
MESSAGE_CHECK_PKC_KA_IMPORT 
MESSAGE_CHECK_CRYPT 
MESSAGE_CHECK_HASH 
MESSAGE_CHECK_MAC 
MESSAGE_CHECK_CRYPT_READY 
MESSAGE_CHECK_MAC_READY 
MESSAGE_CHECK_KEYGEN_READY 
MESSAGE_CHECK_PKC_ENCRYPT_AVAIL 
MESSAGE_CHECK_PKC_DECRYPT_AVAIL 
MESSAGE_CHECK_PKC_SIGCHECK_AVAIL 
MESSAGE_CHECK_PKC_SIGN_AVAIL 
MESSAGE_CHECK_PKC_KA_EXPORT_AVAIL 
MESSAGE_CHECK_PKC_KA_IMPORT_AVAIL 
MESSAGE_CHECK_CERT 
MESSAGE_CHECK_CERTxx 
MESSAGE_CHECK_CA 
MESSAGE_CHECK_CACERT 
MESSAGE_CHECK_LAST 

Definition at line 443 of file cryptkrn.h.

Enumerator:
MESSAGE_COMPARE_NONE 
MESSAGE_COMPARE_HASH 
MESSAGE_COMPARE_ICV 
MESSAGE_COMPARE_KEYID 
MESSAGE_COMPARE_KEYID_PGP 
MESSAGE_COMPARE_KEYID_OPENPGP 
MESSAGE_COMPARE_SUBJECT 
MESSAGE_COMPARE_ISSUERANDSERIALNUMBER 
MESSAGE_COMPARE_FINGERPRINT_SHA1 
MESSAGE_COMPARE_FINGERPRINT_SHA2 
MESSAGE_COMPARE_FINGERPRINT_SHAng 
MESSAGE_COMPARE_CERTOBJ 
MESSAGE_COMPARE_LAST 

Definition at line 415 of file cryptkrn.h.

Enumerator:
SETDEP_OPTION_NONE 
SETDEP_OPTION_NOINCREF 
SETDEP_OPTION_INCREF 
SETDEP_OPTION_LAST 

Definition at line 523 of file cryptkrn.h.

Enumerator:
MESSAGE_TRUSTMGMT_NONE 
MESSAGE_TRUSTMGMT_ADD 
MESSAGE_TRUSTMGMT_DELETE 
MESSAGE_TRUSTMGMT_CHECK 
MESSAGE_TRUSTMGMT_GETISSUER 
MESSAGE_TRUSTMGMT_LAST 

Definition at line 512 of file cryptkrn.h.

Enumerator:
MESSAGE_NONE 
MESSAGE_DESTROY 
MESSAGE_INCREFCOUNT 
MESSAGE_DECREFCOUNT 
MESSAGE_GETDEPENDENT 
MESSAGE_SETDEPENDENT 
MESSAGE_CLONE 
MESSAGE_GETATTRIBUTE 
MESSAGE_GETATTRIBUTE_S 
MESSAGE_SETATTRIBUTE 
MESSAGE_SETATTRIBUTE_S 
MESSAGE_DELETEATTRIBUTE 
MESSAGE_COMPARE 
MESSAGE_CHECK 
MESSAGE_SELFTEST 
MESSAGE_CHANGENOTIFY 
MESSAGE_CTX_ENCRYPT 
MESSAGE_CTX_DECRYPT 
MESSAGE_CTX_SIGN 
MESSAGE_CTX_SIGCHECK 
MESSAGE_CTX_HASH 
MESSAGE_CTX_GENKEY 
MESSAGE_CTX_GENIV 
MESSAGE_CRT_SIGN 
MESSAGE_CRT_SIGCHECK 
MESSAGE_CRT_EXPORT 
MESSAGE_DEV_QUERYCAPABILITY 
MESSAGE_DEV_EXPORT 
MESSAGE_DEV_IMPORT 
MESSAGE_DEV_SIGN 
MESSAGE_DEV_SIGCHECK 
MESSAGE_DEV_DERIVE 
MESSAGE_DEV_KDF 
MESSAGE_DEV_CREATEOBJECT 
MESSAGE_DEV_CREATEOBJECT_INDIRECT 
MESSAGE_ENV_PUSHDATA 
MESSAGE_ENV_POPDATA 
MESSAGE_KEY_GETKEY 
MESSAGE_KEY_SETKEY 
MESSAGE_KEY_DELETEKEY 
MESSAGE_KEY_GETFIRSTCERT 
MESSAGE_KEY_GETNEXTCERT 
MESSAGE_KEY_CERTMGMT 
MESSAGE_USER_USERMGMT 
MESSAGE_USER_TRUSTMGMT 
MESSAGE_LAST 
IMESSAGE_DESTROY 
IMESSAGE_INCREFCOUNT 
IMESSAGE_DECREFCOUNT 
IMESSAGE_GETDEPENDENT 
IMESSAGE_SETDEPENDENT 
IMESSAGE_CLONE 
IMESSAGE_GETATTRIBUTE 
IMESSAGE_GETATTRIBUTE_S 
IMESSAGE_SETATTRIBUTE 
IMESSAGE_SETATTRIBUTE_S 
IMESSAGE_DELETEATTRIBUTE 
IMESSAGE_COMPARE 
IMESSAGE_CHECK 
IMESSAGE_SELFTEST 
IMESSAGE_CHANGENOTIFY 
IMESSAGE_CTX_ENCRYPT 
IMESSAGE_CTX_DECRYPT 
IMESSAGE_CTX_SIGN 
IMESSAGE_CTX_SIGCHECK 
IMESSAGE_CTX_HASH 
IMESSAGE_CTX_GENKEY 
IMESSAGE_CTX_GENIV 
IMESSAGE_CRT_SIGN 
IMESSAGE_CRT_SIGCHECK 
IMESSAGE_CRT_EXPORT 
IMESSAGE_DEV_QUERYCAPABILITY 
IMESSAGE_DEV_EXPORT 
IMESSAGE_DEV_IMPORT 
IMESSAGE_DEV_SIGN 
IMESSAGE_DEV_SIGCHECK 
IMESSAGE_DEV_DERIVE 
IMESSAGE_DEV_KDF 
IMESSAGE_DEV_CREATEOBJECT 
IMESSAGE_DEV_CREATEOBJECT_INDIRECT 
IMESSAGE_ENV_PUSHDATA 
IMESSAGE_ENV_POPDATA 
IMESSAGE_KEY_GETKEY 
IMESSAGE_KEY_SETKEY 
IMESSAGE_KEY_DELETEKEY 
IMESSAGE_KEY_GETFIRSTCERT 
IMESSAGE_KEY_GETNEXTCERT 
IMESSAGE_KEY_CERTMGMT 
IMESSAGE_USER_USERMGMT 
IMESSAGE_USER_TRUSTMGMT 
IMESSAGE_LAST 

Definition at line 282 of file cryptkrn.h.

Enumerator:
MESSAGE_USERMGMT_NONE 
MESSAGE_USERMGMT_ZEROISE 
MESSAGE_USERMGMT_LAST 

Definition at line 504 of file cryptkrn.h.

enum MUTEX_TYPE
Enumerator:
MUTEX_NONE 
MUTEX_SCOREBOARD 
MUTEX_SOCKETPOOL 
MUTEX_RANDOM 
MUTEX_LAST 

Definition at line 1192 of file cryptkrn.h.

Enumerator:
OBJECT_TYPE_NONE 
OBJECT_TYPE_CONTEXT 
OBJECT_TYPE_KEYSET 
OBJECT_TYPE_ENVELOPE 
OBJECT_TYPE_CERTIFICATE 
OBJECT_TYPE_DEVICE 
OBJECT_TYPE_SESSION 
OBJECT_TYPE_USER 
OBJECT_TYPE_LAST 

Definition at line 94 of file cryptkrn.h.

Enumerator:
SEMAPHORE_NONE 
SEMAPHORE_DRIVERBIND 
SEMAPHORE_LAST 

Definition at line 1186 of file cryptkrn.h.

Function Documentation

int endCryptlib ( void  )

Definition at line 449 of file cryptlib.c.

CHECK_RETVAL IN_LENGTH_SHORT const int IN_ENUM ( OBJECT  ) const
CHECK_RETVAL IN_LENGTH_SHORT const int IN_ENUM ( OBJECT_SUB  ) const
CHECK_RETVAL IN_LENGTH_SHORT const int IN_FLAGS ( CREATEOBJECT  ) const
CHECK_RETVAL IN_LENGTH_SHORT const int IN_HANDLE const CRYPT_USER IN_FLAGS ( ACTION  ) const
int initCryptlib ( void  )

Definition at line 313 of file cryptlib.c.

CHECK_RETVAL int krnlEnterMutex ( IN_ENUM(MUTEX) const MUTEX_TYPE  mutex)

Definition at line 294 of file semaphore.c.

void krnlExitMutex ( IN_ENUM(MUTEX) const MUTEX_TYPE  mutex)

Definition at line 326 of file semaphore.c.

CHECK_RETVAL_BOOL BOOLEAN krnlIsExiting ( void  )

Definition at line 438 of file init.c.

int krnlReleaseObject ( IN_HANDLE const int  objectHandle)

Definition at line 455 of file obj_acc.c.

CHECK_RETVAL int krnlResumeObject ( IN_HANDLE const int  objectHandle,
IN_INT_Z const int  refCount 
)

Definition at line 473 of file obj_acc.c.

int krnlSendMessage ( IN_HANDLE const int  objectHandle,
IN_MESSAGE const MESSAGE_TYPE  message,
void *  messageDataPtr,
const int  messageValue 
)

Definition at line 1316 of file sendmsg.c.

CHECK_RETVAL_BOOL BOOLEAN krnlWaitSemaphore ( IN_ENUM(SEMAPHORE) const SEMAPHORE_TYPE  semaphore)

Definition at line 206 of file semaphore.c.

CHECK_RETVAL OUT_BUFFER_ALLOC_OPT ( objectDataSize  )
CHECK_RETVAL STDC_NONNULL_ARG ( (1, 2, 9)  )
CHECK_RETVAL STDC_NONNULL_ARG ( (3)  ) const
STDC_NONNULL_ARG ( (2)  ) const
CHECK_RETVAL STDC_NONNULL_ARG ( (1)  )

Definition at line 26 of file ctx_attr.c.

Variable Documentation

CHECK_RETVAL OUT_OPT_PTR void IN_ERROR const int errorCode

Definition at line 1152 of file cryptkrn.h.

Definition at line 1230 of file cryptkrn.h.

Definition at line 1129 of file cryptkrn.h.

const int messageValueCryptError

Definition at line 32 of file cryptlib.c.

const int messageValueCryptOK

Definition at line 31 of file cryptlib.c.

const int messageValueCryptUnused

Definition at line 34 of file cryptlib.c.

const int messageValueCryptUseDefault

Definition at line 35 of file cryptlib.c.

const int messageValueCursorFirst

Definition at line 36 of file cryptlib.c.

const int messageValueCursorLast

Definition at line 39 of file cryptlib.c.

const int messageValueCursorNext

Definition at line 37 of file cryptlib.c.

const int messageValueCursorPrevious

Definition at line 38 of file cryptlib.c.

const int messageValueFalse

Definition at line 30 of file cryptlib.c.

const int messageValueTrue

Definition at line 29 of file cryptlib.c.

CHECK_RETVAL IN_LENGTH_SHORT const int objectDataSize

Definition at line 1123 of file cryptkrn.h.

CHECK_RETVAL OUT_OPT_PTR void** objectPtr

Definition at line 1152 of file cryptkrn.h.

Definition at line 1127 of file cryptkrn.h.

CHECK_RETVAL THREAD_STATE void* ptrParam

Definition at line 1230 of file cryptkrn.h.

OUT_INT_Z int* refCount

Definition at line 1167 of file cryptkrn.h.

Definition at line 1230 of file cryptkrn.h.

Definition at line 1245 of file cryptkrn.h.

Definition at line 1230 of file cryptkrn.h.