Mercurial > projects > dstep
view dstep/security/cssmtype.d @ 11:07194b026fa4
Added bindings to a couple of frameworks, new license + some other things
author | Jacob Carlborg <doob@me.com> |
---|---|
date | Sat, 01 Aug 2009 15:03:28 +0200 |
parents | |
children |
line wrap: on
line source
/** * Copyright: Copyright (c) 2009 Jacob Carlborg. * Authors: Jacob Carlborg * Version: Initial created: Jul 22, 2009 * License: $(LINK2 http://www.boost.org/LICENSE_1_0.txt, Boost Software License 1.0) */ module dstep.security.cssmtype; import dstep.security.cssmconfig; alias int CSSM_HANDLE; alias CSSM_INTPTR* CSSM_HANDLE_PTR; alias ulong CSSM_LONG_HANDLE; alias uint64* CSSM_LONG_HANDLE_PTR; alias int CSSM_MODULE_HANDLE; alias CSSM_HANDLE* CSSM_MODULE_HANDLE_PTR; alias ulong CSSM_CC_HANDLE; alias int CSSM_CSP_HANDLE; alias int CSSM_TP_HANDLE; alias int CSSM_AC_HANDLE; alias int CSSM_CL_HANDLE; alias int CSSM_DL_HANDLE; alias int CSSM_DB_HANDLE; alias int CSSM_BOOL; alias int CSSM_RETURN; alias uint CSSM_BITMASK; alias uint CSSM_KEY_HIERARCHY; alias uint CSSM_PVC_MODE; alias uint CSSM_PRIVILEGE_SCOPE; alias uint CSSM_SERVICE_MASK; alias uint CSSM_SERVICE_TYPE; alias uint CSSM_MODULE_EVENT; alias uint32* CSSM_MODULE_EVENT_PTR; alias uint CSSM_ATTACH_FLAGS; alias ulong CSSM_PRIVILEGE; alias ulong CSSM_USEE_TAG; alias uint CSSM_NET_ADDRESS_TYPE; alias uint CSSM_NET_PROTOCOL; alias int CSSM_WORDID_TYPE; alias uint CSSM_LIST_ELEMENT_TYPE; alias uint32* CSSM_LIST_ELEMENT_TYPE_PTR; alias uint CSSM_LIST_TYPE; alias uint32* CSSM_LIST_TYPE_PTR; alias CSSM_LIST_ELEMENT* CSSM_LIST_ELEMENT_PTR; alias int CSSM_SAMPLE_TYPE; alias CSSM_MEMORY_FUNCS CSSM_API_MEMORY_FUNCS; alias CSSM_API_MEMORY_FUNCS* CSSM_API_MEMORY_FUNCS_PTR; alias uint CSSM_CERT_TYPE; alias uint32* CSSM_CERT_TYPE_PTR; alias uint CSSM_CERT_ENCODING; alias uint32* CSSM_CERT_ENCODING_PTR; alias uint CSSM_CERT_PARSE_FORMAT; alias uint32* CSSM_CERT_PARSE_FORMAT_PTR; alias uint CSSM_CERTGROUP_TYPE; alias uint32* CSSM_CERTGROUP_TYPE_PTR; alias int CSSM_ACL_SUBJECT_TYPE; alias int CSSM_ACL_AUTHORIZATION_TAG; alias int CSSM_ACL_HANDLE; alias uint CSSM_ACL_EDIT_MODE; alias CSSM_PROC_ADDR* CSSM_PROC_ADDR_PTR; alias uint CSSM_HEADERVERSION; alias uint CSSM_KEYBLOB_TYPE; alias uint CSSM_KEYBLOB_FORMAT; alias uint CSSM_KEYCLASS; alias uint CSSM_KEYATTR_FLAGS; alias uint CSSM_KEYUSE; alias uint CSSM_ALGORITHMS; alias uint CSSM_ENCRYPT_MODE; alias CSSM_KEY CSSM_WRAP_KEY; alias CSSM_KEY* CSSM_WRAP_KEY_PTR; alias uint CSSM_CSPTYPE; alias uint CSSM_CONTEXT_TYPE; alias uint CSSM_ATTRIBUTE_TYPE; alias uint CSSM_PADDING; alias uint CSSM_KEY_TYPE; alias uint CSSM_SC_FLAGS; alias uint CSSM_CSP_READER_FLAGS; alias uint CSSM_CSP_FLAGS; alias uint CSSM_PKCS_OAEP_MGF; alias uint CSSM_PKCS_OAEP_PSOURCE; alias uint CSSM_PKCS5_PBKDF2_PRF; alias uint CSSM_TP_AUTHORITY_REQUEST_TYPE; alias uint32* CSSM_TP_AUTHORITY_REQUEST_TYPE_PTR; alias CSSM_DATA CSSM_OID; alias CSSM_DATA* CSSM_OID_PTR; alias uint CSSM_TP_SERVICES; alias uint CSSM_TP_ACTION; alias uint CSSM_TP_STOP_ON; alias char* CSSM_TIMESTRING; alias uint CSSM_CRL_PARSE_FORMAT; alias uint32* CSSM_CRL_PARSE_FORMAT_PTR; alias uint CSSM_CRL_TYPE; alias uint32* CSSM_CRL_TYPE_PTR; alias uint CSSM_CRL_ENCODING; alias uint32* CSSM_CRL_ENCODING_PTR; alias uint CSSM_CRLGROUP_TYPE; alias uint32* CSSM_CRLGROUP_TYPE_PTR; alias uint CSSM_EVIDENCE_FORM; alias uint CSSM_TP_CONFIRM_STATUS; alias uint32* CSSM_TP_CONFIRM_STATUS_PTR; alias uint CSSM_TP_CERTISSUE_STATUS; alias uint CSSM_TP_CERTCHANGE_ACTION; alias uint CSSM_TP_CERTCHANGE_REASON; alias uint CSSM_TP_CERTCHANGE_STATUS; alias uint CSSM_TP_CERTVERIFY_STATUS; alias uint CSSM_TP_CERTNOTARIZE_STATUS; alias uint CSSM_TP_CERTRECLAIM_STATUS; alias uint CSSM_TP_CRLISSUE_STATUS; alias uint CSSM_TP_FORM_TYPE; alias uint CSSM_CL_TEMPLATE_TYPE; alias uint CSSM_CERT_BUNDLE_TYPE; alias uint CSSM_CERT_BUNDLE_ENCODING; alias uint CSSM_DB_ATTRIBUTE_NAME_FORMAT; alias uint32* CSSM_DB_ATTRIBUTE_NAME_FORMAT_PTR; alias uint CSSM_DB_ATTRIBUTE_FORMAT; alias uint32* CSSM_DB_ATTRIBUTE_FORMAT_PTR; alias uint CSSM_DB_RECORDTYPE; alias uint CSSM_DB_INDEX_TYPE; alias uint CSSM_DB_INDEXED_DATA_LOCATION; alias uint CSSM_DB_ACCESS_TYPE; alias uint32* CSSM_DB_ACCESS_TYPE_PTR; alias uint CSSM_DB_MODIFY_MODE; alias uint CSSM_DB_OPERATOR; alias uint32* CSSM_DB_OPERATOR_PTR; alias uint CSSM_DB_CONJUNCTIVE; alias uint32* CSSM_DB_CONJUNCTIVE_PTR; alias uint CSSM_QUERY_FLAGS; alias uint CSSM_DLTYPE; alias uint32* CSSM_DLTYPE_PTR; alias void* CSSM_DL_CUSTOM_ATTRIBUTES; alias void* CSSM_DL_LDAP_ATTRIBUTES; alias void* CSSM_DL_ODBC_ATTRIBUTES; alias void* CSSM_DL_FFS_ATTRIBUTES; alias uint CSSM_DB_RETRIEVAL_MODES; alias CSSM_LIST* CSSM_LIST_PTR; alias CSSM_DATA* CSSM_DATA_PTR; alias CSSM_SAMPLEGROUP* CSSM_SAMPLEGROUP_PTR; alias CSSM_TUPLE* CSSM_TUPLE_PTR; alias CSSM_CERTGROUP* CSSM_CERTGROUP_PTR; alias CSSM_ENCODED_CERT* CSSM_ENCODED_CERT_PTR; alias CSSM_PARSED_CERT* CSSM_PARSED_CERT_PTR; alias CSSM_CERT_PAIR* CSSM_CERT_PAIR_PTR; alias CSSM_ACCESS_CREDENTIALS* CSSM_ACCESS_CREDENTIALS_PTR; alias CSSM_NET_ADDRESS* CSSM_NET_ADDRESS_PTR; alias CSSM_CRLGROUP* CSSM_CRLGROUP_PTR; alias CSSM_ENCODED_CRL* CSSM_ENCODED_CRL_PTR; alias CSSM_PARSED_CRL* CSSM_PARSED_CRL_PTR; alias CSSM_CRL_PAIR* CSSM_CRL_PAIR_PTR; alias CSSM_FIELD* CSSM_FIELD_PTR; alias CSSM_TP_CALLERAUTH_CONTEXT* CSSM_TP_CALLERAUTH_CONTEXT_PTR; alias CSSM_EVIDENCE* CSSM_EVIDENCE_PTR; alias CSSM_TP_VERIFY_CONTEXT* CSSM_TP_VERIFY_CONTEXT_PTR; alias CSSM_DB_ATTRIBUTE_INFO* CSSM_DB_ATTRIBUTE_INFO_PTR; alias CSSM_DB_INDEX_INFO* CSSM_DB_INDEX_INFO_PTR; alias CSSM_DB_PARSING_MODULE_INFO* CSSM_DB_PARSING_MODULE_INFO_PTR; alias CSSM_DB_RECORD_ATTRIBUTE_INFO* CSSM_DB_RECORD_ATTRIBUTE_INFO_PTR; alias CSSM_SELECTION_PREDICATE* CSSM_SELECTION_PREDICATE_PTR; alias CSSM_GUID* CSSM_GUID_PTR; alias CSSM_SUBSERVICE_UID* CSSM_SUBSERVICE_UID_PTR; alias CSSM_CONTEXT* CSSM_CONTEXT_PTR; alias CSSM_CONTEXT_ATTRIBUTE* CSSM_CONTEXT_ATTRIBUTE_PTR; alias CSSM_ACL_ENTRY_INFO* CSSM_ACL_ENTRY_INFO_PTR; alias CSSM_ACL_OWNER_PROTOTYPE* CSSM_ACL_OWNER_PROTOTYPE_PTR; alias CSSM_QUERY_SIZE_DATA* CSSM_QUERY_SIZE_DATA_PTR; alias CSSM_KEY_SIZE* CSSM_KEY_SIZE_PTR; alias CSSM_KEY* CSSM_KEY_PTR; alias CSSM_TP_CONFIRM_RESPONSE* CSSM_TP_CONFIRM_RESPONSE_PTR; alias CSSM_TUPLEGROUP* CSSM_TUPLEGROUP_PTR; alias CSSM_TP_RESULT_SET* CSSM_TP_RESULT_SET_PTR; alias CSSM_TP_VERIFY_CONTEXT_RESULT* CSSM_TP_VERIFY_CONTEXT_RESULT_PTR; alias CSSM_NAME_LIST* CSSM_NAME_LIST_PTR; alias CSSM_DB_UNIQUE_RECORD* CSSM_DB_UNIQUE_RECORD_PTR; alias CSSM_DB_RECORD_ATTRIBUTE_DATA* CSSM_DB_RECORD_ATTRIBUTE_DATA_PTR; alias CSSM_DL_DB_HANDLE* CSSM_DL_DB_HANDLE_PTR; alias CSSM_VERSION* CSSM_VERSION_PTR; alias CSSM_FUNC_NAME_ADDR* CSSM_FUNC_NAME_ADDR_PTR; extern (C) { alias int function (CSSM_GUID*, void*, uint, uint, uint) CSSM_API_ModuleEventHandler; alias void function (void*, void*) CSSM_FREE; alias int function (CSSM_LIST*, CSSM_LIST_PTR, void*, CSSM_MEMORY_FUNCS*) CSSM_ACL_SUBJECT_CALLBACK; alias int function (int, void*, CSSM_DATA_PTR) CSSM_TP_VERIFICATION_RESULTS_CALLBACK; alias int function (CSSM_LIST*, CSSM_SAMPLEGROUP_PTR, void*, CSSM_MEMORY_FUNCS*) CSSM_CHALLENGE_CALLBACK; alias void function () CSSM_PROC_ADDR; alias void* function (uint, CSSM_SIZE, void*) CSSM_REALLOC; alias uint function (uint, CSSM_SIZE, void*) CSSM_CALLOC; alias uint function (CSSM_SIZE, int) CSSM_MALLOC; alias CSSM_RETURN function (CSSM_DATA_PTR, void*) CSSM_CALLBACK; } enum { CSSM_INVALID_HANDLE = 0 } enum { CSSM_FALSE = 0, CSSM_TRUE = !CSSM_FALSE } enum { CSSM_OK = 0 } enum { CSSM_MODULE_STRING_SIZE = 64 } alias char[CSSM_MODULE_STRING_SIZE + 4] CSSM_STRING; enum { CSSM_KEY_HIERARCHY_NONE = 0, CSSM_KEY_HIERARCHY_INTEG = 1, CSSM_KEY_HIERARCHY_EXPORT = 2 } enum { CSSM_PVC_NONE = 0, CSSM_PVC_APP = 1, CSSM_PVC_SP = 2 } enum { CSSM_PRIVILEGE_SCOPE_NONE = 0, CSSM_PRIVILEGE_SCOPE_PROCESS = 1, CSSM_PRIVILEGE_SCOPE_THREAD = 2 } enum { CSSM_SERVICE_CSSM = 0x1, CSSM_SERVICE_CSP = 0x2, CSSM_SERVICE_DL = 0x4, CSSM_SERVICE_CL = 0x8, CSSM_SERVICE_TP = 0x10, CSSM_SERVICE_AC = 0x20, CSSM_SERVICE_KR = 0x40 } enum { CSSM_NOTIFY_INSERT = 1, CSSM_NOTIFY_REMOVE = 2, CSSM_NOTIFY_FAULT = 3 } enum { CSSM_ATTACH_READ_ONLY = 0x00000001 } enum { CSSM_USEE_LAST = 0xFF, CSSM_USEE_NONE = 0, CSSM_USEE_DOMESTIC = 1, CSSM_USEE_FINANCIAL = 2, CSSM_USEE_KRLE = 3, CSSM_USEE_KRENT = 4, CSSM_USEE_SSL = 5, CSSM_USEE_AUTHENTICATION = 6, CSSM_USEE_KEYEXCH = 7, CSSM_USEE_MEDICAL = 8, CSSM_USEE_INSURANCE = 9, CSSM_USEE_WEAK = 10 } enum { CSSM_ADDR_NONE = 0, CSSM_ADDR_CUSTOM = 1, CSSM_ADDR_URL = 2, CSSM_ADDR_SOCKADDR = 3, CSSM_ADDR_NAME = 4 } enum { CSSM_NET_PROTO_NONE = 0, CSSM_NET_PROTO_CUSTOM = 1, CSSM_NET_PROTO_UNSPECIFIED = 2, CSSM_NET_PROTO_LDAP = 3, CSSM_NET_PROTO_LDAPS = 4, CSSM_NET_PROTO_LDAPNS = 5, CSSM_NET_PROTO_X500DAP = 6, CSSM_NET_PROTO_FTP = 7, CSSM_NET_PROTO_FTPS = 8, CSSM_NET_PROTO_OCSP = 9, CSSM_NET_PROTO_CMP = 10, CSSM_NET_PROTO_CMPS = 11 } enum { CSSM_WORDID__UNK_ = -1, CSSM_WORDID__NLU_ = 0, CSSM_WORDID__STAR_ = 1, CSSM_WORDID_A = 2, CSSM_WORDID_ACL = 3, CSSM_WORDID_ALPHA = 4, CSSM_WORDID_B = 5, CSSM_WORDID_BER = 6, CSSM_WORDID_BINARY = 7, CSSM_WORDID_BIOMETRIC = 8, CSSM_WORDID_C = 9, CSSM_WORDID_CANCELED = 10, CSSM_WORDID_CERT = 11, CSSM_WORDID_COMMENT = 12, CSSM_WORDID_CRL = 13, CSSM_WORDID_CUSTOM = 14, CSSM_WORDID_D = 15, CSSM_WORDID_DATE = 16, CSSM_WORDID_DB_DELETE = 17, CSSM_WORDID_DB_EXEC_STORED_QUERY = 18, CSSM_WORDID_DB_INSERT = 19, CSSM_WORDID_DB_MODIFY = 20, CSSM_WORDID_DB_READ = 21, CSSM_WORDID_DBS_CREATE = 22, CSSM_WORDID_DBS_DELETE = 23, CSSM_WORDID_DECRYPT = 24, CSSM_WORDID_DELETE = 25, CSSM_WORDID_DELTA_CRL = 26, CSSM_WORDID_DER = 27, CSSM_WORDID_DERIVE = 28, CSSM_WORDID_DISPLAY = 29, CSSM_WORDID_DO = 30, CSSM_WORDID_DSA = 31, CSSM_WORDID_DSA_SHA1 = 32, CSSM_WORDID_E = 33, CSSM_WORDID_ELGAMAL = 34, CSSM_WORDID_ENCRYPT = 35, CSSM_WORDID_ENTRY = 36, CSSM_WORDID_EXPORT_CLEAR = 37, CSSM_WORDID_EXPORT_WRAPPED = 38, CSSM_WORDID_G = 39, CSSM_WORDID_GE = 40, CSSM_WORDID_GENKEY = 41, CSSM_WORDID_HASH = 42, CSSM_WORDID_HASHED_PASSWORD = 43, CSSM_WORDID_HASHED_SUBJECT = 44, CSSM_WORDID_HAVAL = 45, CSSM_WORDID_IBCHASH = 46, CSSM_WORDID_IMPORT_CLEAR = 47, CSSM_WORDID_IMPORT_WRAPPED = 48, CSSM_WORDID_INTEL = 49, CSSM_WORDID_ISSUER = 50, CSSM_WORDID_ISSUER_INFO = 51, CSSM_WORDID_K_OF_N = 52, CSSM_WORDID_KEA = 53, CSSM_WORDID_KEYHOLDER = 54, CSSM_WORDID_L = 55, CSSM_WORDID_LE = 56, CSSM_WORDID_LOGIN = 57, CSSM_WORDID_LOGIN_NAME = 58, CSSM_WORDID_MAC = 59, CSSM_WORDID_MD2 = 60, CSSM_WORDID_MD2WITHRSA = 61, CSSM_WORDID_MD4 = 62, CSSM_WORDID_MD5 = 63, CSSM_WORDID_MD5WITHRSA = 64, CSSM_WORDID_N = 65, CSSM_WORDID_NAME = 66, CSSM_WORDID_NDR = 67, CSSM_WORDID_NHASH = 68, CSSM_WORDID_NOT_AFTER = 69, CSSM_WORDID_NOT_BEFORE = 70, CSSM_WORDID_NULL = 71, CSSM_WORDID_NUMERIC = 72, CSSM_WORDID_OBJECT_HASH = 73, CSSM_WORDID_ONE_TIME = 74, CSSM_WORDID_ONLINE = 75, CSSM_WORDID_OWNER = 76, CSSM_WORDID_P = 77, CSSM_WORDID_PAM_NAME = 78, CSSM_WORDID_PASSWORD = 79, CSSM_WORDID_PGP = 80, CSSM_WORDID_PREFIX = 81, CSSM_WORDID_PRIVATE_KEY = 82, CSSM_WORDID_PROMPTED_BIOMETRIC = 83, CSSM_WORDID_PROMPTED_PASSWORD = 84, CSSM_WORDID_PROPAGATE = 85, CSSM_WORDID_PROTECTED_BIOMETRIC = 86, CSSM_WORDID_PROTECTED_PASSWORD = 87, CSSM_WORDID_PROTECTED_PIN = 88, CSSM_WORDID_PUBLIC_KEY = 89, CSSM_WORDID_PUBLIC_KEY_FROM_CERT = 90, CSSM_WORDID_Q = 91, CSSM_WORDID_RANGE = 92, CSSM_WORDID_REVAL = 93, CSSM_WORDID_RIPEMAC = 94, CSSM_WORDID_RIPEMD = 95, CSSM_WORDID_RIPEMD160 = 96, CSSM_WORDID_RSA = 97, CSSM_WORDID_RSA_ISO9796 = 98, CSSM_WORDID_RSA_PKCS = 99, CSSM_WORDID_RSA_PKCS_MD5 = 100, CSSM_WORDID_RSA_PKCS_SHA1 = 101, CSSM_WORDID_RSA_PKCS1 = 102, CSSM_WORDID_RSA_PKCS1_MD5 = 103, CSSM_WORDID_RSA_PKCS1_SHA1 = 104, CSSM_WORDID_RSA_PKCS1_SIG = 105, CSSM_WORDID_RSA_RAW = 106, CSSM_WORDID_SDSIV1 = 107, CSSM_WORDID_SEQUENCE = 108, CSSM_WORDID_SET = 109, CSSM_WORDID_SEXPR = 110, CSSM_WORDID_SHA1 = 111, CSSM_WORDID_SHA1WITHDSA = 112, CSSM_WORDID_SHA1WITHECDSA = 113, CSSM_WORDID_SHA1WITHRSA = 114, CSSM_WORDID_SIGN = 115, CSSM_WORDID_SIGNATURE = 116, CSSM_WORDID_SIGNED_NONCE = 117, CSSM_WORDID_SIGNED_SECRET = 118, CSSM_WORDID_SPKI = 119, CSSM_WORDID_SUBJECT = 120, CSSM_WORDID_SUBJECT_INFO = 121, CSSM_WORDID_TAG = 122, CSSM_WORDID_THRESHOLD = 123, CSSM_WORDID_TIME = 124, CSSM_WORDID_URI = 125, CSSM_WORDID_VERSION = 126, CSSM_WORDID_X509_ATTRIBUTE = 127, CSSM_WORDID_X509V1 = 128, CSSM_WORDID_X509V2 = 129, CSSM_WORDID_X509V3 = 130, CSSM_WORDID_X9_ATTRIBUTE = 131, CSSM_WORDID_VENDOR_START = 0x00010000, CSSM_WORDID_VENDOR_END = 0x7FFF0000 } enum { CSSM_LIST_ELEMENT_DATUM = 0x00, CSSM_LIST_ELEMENT_SUBLIST = 0x01, CSSM_LIST_ELEMENT_WORDID = 0x02 } enum { CSSM_LIST_TYPE_UNKNOWN = 0, CSSM_LIST_TYPE_CUSTOM = 1, CSSM_LIST_TYPE_SEXPR = 2 } enum { CSSM_SAMPLE_TYPE_PASSWORD = CSSM_WORDID_PASSWORD, CSSM_SAMPLE_TYPE_HASHED_PASSWORD = CSSM_WORDID_HASHED_PASSWORD, CSSM_SAMPLE_TYPE_PROTECTED_PASSWORD = CSSM_WORDID_PROTECTED_PASSWORD, CSSM_SAMPLE_TYPE_PROMPTED_PASSWORD = CSSM_WORDID_PROMPTED_PASSWORD, CSSM_SAMPLE_TYPE_SIGNED_NONCE = CSSM_WORDID_SIGNED_NONCE, CSSM_SAMPLE_TYPE_SIGNED_SECRET = CSSM_WORDID_SIGNED_SECRET, CSSM_SAMPLE_TYPE_BIOMETRIC = CSSM_WORDID_BIOMETRIC, CSSM_SAMPLE_TYPE_PROTECTED_BIOMETRIC = CSSM_WORDID_PROTECTED_BIOMETRIC, CSSM_SAMPLE_TYPE_PROMPTED_BIOMETRIC = CSSM_WORDID_PROMPTED_BIOMETRIC, CSSM_SAMPLE_TYPE_THRESHOLD = CSSM_WORDID_THRESHOLD } enum { CSSM_CERT_UNKNOWN = 0x00, CSSM_CERT_X_509v1 = 0x01, CSSM_CERT_X_509v2 = 0x02, CSSM_CERT_X_509v3 = 0x03, CSSM_CERT_PGP = 0x04, CSSM_CERT_SPKI = 0x05, CSSM_CERT_SDSIv1 = 0x06, CSSM_CERT_Intel = 0x08, CSSM_CERT_X_509_ATTRIBUTE = 0x09, CSSM_CERT_X9_ATTRIBUTE = 0x0A, CSSM_CERT_TUPLE = 0x0B, CSSM_CERT_ACL_ENTRY = 0x0C, CSSM_CERT_MULTIPLE = 0x7FFE, CSSM_CERT_LAST = 0x7FFF, CSSM_CL_CUSTOM_CERT_TYPE = 0x08000 } enum { CSSM_CERT_ENCODING_UNKNOWN = 0x00, CSSM_CERT_ENCODING_CUSTOM = 0x01, CSSM_CERT_ENCODING_BER = 0x02, CSSM_CERT_ENCODING_DER = 0x03, CSSM_CERT_ENCODING_NDR = 0x04, CSSM_CERT_ENCODING_SEXPR = 0x05, CSSM_CERT_ENCODING_PGP = 0x06, CSSM_CERT_ENCODING_MULTIPLE = 0x7FFE, CSSM_CERT_ENCODING_LAST = 0x7FFF, CSSM_CL_CUSTOM_CERT_ENCODING = 0x8000 } enum { CSSM_CERT_PARSE_FORMAT_NONE = 0x00, CSSM_CERT_PARSE_FORMAT_CUSTOM = 0x01, CSSM_CERT_PARSE_FORMAT_SEXPR = 0x02, CSSM_CERT_PARSE_FORMAT_COMPLEX = 0x03, CSSM_CERT_PARSE_FORMAT_OID_NAMED = 0x04, CSSM_CERT_PARSE_FORMAT_TUPLE = 0x05, CSSM_CERT_PARSE_FORMAT_MULTIPLE = 0x7FFE, CSSM_CERT_PARSE_FORMAT_LAST = 0x7FFF, CSSM_CL_CUSTOM_CERT_PARSE_FORMAT = 0x8000 } enum { CSSM_CERTGROUP_DATA = 0x00, CSSM_CERTGROUP_ENCODED_CERT = 0x01, CSSM_CERTGROUP_PARSED_CERT = 0x02, CSSM_CERTGROUP_CERT_PAIR = 0x03 } enum { CSSM_ACL_SUBJECT_TYPE_ANY = CSSM_WORDID__STAR_, CSSM_ACL_SUBJECT_TYPE_THRESHOLD = CSSM_WORDID_THRESHOLD, CSSM_ACL_SUBJECT_TYPE_PASSWORD = CSSM_WORDID_PASSWORD, CSSM_ACL_SUBJECT_TYPE_PROTECTED_PASSWORD = CSSM_WORDID_PROTECTED_PASSWORD, CSSM_ACL_SUBJECT_TYPE_PROMPTED_PASSWORD = CSSM_WORDID_PROMPTED_PASSWORD, CSSM_ACL_SUBJECT_TYPE_PUBLIC_KEY = CSSM_WORDID_PUBLIC_KEY, CSSM_ACL_SUBJECT_TYPE_HASHED_SUBJECT = CSSM_WORDID_HASHED_SUBJECT, CSSM_ACL_SUBJECT_TYPE_BIOMETRIC = CSSM_WORDID_BIOMETRIC, CSSM_ACL_SUBJECT_TYPE_PROTECTED_BIOMETRIC = CSSM_WORDID_PROTECTED_BIOMETRIC, CSSM_ACL_SUBJECT_TYPE_PROMPTED_BIOMETRIC = CSSM_WORDID_PROMPTED_BIOMETRIC, CSSM_ACL_SUBJECT_TYPE_LOGIN_NAME = CSSM_WORDID_LOGIN_NAME, CSSM_ACL_SUBJECT_TYPE_EXT_PAM_NAME = CSSM_WORDID_PAM_NAME } enum { CSSM_ACL_AUTHORIZATION_TAG_VENDOR_DEFINED_START = 0x00010000, CSSM_ACL_AUTHORIZATION_ANY = CSSM_WORDID__STAR_, CSSM_ACL_AUTHORIZATION_LOGIN = CSSM_WORDID_LOGIN, CSSM_ACL_AUTHORIZATION_GENKEY = CSSM_WORDID_GENKEY, CSSM_ACL_AUTHORIZATION_DELETE = CSSM_WORDID_DELETE, CSSM_ACL_AUTHORIZATION_EXPORT_WRAPPED = CSSM_WORDID_EXPORT_WRAPPED, CSSM_ACL_AUTHORIZATION_EXPORT_CLEAR = CSSM_WORDID_EXPORT_CLEAR, CSSM_ACL_AUTHORIZATION_IMPORT_WRAPPED = CSSM_WORDID_IMPORT_WRAPPED, CSSM_ACL_AUTHORIZATION_IMPORT_CLEAR = CSSM_WORDID_IMPORT_CLEAR, CSSM_ACL_AUTHORIZATION_SIGN = CSSM_WORDID_SIGN, CSSM_ACL_AUTHORIZATION_ENCRYPT = CSSM_WORDID_ENCRYPT, CSSM_ACL_AUTHORIZATION_DECRYPT = CSSM_WORDID_DECRYPT, CSSM_ACL_AUTHORIZATION_MAC = CSSM_WORDID_MAC, CSSM_ACL_AUTHORIZATION_DERIVE = CSSM_WORDID_DERIVE, CSSM_ACL_AUTHORIZATION_DBS_CREATE = CSSM_WORDID_DBS_CREATE, CSSM_ACL_AUTHORIZATION_DBS_DELETE = CSSM_WORDID_DBS_DELETE, CSSM_ACL_AUTHORIZATION_DB_READ = CSSM_WORDID_DB_READ, CSSM_ACL_AUTHORIZATION_DB_INSERT = CSSM_WORDID_DB_INSERT, CSSM_ACL_AUTHORIZATION_DB_MODIFY = CSSM_WORDID_DB_MODIFY, CSSM_ACL_AUTHORIZATION_DB_DELETE = CSSM_WORDID_DB_DELETE } enum { CSSM_ACL_EDIT_MODE_ADD = 1, CSSM_ACL_EDIT_MODE_DELETE = 2, CSSM_ACL_EDIT_MODE_REPLACE = 3 } enum { CSSM_KEYHEADER_VERSION = 2 } enum { CSSM_KEYBLOB_RAW = 0, CSSM_KEYBLOB_REFERENCE = 2, CSSM_KEYBLOB_WRAPPED = 3, CSSM_KEYBLOB_OTHER = 0xFFFFFFFF } enum { CSSM_KEYBLOB_RAW_FORMAT_NONE = 0, CSSM_KEYBLOB_RAW_FORMAT_PKCS1 = 1, CSSM_KEYBLOB_RAW_FORMAT_PKCS3 = 2, CSSM_KEYBLOB_RAW_FORMAT_MSCAPI = 3, CSSM_KEYBLOB_RAW_FORMAT_PGP = 4, CSSM_KEYBLOB_RAW_FORMAT_FIPS186 = 5, CSSM_KEYBLOB_RAW_FORMAT_BSAFE = 6, CSSM_KEYBLOB_RAW_FORMAT_CCA = 9, CSSM_KEYBLOB_RAW_FORMAT_PKCS8 = 10, CSSM_KEYBLOB_RAW_FORMAT_SPKI = 11, CSSM_KEYBLOB_RAW_FORMAT_OCTET_STRING = 12, CSSM_KEYBLOB_RAW_FORMAT_OTHER = 0xFFFFFFFF } enum { CSSM_KEYBLOB_WRAPPED_FORMAT_NONE = 0, CSSM_KEYBLOB_WRAPPED_FORMAT_PKCS8 = 1, CSSM_KEYBLOB_WRAPPED_FORMAT_PKCS7 = 2, CSSM_KEYBLOB_WRAPPED_FORMAT_MSCAPI = 3, CSSM_KEYBLOB_WRAPPED_FORMAT_OTHER = 0xFFFFFFFF } enum { CSSM_KEYBLOB_REF_FORMAT_INTEGER = 0, CSSM_KEYBLOB_REF_FORMAT_STRING = 1, CSSM_KEYBLOB_REF_FORMAT_SPKI = 2, CSSM_KEYBLOB_REF_FORMAT_OTHER = 0xFFFFFFFF } enum { CSSM_KEYCLASS_PUBLIC_KEY = 0, CSSM_KEYCLASS_PRIVATE_KEY = 1, CSSM_KEYCLASS_SESSION_KEY = 2, CSSM_KEYCLASS_SECRET_PART = 3, CSSM_KEYCLASS_OTHER = 0xFFFFFFFF } enum { CSSM_KEYATTR_RETURN_DEFAULT = 0x00000000, CSSM_KEYATTR_RETURN_DATA = 0x10000000, CSSM_KEYATTR_RETURN_REF = 0x20000000, CSSM_KEYATTR_RETURN_NONE = 0x40000000, CSSM_KEYATTR_PERMANENT = 0x00000001, CSSM_KEYATTR_PRIVATE = 0x00000002, CSSM_KEYATTR_MODIFIABLE = 0x00000004, CSSM_KEYATTR_SENSITIVE = 0x00000008, CSSM_KEYATTR_EXTRACTABLE = 0x00000020, CSSM_KEYATTR_ALWAYS_SENSITIVE = 0x00000010, CSSM_KEYATTR_NEVER_EXTRACTABLE = 0x00000040 } enum { CSSM_KEYUSE_ANY = 0x80000000, CSSM_KEYUSE_ENCRYPT = 0x00000001, CSSM_KEYUSE_DECRYPT = 0x00000002, CSSM_KEYUSE_SIGN = 0x00000004, CSSM_KEYUSE_VERIFY = 0x00000008, CSSM_KEYUSE_SIGN_RECOVER = 0x00000010, CSSM_KEYUSE_VERIFY_RECOVER = 0x00000020, CSSM_KEYUSE_WRAP = 0x00000040, CSSM_KEYUSE_UNWRAP = 0x00000080, CSSM_KEYUSE_DERIVE = 0x00000100 } enum { CSSM_ALGID_NONE = 0, CSSM_ALGID_CUSTOM = CSSM_ALGID_NONE + 1, CSSM_ALGID_DH = CSSM_ALGID_NONE + 2, CSSM_ALGID_PH = CSSM_ALGID_NONE + 3, CSSM_ALGID_KEA = CSSM_ALGID_NONE + 4, CSSM_ALGID_MD2 = CSSM_ALGID_NONE + 5, CSSM_ALGID_MD4 = CSSM_ALGID_NONE + 6, CSSM_ALGID_MD5 = CSSM_ALGID_NONE + 7, CSSM_ALGID_SHA1 = CSSM_ALGID_NONE + 8, CSSM_ALGID_NHASH = CSSM_ALGID_NONE + 9, CSSM_ALGID_HAVAL = CSSM_ALGID_NONE + 10, CSSM_ALGID_RIPEMD = CSSM_ALGID_NONE + 11, CSSM_ALGID_IBCHASH = CSSM_ALGID_NONE + 12, CSSM_ALGID_RIPEMAC = CSSM_ALGID_NONE + 13, CSSM_ALGID_DES = CSSM_ALGID_NONE + 14, CSSM_ALGID_DESX = CSSM_ALGID_NONE + 15, CSSM_ALGID_RDES = CSSM_ALGID_NONE + 16, CSSM_ALGID_3DES_3KEY_EDE = CSSM_ALGID_NONE + 17, CSSM_ALGID_3DES_2KEY_EDE = CSSM_ALGID_NONE + 18, CSSM_ALGID_3DES_1KEY_EEE = CSSM_ALGID_NONE + 19, CSSM_ALGID_3DES_3KEY = CSSM_ALGID_3DES_3KEY_EDE, CSSM_ALGID_3DES_3KEY_EEE = CSSM_ALGID_NONE + 20, CSSM_ALGID_3DES_2KEY = CSSM_ALGID_3DES_2KEY_EDE, CSSM_ALGID_3DES_2KEY_EEE = CSSM_ALGID_NONE + 21, CSSM_ALGID_3DES_1KEY = CSSM_ALGID_3DES_3KEY_EEE, CSSM_ALGID_IDEA = CSSM_ALGID_NONE + 22, CSSM_ALGID_RC2 = CSSM_ALGID_NONE + 23, CSSM_ALGID_RC5 = CSSM_ALGID_NONE + 24, CSSM_ALGID_RC4 = CSSM_ALGID_NONE + 25, CSSM_ALGID_SEAL = CSSM_ALGID_NONE + 26, CSSM_ALGID_CAST = CSSM_ALGID_NONE + 27, CSSM_ALGID_BLOWFISH = CSSM_ALGID_NONE + 28, CSSM_ALGID_SKIPJACK = CSSM_ALGID_NONE + 29, CSSM_ALGID_LUCIFER = CSSM_ALGID_NONE + 30, CSSM_ALGID_MADRYGA = CSSM_ALGID_NONE + 31, CSSM_ALGID_FEAL = CSSM_ALGID_NONE + 32, CSSM_ALGID_REDOC = CSSM_ALGID_NONE + 33, CSSM_ALGID_REDOC3 = CSSM_ALGID_NONE + 34, CSSM_ALGID_LOKI = CSSM_ALGID_NONE + 35, CSSM_ALGID_KHUFU = CSSM_ALGID_NONE + 36, CSSM_ALGID_KHAFRE = CSSM_ALGID_NONE + 37, CSSM_ALGID_MMB = CSSM_ALGID_NONE + 38, CSSM_ALGID_GOST = CSSM_ALGID_NONE + 39, CSSM_ALGID_SAFER = CSSM_ALGID_NONE + 40, CSSM_ALGID_CRAB = CSSM_ALGID_NONE + 41, CSSM_ALGID_RSA = CSSM_ALGID_NONE + 42, CSSM_ALGID_DSA = CSSM_ALGID_NONE + 43, CSSM_ALGID_MD5WithRSA = CSSM_ALGID_NONE + 44, CSSM_ALGID_MD2WithRSA = CSSM_ALGID_NONE + 45, CSSM_ALGID_ElGamal = CSSM_ALGID_NONE + 46, CSSM_ALGID_MD2Random = CSSM_ALGID_NONE + 47, CSSM_ALGID_MD5Random = CSSM_ALGID_NONE + 48, CSSM_ALGID_SHARandom = CSSM_ALGID_NONE + 49, CSSM_ALGID_DESRandom = CSSM_ALGID_NONE + 50, CSSM_ALGID_SHA1WithRSA = CSSM_ALGID_NONE + 51, CSSM_ALGID_CDMF = CSSM_ALGID_NONE + 52, CSSM_ALGID_CAST3 = CSSM_ALGID_NONE + 53, CSSM_ALGID_CAST5 = CSSM_ALGID_NONE + 54, CSSM_ALGID_GenericSecret = CSSM_ALGID_NONE + 55, CSSM_ALGID_ConcatBaseAndKey = CSSM_ALGID_NONE + 56, CSSM_ALGID_ConcatKeyAndBase = CSSM_ALGID_NONE + 57, CSSM_ALGID_ConcatBaseAndData = CSSM_ALGID_NONE + 58, CSSM_ALGID_ConcatDataAndBase = CSSM_ALGID_NONE + 59, CSSM_ALGID_XORBaseAndData = CSSM_ALGID_NONE + 60, CSSM_ALGID_ExtractFromKey = CSSM_ALGID_NONE + 61, CSSM_ALGID_SSL3PreMasterGen = CSSM_ALGID_NONE + 62, CSSM_ALGID_SSL3MasterDerive = CSSM_ALGID_NONE + 63, CSSM_ALGID_SSL3KeyAndMacDerive = CSSM_ALGID_NONE + 64, CSSM_ALGID_SSL3MD5_MAC = CSSM_ALGID_NONE + 65, CSSM_ALGID_SSL3SHA1_MAC = CSSM_ALGID_NONE + 66, CSSM_ALGID_PKCS5_PBKDF1_MD5 = CSSM_ALGID_NONE + 67, CSSM_ALGID_PKCS5_PBKDF1_MD2 = CSSM_ALGID_NONE + 68, CSSM_ALGID_PKCS5_PBKDF1_SHA1 = CSSM_ALGID_NONE + 69, CSSM_ALGID_WrapLynks = CSSM_ALGID_NONE + 70, CSSM_ALGID_WrapSET_OAEP = CSSM_ALGID_NONE + 71, CSSM_ALGID_BATON = CSSM_ALGID_NONE + 72, CSSM_ALGID_ECDSA = CSSM_ALGID_NONE + 73, CSSM_ALGID_MAYFLY = CSSM_ALGID_NONE + 74, CSSM_ALGID_JUNIPER = CSSM_ALGID_NONE + 75, CSSM_ALGID_FASTHASH = CSSM_ALGID_NONE + 76, CSSM_ALGID_3DES = CSSM_ALGID_NONE + 77, CSSM_ALGID_SSL3MD5 = CSSM_ALGID_NONE + 78, CSSM_ALGID_SSL3SHA1 = CSSM_ALGID_NONE + 79, CSSM_ALGID_FortezzaTimestamp = CSSM_ALGID_NONE + 80, CSSM_ALGID_SHA1WithDSA = CSSM_ALGID_NONE + 81, CSSM_ALGID_SHA1WithECDSA = CSSM_ALGID_NONE + 82, CSSM_ALGID_DSA_BSAFE = CSSM_ALGID_NONE + 83, CSSM_ALGID_ECDH = CSSM_ALGID_NONE + 84, CSSM_ALGID_ECMQV = CSSM_ALGID_NONE + 85, CSSM_ALGID_PKCS12_SHA1_PBE = CSSM_ALGID_NONE + 86, CSSM_ALGID_ECNRA = CSSM_ALGID_NONE + 87, CSSM_ALGID_SHA1WithECNRA = CSSM_ALGID_NONE + 88, CSSM_ALGID_ECES = CSSM_ALGID_NONE + 89, CSSM_ALGID_ECAES = CSSM_ALGID_NONE + 90, CSSM_ALGID_SHA1HMAC = CSSM_ALGID_NONE + 91, CSSM_ALGID_FIPS186Random = CSSM_ALGID_NONE + 92, CSSM_ALGID_ECC = CSSM_ALGID_NONE + 93, CSSM_ALGID_MQV = CSSM_ALGID_NONE + 94, CSSM_ALGID_NRA = CSSM_ALGID_NONE + 95, CSSM_ALGID_IntelPlatformRandom = CSSM_ALGID_NONE + 96, CSSM_ALGID_UTC = CSSM_ALGID_NONE + 97, CSSM_ALGID_HAVAL3 = CSSM_ALGID_NONE + 98, CSSM_ALGID_HAVAL4 = CSSM_ALGID_NONE + 99, CSSM_ALGID_HAVAL5 = CSSM_ALGID_NONE + 100, CSSM_ALGID_TIGER = CSSM_ALGID_NONE + 101, CSSM_ALGID_MD5HMAC = CSSM_ALGID_NONE + 102, CSSM_ALGID_PKCS5_PBKDF2 = CSSM_ALGID_NONE + 103, CSSM_ALGID_RUNNING_COUNTER = CSSM_ALGID_NONE + 104, CSSM_ALGID_LAST = CSSM_ALGID_NONE + 0x7FFFFFFF, CSSM_ALGID_VENDOR_DEFINED = CSSM_ALGID_NONE + 0x80000000 } enum { CSSM_ALGMODE_NONE = 0, CSSM_ALGMODE_CUSTOM = CSSM_ALGMODE_NONE + 1, CSSM_ALGMODE_ECB = CSSM_ALGMODE_NONE + 2, CSSM_ALGMODE_ECBPad = CSSM_ALGMODE_NONE + 3, CSSM_ALGMODE_CBC = CSSM_ALGMODE_NONE + 4, CSSM_ALGMODE_CBC_IV8 = CSSM_ALGMODE_NONE + 5, CSSM_ALGMODE_CBCPadIV8 = CSSM_ALGMODE_NONE + 6, CSSM_ALGMODE_CFB = CSSM_ALGMODE_NONE + 7, CSSM_ALGMODE_CFB_IV8 = CSSM_ALGMODE_NONE + 8, CSSM_ALGMODE_CFBPadIV8 = CSSM_ALGMODE_NONE + 9, CSSM_ALGMODE_OFB = CSSM_ALGMODE_NONE + 10, CSSM_ALGMODE_OFB_IV8 = CSSM_ALGMODE_NONE + 11, CSSM_ALGMODE_OFBPadIV8 = CSSM_ALGMODE_NONE + 12, CSSM_ALGMODE_COUNTER = CSSM_ALGMODE_NONE + 13, CSSM_ALGMODE_BC = CSSM_ALGMODE_NONE + 14, CSSM_ALGMODE_PCBC = CSSM_ALGMODE_NONE + 15, CSSM_ALGMODE_CBCC = CSSM_ALGMODE_NONE + 16, CSSM_ALGMODE_OFBNLF = CSSM_ALGMODE_NONE + 17, CSSM_ALGMODE_PBC = CSSM_ALGMODE_NONE + 18, CSSM_ALGMODE_PFB = CSSM_ALGMODE_NONE + 19, CSSM_ALGMODE_CBCPD = CSSM_ALGMODE_NONE + 20, CSSM_ALGMODE_PUBLIC_KEY = CSSM_ALGMODE_NONE + 21, CSSM_ALGMODE_PRIVATE_KEY = CSSM_ALGMODE_NONE + 22, CSSM_ALGMODE_SHUFFLE = CSSM_ALGMODE_NONE + 23, CSSM_ALGMODE_ECB64 = CSSM_ALGMODE_NONE + 24, CSSM_ALGMODE_CBC64 = CSSM_ALGMODE_NONE + 25, CSSM_ALGMODE_OFB64 = CSSM_ALGMODE_NONE + 26, CSSM_ALGMODE_CFB32 = CSSM_ALGMODE_NONE + 28, CSSM_ALGMODE_CFB16 = CSSM_ALGMODE_NONE + 29, CSSM_ALGMODE_CFB8 = CSSM_ALGMODE_NONE + 30, CSSM_ALGMODE_WRAP = CSSM_ALGMODE_NONE + 31, CSSM_ALGMODE_PRIVATE_WRAP = CSSM_ALGMODE_NONE + 32, CSSM_ALGMODE_RELAYX = CSSM_ALGMODE_NONE + 33, CSSM_ALGMODE_ECB128 = CSSM_ALGMODE_NONE + 34, CSSM_ALGMODE_ECB96 = CSSM_ALGMODE_NONE + 35, CSSM_ALGMODE_CBC128 = CSSM_ALGMODE_NONE + 36, CSSM_ALGMODE_OAEP_HASH = CSSM_ALGMODE_NONE + 37, CSSM_ALGMODE_PKCS1_EME_V15 = CSSM_ALGMODE_NONE + 38, CSSM_ALGMODE_PKCS1_EME_OAEP = CSSM_ALGMODE_NONE + 39, CSSM_ALGMODE_PKCS1_EMSA_V15 = CSSM_ALGMODE_NONE + 40, CSSM_ALGMODE_ISO_9796 = CSSM_ALGMODE_NONE + 41, CSSM_ALGMODE_X9_31 = CSSM_ALGMODE_NONE + 42, CSSM_ALGMODE_LAST = CSSM_ALGMODE_NONE + 0x7FFFFFFF, CSSM_ALGMODE_VENDOR_DEFINED = CSSM_ALGMODE_NONE + 0x80000000 } enum { CSSM_CSP_SOFTWARE = 1, CSSM_CSP_HARDWARE = CSSM_CSP_SOFTWARE + 1, CSSM_CSP_HYBRID = CSSM_CSP_SOFTWARE + 2 } enum { CSSM_ALGCLASS_NONE = 0, CSSM_ALGCLASS_CUSTOM = CSSM_ALGCLASS_NONE + 1, CSSM_ALGCLASS_SIGNATURE = CSSM_ALGCLASS_NONE + 2, CSSM_ALGCLASS_SYMMETRIC = CSSM_ALGCLASS_NONE + 3, CSSM_ALGCLASS_DIGEST = CSSM_ALGCLASS_NONE + 4, CSSM_ALGCLASS_RANDOMGEN = CSSM_ALGCLASS_NONE + 5, CSSM_ALGCLASS_UNIQUEGEN = CSSM_ALGCLASS_NONE + 6, CSSM_ALGCLASS_MAC = CSSM_ALGCLASS_NONE + 7, CSSM_ALGCLASS_ASYMMETRIC = CSSM_ALGCLASS_NONE + 8, CSSM_ALGCLASS_KEYGEN = CSSM_ALGCLASS_NONE + 9, CSSM_ALGCLASS_DERIVEKEY = CSSM_ALGCLASS_NONE + 10 } enum { CSSM_ATTRIBUTE_DATA_NONE = 0x00000000, CSSM_ATTRIBUTE_DATA_UINT32 = 0x10000000, CSSM_ATTRIBUTE_DATA_CSSM_DATA = 0x20000000, CSSM_ATTRIBUTE_DATA_CRYPTO_DATA = 0x30000000, CSSM_ATTRIBUTE_DATA_KEY = 0x40000000, CSSM_ATTRIBUTE_DATA_STRING = 0x50000000, CSSM_ATTRIBUTE_DATA_DATE = 0x60000000, CSSM_ATTRIBUTE_DATA_RANGE = 0x70000000, CSSM_ATTRIBUTE_DATA_ACCESS_CREDENTIALS = 0x80000000, CSSM_ATTRIBUTE_DATA_VERSION = 0x01000000, CSSM_ATTRIBUTE_DATA_DL_DB_HANDLE = 0x02000000, CSSM_ATTRIBUTE_DATA_KR_PROFILE = 0x03000000, CSSM_ATTRIBUTE_TYPE_MASK = 0xFF000000 } enum { CSSM_ATTRIBUTE_NONE = 0, CSSM_ATTRIBUTE_CUSTOM = CSSM_ATTRIBUTE_DATA_CSSM_DATA | 1, CSSM_ATTRIBUTE_DESCRIPTION = CSSM_ATTRIBUTE_DATA_STRING | 2, CSSM_ATTRIBUTE_KEY = CSSM_ATTRIBUTE_DATA_KEY | 3, CSSM_ATTRIBUTE_INIT_VECTOR = CSSM_ATTRIBUTE_DATA_CSSM_DATA | 4, CSSM_ATTRIBUTE_SALT = CSSM_ATTRIBUTE_DATA_CSSM_DATA | 5, CSSM_ATTRIBUTE_PADDING = CSSM_ATTRIBUTE_DATA_UINT32 | 6, CSSM_ATTRIBUTE_RANDOM = CSSM_ATTRIBUTE_DATA_CSSM_DATA | 7, CSSM_ATTRIBUTE_SEED = CSSM_ATTRIBUTE_DATA_CRYPTO_DATA | 8, CSSM_ATTRIBUTE_PASSPHRASE = CSSM_ATTRIBUTE_DATA_CRYPTO_DATA | 9, CSSM_ATTRIBUTE_KEY_LENGTH = CSSM_ATTRIBUTE_DATA_UINT32 | 10, CSSM_ATTRIBUTE_KEY_LENGTH_RANGE = CSSM_ATTRIBUTE_DATA_RANGE | 11, CSSM_ATTRIBUTE_BLOCK_SIZE = CSSM_ATTRIBUTE_DATA_UINT32 | 12, CSSM_ATTRIBUTE_OUTPUT_SIZE = CSSM_ATTRIBUTE_DATA_UINT32 | 13, CSSM_ATTRIBUTE_ROUNDS = CSSM_ATTRIBUTE_DATA_UINT32 | 14, CSSM_ATTRIBUTE_IV_SIZE = CSSM_ATTRIBUTE_DATA_UINT32 | 15, CSSM_ATTRIBUTE_ALG_PARAMS = CSSM_ATTRIBUTE_DATA_CSSM_DATA | 16, CSSM_ATTRIBUTE_LABEL = CSSM_ATTRIBUTE_DATA_CSSM_DATA | 17, CSSM_ATTRIBUTE_KEY_TYPE = CSSM_ATTRIBUTE_DATA_UINT32 | 18, CSSM_ATTRIBUTE_MODE = CSSM_ATTRIBUTE_DATA_UINT32 | 19, CSSM_ATTRIBUTE_EFFECTIVE_BITS = CSSM_ATTRIBUTE_DATA_UINT32 | 20, CSSM_ATTRIBUTE_START_DATE = CSSM_ATTRIBUTE_DATA_DATE | 21, CSSM_ATTRIBUTE_END_DATE = CSSM_ATTRIBUTE_DATA_DATE | 22, CSSM_ATTRIBUTE_KEYUSAGE = CSSM_ATTRIBUTE_DATA_UINT32 | 23, CSSM_ATTRIBUTE_KEYATTR = CSSM_ATTRIBUTE_DATA_UINT32 | 24, CSSM_ATTRIBUTE_VERSION = CSSM_ATTRIBUTE_DATA_VERSION | 25, CSSM_ATTRIBUTE_PRIME = CSSM_ATTRIBUTE_DATA_CSSM_DATA | 26, CSSM_ATTRIBUTE_BASE = CSSM_ATTRIBUTE_DATA_CSSM_DATA | 27, CSSM_ATTRIBUTE_SUBPRIME = CSSM_ATTRIBUTE_DATA_CSSM_DATA | 28, CSSM_ATTRIBUTE_ALG_ID = CSSM_ATTRIBUTE_DATA_UINT32 | 29, CSSM_ATTRIBUTE_ITERATION_COUNT = CSSM_ATTRIBUTE_DATA_UINT32 | 30, CSSM_ATTRIBUTE_ROUNDS_RANGE = CSSM_ATTRIBUTE_DATA_RANGE | 31, CSSM_ATTRIBUTE_KRPROFILE_LOCAL = CSSM_ATTRIBUTE_DATA_KR_PROFILE | 32, CSSM_ATTRIBUTE_KRPROFILE_REMOTE = CSSM_ATTRIBUTE_DATA_KR_PROFILE | 33, CSSM_ATTRIBUTE_CSP_HANDLE = CSSM_ATTRIBUTE_DATA_UINT32 | 34, CSSM_ATTRIBUTE_DL_DB_HANDLE = CSSM_ATTRIBUTE_DATA_DL_DB_HANDLE | 35, CSSM_ATTRIBUTE_ACCESS_CREDENTIALS = CSSM_ATTRIBUTE_DATA_ACCESS_CREDENTIALS | 36, CSSM_ATTRIBUTE_PUBLIC_KEY_FORMAT = CSSM_ATTRIBUTE_DATA_UINT32 | 37, CSSM_ATTRIBUTE_PRIVATE_KEY_FORMAT = CSSM_ATTRIBUTE_DATA_UINT32 | 38, CSSM_ATTRIBUTE_SYMMETRIC_KEY_FORMAT = CSSM_ATTRIBUTE_DATA_UINT32 | 39, CSSM_ATTRIBUTE_WRAPPED_KEY_FORMAT = CSSM_ATTRIBUTE_DATA_UINT32 | 40 } enum { CSSM_PADDING_NONE = 0, CSSM_PADDING_CUSTOM = CSSM_PADDING_NONE + 1, CSSM_PADDING_ZERO = CSSM_PADDING_NONE + 2, CSSM_PADDING_ONE = CSSM_PADDING_NONE + 3, CSSM_PADDING_ALTERNATE = CSSM_PADDING_NONE + 4, CSSM_PADDING_FF = CSSM_PADDING_NONE + 5, CSSM_PADDING_PKCS5 = CSSM_PADDING_NONE + 6, CSSM_PADDING_PKCS7 = CSSM_PADDING_NONE + 7, CSSM_PADDING_CIPHERSTEALING = CSSM_PADDING_NONE + 8, CSSM_PADDING_RANDOM = CSSM_PADDING_NONE + 9, CSSM_PADDING_PKCS1 = CSSM_PADDING_NONE + 10, CSSM_PADDING_VENDOR_DEFINED = CSSM_PADDING_NONE + 0x80000000 } enum { CSSM_CSP_TOK_RNG = 0x00000001, CSSM_CSP_TOK_CLOCK_EXISTS = 0x00000040 } enum { CSSM_CSP_RDR_TOKENPRESENT = 0x00000001, CSSM_CSP_RDR_EXISTS = 0x00000002, CSSM_CSP_RDR_HW = 0x00000004 } enum { CSSM_CSP_TOK_WRITE_PROTECTED = 0x00000002, CSSM_CSP_TOK_LOGIN_REQUIRED = 0x00000004, CSSM_CSP_TOK_USER_PIN_INITIALIZED = 0x00000008, CSSM_CSP_TOK_PROT_AUTHENTICATION = 0x00000100, CSSM_CSP_TOK_USER_PIN_EXPIRED = 0x00100000, CSSM_CSP_TOK_SESSION_KEY_PASSWORD = 0x00200000, CSSM_CSP_TOK_PRIVATE_KEY_PASSWORD = 0x00400000, CSSM_CSP_STORES_PRIVATE_KEYS = 0x01000000, CSSM_CSP_STORES_PUBLIC_KEYS = 0x02000000, CSSM_CSP_STORES_SESSION_KEYS = 0x04000000, CSSM_CSP_STORES_CERTIFICATES = 0x08000000, CSSM_CSP_STORES_GENERIC = 0x10000000 } enum { CSSM_PKCS_OAEP_MGF_NONE = 0, CSSM_PKCS_OAEP_MGF1_SHA1 = CSSM_PKCS_OAEP_MGF_NONE + 1, CSSM_PKCS_OAEP_MGF1_MD5 = CSSM_PKCS_OAEP_MGF_NONE + 2 } enum { CSSM_PKCS_OAEP_PSOURCE_NONE = 0, CSSM_PKCS_OAEP_PSOURCE_Pspecified = CSSM_PKCS_OAEP_PSOURCE_NONE + 1 } enum : uint { CSSM_VALUE_NOT_AVAILABLE = ~0 } enum { CSSM_PKCS5_PBKDF2_PRF_HMAC_SHA1 = 0 } enum { CSSM_TP_AUTHORITY_REQUEST_CERTISSUE = 0x01, CSSM_TP_AUTHORITY_REQUEST_CERTREVOKE = 0x02, CSSM_TP_AUTHORITY_REQUEST_CERTSUSPEND = 0x03, CSSM_TP_AUTHORITY_REQUEST_CERTRESUME = 0x04, CSSM_TP_AUTHORITY_REQUEST_CERTVERIFY = 0x05, CSSM_TP_AUTHORITY_REQUEST_CERTNOTARIZE = 0x06, CSSM_TP_AUTHORITY_REQUEST_CERTUSERECOVER = 0x07, CSSM_TP_AUTHORITY_REQUEST_CRLISSUE = 0x100 } enum { CSSM_TP_KEY_ARCHIVE = 0x0001, CSSM_TP_CERT_PUBLISH = 0x0002, CSSM_TP_CERT_NOTIFY_RENEW = 0x0004, CSSM_TP_CERT_DIR_UPDATE = 0x0008, CSSM_TP_CRL_DISTRIBUTE = 0x0010 } enum { CSSM_TP_ACTION_DEFAULT = 0 } enum { CSSM_TP_STOP_ON_POLICY = 0, CSSM_TP_STOP_ON_NONE = 1, CSSM_TP_STOP_ON_FIRST_PASS = 2, CSSM_TP_STOP_ON_FIRST_FAIL = 3 } enum { CSSM_CRL_PARSE_FORMAT_NONE = 0x00, CSSM_CRL_PARSE_FORMAT_CUSTOM = 0x01, CSSM_CRL_PARSE_FORMAT_SEXPR = 0x02, CSSM_CRL_PARSE_FORMAT_COMPLEX = 0x03, CSSM_CRL_PARSE_FORMAT_OID_NAMED = 0x04, CSSM_CRL_PARSE_FORMAT_TUPLE = 0x05, CSSM_CRL_PARSE_FORMAT_MULTIPLE = 0x7FFE, CSSM_CRL_PARSE_FORMAT_LAST = 0x7FFF, CSSM_CL_CUSTOM_CRL_PARSE_FORMAT = 0x8000 } enum { CSSM_CRL_TYPE_UNKNOWN = 0x00, CSSM_CRL_TYPE_X_509v1 = 0x01, CSSM_CRL_TYPE_X_509v2 = 0x02, CSSM_CRL_TYPE_SPKI = 0x03, CSSM_CRL_TYPE_MULTIPLE = 0x7FFE } enum { CSSM_CRL_ENCODING_UNKNOWN = 0x00, CSSM_CRL_ENCODING_CUSTOM = 0x01, CSSM_CRL_ENCODING_BER = 0x02, CSSM_CRL_ENCODING_DER = 0x03, CSSM_CRL_ENCODING_BLOOM = 0x04, CSSM_CRL_ENCODING_SEXPR = 0x05, CSSM_CRL_ENCODING_MULTIPLE = 0x7FFE } enum { CSSM_CRLGROUP_DATA = 0x00, CSSM_CRLGROUP_ENCODED_CRL = 0x01, CSSM_CRLGROUP_PARSED_CRL = 0x02, CSSM_CRLGROUP_CRL_PAIR = 0x03 } enum { CSSM_EVIDENCE_FORM_UNSPECIFIC = 0x0, CSSM_EVIDENCE_FORM_CERT = 0x1, CSSM_EVIDENCE_FORM_CRL = 0x2, CSSM_EVIDENCE_FORM_CERT_ID = 0x3, CSSM_EVIDENCE_FORM_CRL_ID = 0x4, CSSM_EVIDENCE_FORM_VERIFIER_TIME = 0x5, CSSM_EVIDENCE_FORM_CRL_THISTIME = 0x6, CSSM_EVIDENCE_FORM_CRL_NEXTTIME = 0x7, CSSM_EVIDENCE_FORM_POLICYINFO = 0x8, CSSM_EVIDENCE_FORM_TUPLEGROUP = 0x9 } enum { CSSM_TP_CONFIRM_STATUS_UNKNOWN = 0x0, CSSM_TP_CONFIRM_ACCEPT = 0x1, CSSM_TP_CONFIRM_REJECT = 0x2 } enum { CSSM_ESTIMATED_TIME_UNKNOWN = -1 } enum { CSSM_ELAPSED_TIME_UNKNOWN = -1, CSSM_ELAPSED_TIME_COMPLETE = -2 } enum { CSSM_TP_CERTISSUE_STATUS_UNKNOWN = 0x0, CSSM_TP_CERTISSUE_OK = 0x1, CSSM_TP_CERTISSUE_OKWITHCERTMODS = 0x2, CSSM_TP_CERTISSUE_OKWITHSERVICEMODS = 0x3, CSSM_TP_CERTISSUE_REJECTED = 0x4, CSSM_TP_CERTISSUE_NOT_AUTHORIZED = 0x5, CSSM_TP_CERTISSUE_WILL_BE_REVOKED = 0x6 } enum { CSSM_TP_CERTCHANGE_NONE = 0x0, CSSM_TP_CERTCHANGE_REVOKE = 0x1, CSSM_TP_CERTCHANGE_HOLD = 0x2, CSSM_TP_CERTCHANGE_RELEASE = 0x3 } enum { CSSM_TP_CERTCHANGE_REASON_UNKNOWN = 0x0, CSSM_TP_CERTCHANGE_REASON_KEYCOMPROMISE = 0x1, CSSM_TP_CERTCHANGE_REASON_CACOMPROMISE = 0x2, CSSM_TP_CERTCHANGE_REASON_CEASEOPERATION = 0x3, CSSM_TP_CERTCHANGE_REASON_AFFILIATIONCHANGE = 0x4, CSSM_TP_CERTCHANGE_REASON_SUPERCEDED = 0x5, CSSM_TP_CERTCHANGE_REASON_SUSPECTEDCOMPROMISE = 0x6, CSSM_TP_CERTCHANGE_REASON_HOLDRELEASE = 0x7 } enum { CSSM_TP_CERTCHANGE_STATUS_UNKNOWN = 0x0, CSSM_TP_CERTCHANGE_OK = 0x1, CSSM_TP_CERTCHANGE_OKWITHNEWTIME = 0x2, CSSM_TP_CERTCHANGE_WRONGCA = 0x3, CSSM_TP_CERTCHANGE_REJECTED = 0x4, CSSM_TP_CERTCHANGE_NOT_AUTHORIZED = 0x5 } enum { CSSM_TP_CERTVERIFY_UNKNOWN = 0x0, CSSM_TP_CERTVERIFY_VALID = 0x1, CSSM_TP_CERTVERIFY_INVALID = 0x2, CSSM_TP_CERTVERIFY_REVOKED = 0x3, CSSM_TP_CERTVERIFY_SUSPENDED = 0x4, CSSM_TP_CERTVERIFY_EXPIRED = 0x5, CSSM_TP_CERTVERIFY_NOT_VALID_YET = 0x6, CSSM_TP_CERTVERIFY_INVALID_AUTHORITY = 0x7, CSSM_TP_CERTVERIFY_INVALID_SIGNATURE = 0x8, CSSM_TP_CERTVERIFY_INVALID_CERT_VALUE = 0x9, CSSM_TP_CERTVERIFY_INVALID_CERTGROUP = 0xA, CSSM_TP_CERTVERIFY_INVALID_POLICY = 0xB, CSSM_TP_CERTVERIFY_INVALID_POLICY_IDS = 0xC, CSSM_TP_CERTVERIFY_INVALID_BASIC_CONSTRAINTS = 0xD, CSSM_TP_CERTVERIFY_INVALID_CRL_DIST_PT = 0xE, CSSM_TP_CERTVERIFY_INVALID_NAME_TREE = 0xF, CSSM_TP_CERTVERIFY_UNKNOWN_CRITICAL_EXT = 0x10 } enum { CSSM_TP_CERTNOTARIZE_STATUS_UNKNOWN = 0x0, CSSM_TP_CERTNOTARIZE_OK = 0x1, CSSM_TP_CERTNOTARIZE_OKWITHOUTFIELDS = 0x2, CSSM_TP_CERTNOTARIZE_OKWITHSERVICEMODS = 0x3, CSSM_TP_CERTNOTARIZE_REJECTED = 0x4, CSSM_TP_CERTNOTARIZE_NOT_AUTHORIZED = 0x5 } enum { CSSM_TP_CERTRECLAIM_STATUS_UNKNOWN = 0x0, CSSM_TP_CERTRECLAIM_OK = 0x1, CSSM_TP_CERTRECLAIM_NOMATCH = 0x2, CSSM_TP_CERTRECLAIM_REJECTED = 0x3, CSSM_TP_CERTRECLAIM_NOT_AUTHORIZED = 0x4 } enum { CSSM_TP_CRLISSUE_STATUS_UNKNOWN = 0x0, CSSM_TP_CRLISSUE_OK = 0x1, CSSM_TP_CRLISSUE_NOT_CURRENT = 0x2, CSSM_TP_CRLISSUE_INVALID_DOMAIN = 0x3, CSSM_TP_CRLISSUE_UNKNOWN_IDENTIFIER = 0x4, CSSM_TP_CRLISSUE_REJECTED = 0x5, CSSM_TP_CRLISSUE_NOT_AUTHORIZED = 0x6 } enum { CSSM_TP_FORM_TYPE_GENERIC = 0x0, CSSM_TP_FORM_TYPE_REGISTRATION = 0x1 } enum { CSSM_CL_TEMPLATE_INTERMEDIATE_CERT = 1, CSSM_CL_TEMPLATE_PKIX_CERTTEMPLATE = 2 } enum { CSSM_CERT_BUNDLE_UNKNOWN = 0x00, CSSM_CERT_BUNDLE_CUSTOM = 0x01, CSSM_CERT_BUNDLE_PKCS7_SIGNED_DATA = 0x02, CSSM_CERT_BUNDLE_PKCS7_SIGNED_ENVELOPED_DATA = 0x03, CSSM_CERT_BUNDLE_PKCS12 = 0x04, CSSM_CERT_BUNDLE_PFX = 0x05, CSSM_CERT_BUNDLE_SPKI_SEQUENCE = 0x06, CSSM_CERT_BUNDLE_PGP_KEYRING = 0x07, CSSM_CERT_BUNDLE_LAST = 0x7FFF, CSSM_CL_CUSTOM_CERT_BUNDLE_TYPE = 0x8000 } enum { CSSM_CERT_BUNDLE_ENCODING_UNKNOWN = 0x00, CSSM_CERT_BUNDLE_ENCODING_CUSTOM = 0x01, CSSM_CERT_BUNDLE_ENCODING_BER = 0x02, CSSM_CERT_BUNDLE_ENCODING_DER = 0x03, CSSM_CERT_BUNDLE_ENCODING_SEXPR = 0x04, CSSM_CERT_BUNDLE_ENCODING_PGP = 0x05 } enum { CSSM_FIELDVALUE_COMPLEX_DATA_TYPE = 0xFFFFFFFF } enum { CSSM_DB_ATTRIBUTE_NAME_AS_STRING = 0, CSSM_DB_ATTRIBUTE_NAME_AS_OID = 1, CSSM_DB_ATTRIBUTE_NAME_AS_INTEGER = 2 } enum { CSSM_DB_ATTRIBUTE_FORMAT_STRING = 0, CSSM_DB_ATTRIBUTE_FORMAT_SINT32 = 1, CSSM_DB_ATTRIBUTE_FORMAT_UINT32 = 2, CSSM_DB_ATTRIBUTE_FORMAT_BIG_NUM = 3, CSSM_DB_ATTRIBUTE_FORMAT_REAL = 4, CSSM_DB_ATTRIBUTE_FORMAT_TIME_DATE = 5, CSSM_DB_ATTRIBUTE_FORMAT_BLOB = 6, CSSM_DB_ATTRIBUTE_FORMAT_MULTI_UINT32 = 7, CSSM_DB_ATTRIBUTE_FORMAT_COMPLEX = 8 } enum { CSSM_DB_RECORDTYPE_SCHEMA_START = 0x00000000, CSSM_DB_RECORDTYPE_SCHEMA_END = CSSM_DB_RECORDTYPE_SCHEMA_START + 4, CSSM_DB_RECORDTYPE_OPEN_GROUP_START = 0x0000000A, CSSM_DB_RECORDTYPE_OPEN_GROUP_END = CSSM_DB_RECORDTYPE_OPEN_GROUP_START + 8, CSSM_DB_RECORDTYPE_APP_DEFINED_START = 0x80000000, CSSM_DB_RECORDTYPE_APP_DEFINED_END = 0xffffffff, CSSM_DL_DB_SCHEMA_INFO = CSSM_DB_RECORDTYPE_SCHEMA_START + 0, CSSM_DL_DB_SCHEMA_INDEXES = CSSM_DB_RECORDTYPE_SCHEMA_START + 1, CSSM_DL_DB_SCHEMA_ATTRIBUTES = CSSM_DB_RECORDTYPE_SCHEMA_START + 2, CSSM_DL_DB_SCHEMA_PARSING_MODULE = CSSM_DB_RECORDTYPE_SCHEMA_START + 3, CSSM_DL_DB_RECORD_ANY = CSSM_DB_RECORDTYPE_OPEN_GROUP_START + 0, CSSM_DL_DB_RECORD_CERT = CSSM_DB_RECORDTYPE_OPEN_GROUP_START + 1, CSSM_DL_DB_RECORD_CRL = CSSM_DB_RECORDTYPE_OPEN_GROUP_START + 2, CSSM_DL_DB_RECORD_POLICY = CSSM_DB_RECORDTYPE_OPEN_GROUP_START + 3, CSSM_DL_DB_RECORD_GENERIC = CSSM_DB_RECORDTYPE_OPEN_GROUP_START + 4, CSSM_DL_DB_RECORD_PUBLIC_KEY = CSSM_DB_RECORDTYPE_OPEN_GROUP_START + 5, CSSM_DL_DB_RECORD_PRIVATE_KEY = CSSM_DB_RECORDTYPE_OPEN_GROUP_START + 6, CSSM_DL_DB_RECORD_SYMMETRIC_KEY = CSSM_DB_RECORDTYPE_OPEN_GROUP_START + 7, CSSM_DL_DB_RECORD_ALL_KEYS = CSSM_DB_RECORDTYPE_OPEN_GROUP_START + 8 } enum { CSSM_DB_CERT_USE_TRUSTED = 0x00000001, CSSM_DB_CERT_USE_SYSTEM = 0x00000002, CSSM_DB_CERT_USE_OWNER = 0x00000004, CSSM_DB_CERT_USE_REVOKED = 0x00000008, CSSM_DB_CERT_USE_SIGNING = 0x00000010, CSSM_DB_CERT_USE_PRIVACY = 0x00000020 } enum { CSSM_DB_INDEX_UNIQUE = 0, CSSM_DB_INDEX_NONUNIQUE = 1 } enum { CSSM_DB_INDEX_ON_UNKNOWN = 0, CSSM_DB_INDEX_ON_ATTRIBUTE = 1, CSSM_DB_INDEX_ON_RECORD = 2 } enum { CSSM_DB_ACCESS_READ = 0x00001, CSSM_DB_ACCESS_WRITE = 0x00002, CSSM_DB_ACCESS_PRIVILEGED = 0x00004 } enum { CSSM_DB_MODIFY_ATTRIBUTE_NONE = 0, CSSM_DB_MODIFY_ATTRIBUTE_ADD = CSSM_DB_MODIFY_ATTRIBUTE_NONE + 1, CSSM_DB_MODIFY_ATTRIBUTE_DELETE = CSSM_DB_MODIFY_ATTRIBUTE_NONE + 2, CSSM_DB_MODIFY_ATTRIBUTE_REPLACE = CSSM_DB_MODIFY_ATTRIBUTE_NONE + 3 } enum { CSSM_DB_EQUAL = 0, CSSM_DB_NOT_EQUAL = 1, CSSM_DB_LESS_THAN = 2, CSSM_DB_GREATER_THAN = 3, CSSM_DB_CONTAINS = 4, CSSM_DB_CONTAINS_INITIAL_SUBSTRING = 5, CSSM_DB_CONTAINS_FINAL_SUBSTRING = 6 } enum { CSSM_DB_NONE = 0, CSSM_DB_AND = 1, CSSM_DB_OR = 2 } enum { CSSM_QUERY_TIMELIMIT_NONE = 0 } enum { CSSM_QUERY_SIZELIMIT_NONE = 0 } enum { CSSM_QUERY_RETURN_DATA = 0x01 } enum { CSSM_DL_UNKNOWN = 0, CSSM_DL_CUSTOM = 1, CSSM_DL_LDAP = 2, CSSM_DL_ODBC = 3, CSSM_DL_PKCS11 = 4, CSSM_DL_FFS = 5, CSSM_DL_MEMORY = 6, CSSM_DL_REMOTEDIR = 7 } enum { CSSM_DB_DATASTORES_UNKNOWN = 0xFFFFFFFF } enum { CSSM_DB_TRANSACTIONAL_MODE = 0, CSSM_DB_FILESYSTEMSCAN_MODE = 1 } struct CSSM_DATA { uint Length; char* Data; } struct CSSM_GUID { uint Data1; ushort Data2; ushort Data3; char* Data4; } struct CSSM_VERSION { uint Major; uint Minor; } struct CSSM_SUBSERVICE_UID { CSSM_GUID Guid; CSSM_VERSION Version; uint SubserviceId; uint SubserviceType; } struct CSSM_NET_ADDRESS { uint AddressType; CSSM_DATA Address; } struct CSSM_CRYPTO_DATA { CSSM_DATA Param; CSSM_CALLBACK Callback; void* CallerCtx; } struct CSSM_LIST { uint ListType; CSSM_LIST_ELEMENT_PTR Head; CSSM_LIST_ELEMENT_PTR Tail; } struct CSSM_LIST_ELEMENT { CSSM_LIST_ELEMENT* NextElement; CSSM_WORDID_TYPE WordID; CSSM_LIST_ELEMENT_TYPE ElementType; union { CSSM_LIST Sublist; CSSM_DATA Word; } } struct CSSM_TUPLE { CSSM_LIST Issuer; int Subject; CSSM_BOOL Delegate; CSSM_LIST AuthorizationTag; CSSM_LIST ValidityPeriod; } struct CSSM_TUPLEGROUP { uint32 NumberOfTuples; CSSM_TUPLE_PTR Tuples; } struct CSSM_SAMPLE { CSSM_LIST TypedSample; CSSM_SUBSERVICE_UID* Verifier; } struct CSSM_SAMPLEGROUP { uint32 NumberOfSamples; CSSM_SAMPLE* Samples; } struct CSSM_MEMORY_FUNCS { CSSM_MALLOC malloc_func; CSSM_FREE free_func; CSSM_REALLOC realloc_func; CSSM_CALLOC calloc_func; void* AllocRef; } struct CSSM_ENCODED_CERT { uint CertType; CSSM_CERT_ENCODING CertEncoding; CSSM_DATA CertBlob; } struct CSSM_PARSED_CERT { uint CertType; CSSM_CERT_PARSE_FORMAT ParsedCertFormat; void* ParsedCert; } struct CSSM_CERT_PAIR { CSSM_ENCODED_CERT EncodedCert; CSSM_PARSED_CERT ParsedCert; } struct CSSM_CERTGROUP { CSSM_CERT_TYPE CertType; CSSM_CERT_ENCODING CertEncoding; uint NumCerts; union { CSSM_DATA_PTR CertList; CSSM_ENCODED_CERT_PTR EncodedCertList; CSSM_PARSED_CERT_PTR ParsedCertList; CSSM_CERT_PAIR_PTR PairCertList; } CSSM_CERTGROUP_TYPE CertGroupType; void* Reserved; } struct CSSM_BASE_CERTS { CSSM_TP_HANDLE TPHandle; CSSM_CL_HANDLE CLHandle; byte[68] Certs; } struct CSSM_ACCESS_CREDENTIALS { CSSM_STRING EntryTag; CSSM_BASE_CERTS BaseCerts; CSSM_SAMPLEGROUP Samples; CSSM_CHALLENGE_CALLBACK Callback; uint CallerCtx; } struct CSSM_AUTHORIZATIONGROUP { uint32 NumberOfAuthTags; CSSM_ACL_AUTHORIZATION_TAG* AuthTags; } struct CSSM_ACL_VALIDITY_PERIOD { CSSM_DATA StartDate; CSSM_DATA EndDate; } struct CSSM_ACL_ENTRY_PROTOTYPE { CSSM_LIST TypedSubject; CSSM_BOOL Delegate; byte[68] Authorization; CSSM_ACL_VALIDITY_PERIOD TimeRange; CSSM_STRING EntryTag; } struct CSSM_ACL_OWNER_PROTOTYPE { CSSM_LIST TypedSubject; CSSM_BOOL Delegate; } struct CSSM_ACL_ENTRY_INPUT { CSSM_ACL_ENTRY_PROTOTYPE Prototype; CSSM_ACL_SUBJECT_CALLBACK Callback; void* CallerContext; } struct CSSM_RESOURCE_CONTROL_CONTEXT { CSSM_ACCESS_CREDENTIALS_PTR AccessCred; CSSM_ACL_ENTRY_INPUT InitialAclEntry; } struct CSSM_ACL_ENTRY_INFO { CSSM_ACL_ENTRY_PROTOTYPE EntryPublicInfo; uint EntryHandle; } struct CSSM_ACL_EDIT { CSSM_ACL_EDIT_MODE EditMode; CSSM_ACL_HANDLE OldEntryHandle; byte[68] NewEntry; } struct CSSM_FUNC_NAME_ADDR { CSSM_STRING Name; char* Address; } struct CSSM_DATE { char* Year; uint8* Month; uint Day; } struct CSSM_RANGE { uint32 Min; uint Max; } struct CSSM_QUERY_SIZE_DATA { uint32 SizeInputBlock; uint SizeOutputBlock; } struct CSSM_KEY_SIZE { uint32 LogicalKeySizeInBits; uint EffectiveKeySizeInBits; } struct CSSM_KEYHEADER { uint HeaderVersion; uint CspId; uint BlobType; uint Format; uint AlgorithmId; uint KeyClass; uint LogicalKeySizeInBits; CSSM_KEYATTR_FLAGS KeyAttr; CSSM_KEYUSE KeyUsage; uint StartDate; uint EndDate; uint WrapAlgorithmId; CSSM_ENCRYPT_MODE WrapMode; uint32 Reserved; } struct CSSM_KEY { CSSM_KEYHEADER KeyHeader; int KeyData; } struct CSSM_DL_DB_HANDLE { CSSM_DL_HANDLE DLHandle; CSSM_DB_HANDLE DBHandle; } struct CSSM_CONTEXT_ATTRIBUTE { uint Attribute; } struct CSSM_CONTEXT { CSSM_CONTEXT_TYPE ContextType; int AlgorithmType; int NumberOfAttributes; uint ContextAttributes; uint CSPHandle; uint Privileged; uint32 EncryptionProhibited; uint WorkFactor; uint32 Reserved; } struct CSSM_PKCS1_OAEP_PARAMS { uint32 HashAlgorithm; uint HashParams; CSSM_PKCS_OAEP_MGF MGF; CSSM_DATA MGFParams; int PSource; uint PSourceParams; } struct CSSM_CSP_OPERATIONAL_STATISTICS { uint UserAuthenticated; uint DeviceFlags; uint TokenMaxSessionCount; uint TokenOpenedSessionCount; uint TokenMaxRWSessionCount; uint TokenOpenedRWSessionCount; uint TokenTotalPublicMem; uint32 TokenFreePublicMem; uint32 TokenTotalPrivateMem; uint32 TokenFreePrivateMem; } struct CSSM_PKCS5_PBKDF1_PARAMS { CSSM_DATA Passphrase; uint InitVector; } struct CSSM_PKCS5_PBKDF2_PARAMS { CSSM_DATA Passphrase; CSSM_PKCS5_PBKDF2_PRF PseudoRandomFunction; } struct CSSM_KEA_DERIVE_PARAMS { CSSM_DATA Rb; CSSM_DATA Yb; } struct CSSM_TP_AUTHORITY_ID { CSSM_DATA* AuthorityCert; CSSM_NET_ADDRESS_PTR AuthorityLocation; } struct CSSM_FIELD { uint FieldOid; CSSM_DATA FieldValue; } struct CSSM_TP_POLICYINFO { uint32 NumberOfPolicyIds; uint PolicyIds; void* PolicyControl; } struct CSSM_DL_DB_LIST { uint32 NumHandles; char* DLDBHandle; } struct CSSM_TP_CALLERAUTH_CONTEXT { CSSM_TP_POLICYINFO Policy; uint VerifyTime; CSSM_TP_STOP_ON VerificationAbortOn; CSSM_TP_VERIFICATION_RESULTS_CALLBACK CallbackWithVerifiedCert; uint32 NumberOfAnchorCerts; CSSM_DATA_PTR AnchorCerts; uint DBList; uint CallerCredentials; } struct CSSM_ENCODED_CRL { CSSM_CRL_TYPE CrlType; uint CrlEncoding; uint CrlBlob; } struct CSSM_PARSED_CRL { CSSM_CRL_TYPE CrlType; CSSM_CRL_PARSE_FORMAT ParsedCrlFormat; void* ParsedCrl; } struct CSSM_CRL_PAIR { uint EncodedCrl; CSSM_PARSED_CRL ParsedCrl; } struct CSSM_CRLGROUP { CSSM_CRL_TYPE CrlType; CSSM_CRL_ENCODING CrlEncoding; uint NumberOfCrls; union { CSSM_DATA_PTR CrlList; CSSM_ENCODED_CRL_PTR EncodedCrlList; CSSM_PARSED_CRL_PTR ParsedCrlList; CSSM_CRL_PAIR_PTR PairCrlList; } CSSM_CRLGROUP_TYPE CrlGroupType; } struct CSSM_FIELDGROUP { int NumberOfFields; CSSM_FIELD_PTR Fields; } struct CSSM_EVIDENCE { CSSM_EVIDENCE_FORM EvidenceForm; void* Evidence; } struct CSSM_TP_VERIFY_CONTEXT { CSSM_TP_ACTION Action; uint ActionData; CSSM_CRLGROUP Crls; CSSM_TP_CALLERAUTH_CONTEXT_PTR Cred; } struct CSSM_TP_VERIFY_CONTEXT_RESULT { uint32 NumberOfEvidences; CSSM_EVIDENCE_PTR Evidence; } struct CSSM_TP_REQUEST_SET { uint32 NumberOfRequests; void* Requests; } struct CSSM_TP_RESULT_SET { uint32 NumberOfResults; void* Results; } struct CSSM_TP_CONFIRM_RESPONSE { int NumberOfResponses; uint Responses; } struct CSSM_TP_CERTISSUE_INPUT { uint CSPSubserviceUid; uint CLHandle; uint32 NumberOfTemplateFields; CSSM_FIELD_PTR SubjectCertFields; CSSM_TP_SERVICES MoreServiceRequests; uint NumberOfServiceControls; CSSM_FIELD_PTR ServiceControls; uint UserCredentials; } struct CSSM_TP_CERTISSUE_OUTPUT { uint IssueStatus; uint CertGroup; int PerformedServiceRequests; } struct CSSM_TP_CERTCHANGE_INPUT { CSSM_TP_CERTCHANGE_ACTION Action; char* Reason; CSSM_CL_HANDLE CLHandle; CSSM_DATA_PTR Cert; uint ChangeInfo; CSSM_TIMESTRING StartTime; CSSM_ACCESS_CREDENTIALS_PTR CallerCredentials; } struct CSSM_TP_CERTCHANGE_OUTPUT { CSSM_TP_CERTCHANGE_STATUS ActionStatus; CSSM_FIELD RevokeInfo; } struct CSSM_TP_CERTVERIFY_INPUT { uint CLHandle; uint Cert; CSSM_TP_VERIFY_CONTEXT_PTR VerifyContext; } struct CSSM_TP_CERTVERIFY_OUTPUT { int VerifyStatus; uint NumberOfEvidence; CSSM_EVIDENCE_PTR Evidence; } struct CSSM_TP_CERTNOTARIZE_INPUT { uint CLHandle; uint NumberOfFields; uint MoreFields; CSSM_FIELD_PTR SignScope; uint32 ScopeSize; CSSM_TP_SERVICES MoreServiceRequests; uint NumberOfServiceControls; CSSM_FIELD_PTR ServiceControls; uint UserCredentials; } struct CSSM_TP_CERTNOTARIZE_OUTPUT { int NotarizeStatus; uint NotarizedCertGroup; CSSM_TP_SERVICES PerformedServiceRequests; } struct CSSM_TP_CERTRECLAIM_INPUT { CSSM_CL_HANDLE CLHandle; uint NumberOfSelectionFields; CSSM_FIELD_PTR SelectionFields; ulong UserCredentials; } struct CSSM_TP_CERTRECLAIM_OUTPUT { int ReclaimStatus; uint ReclaimedCertGroup; char* KeyCacheHandle; } struct CSSM_TP_CRLISSUE_INPUT { CSSM_CL_HANDLE CLHandle; uint32 CrlIdentifier; uint CrlThisTime; CSSM_FIELD_PTR PolicyIdentifier; char* CallerCredentials; } struct CSSM_TP_CRLISSUE_OUTPUT { uint IssueStatus; uint Crl; CSSM_TIMESTRING CrlNextTime; } struct CSSM_CERT_BUNDLE_HEADER { CSSM_CERT_BUNDLE_TYPE BundleType; CSSM_CERT_BUNDLE_ENCODING BundleEncoding; } struct CSSM_CERT_BUNDLE { CSSM_CERT_BUNDLE_HEADER BundleHeader; CSSM_DATA Bundle; } struct CSSM_DB_ATTRIBUTE_INFO { CSSM_DB_ATTRIBUTE_NAME_FORMAT AttributeNameFormat; union cssm_db_attribute_label { char* AttributeName; CSSM_OID AttributeOID; uint AttributeID; } cssm_db_attribute_label Label; CSSM_DB_ATTRIBUTE_FORMAT AttributeFormat; } struct CSSM_DB_ATTRIBUTE_DATA { uint Info; uint32 NumberOfValues; CSSM_DATA_PTR Value; } struct CSSM_DB_RECORD_ATTRIBUTE_INFO { uint DataRecordType; uint NumberOfAttributes; CSSM_DB_ATTRIBUTE_INFO_PTR AttributeInfo; } struct CSSM_DB_RECORD_ATTRIBUTE_DATA { uint DataRecordType; uint32 SemanticInformation; uint32 NumberOfAttributes; uint AttributeData; } struct CSSM_DB_PARSING_MODULE_INFO { CSSM_DB_RECORDTYPE RecordType; CSSM_SUBSERVICE_UID ModuleSubserviceUid; } struct CSSM_DB_INDEX_INFO { CSSM_DB_INDEX_TYPE IndexType; CSSM_DB_INDEXED_DATA_LOCATION IndexedDataLocation; uint Info; } struct CSSM_DB_UNIQUE_RECORD { CSSM_DB_INDEX_INFO RecordLocator; CSSM_DATA RecordIdentifier; } struct CSSM_DB_RECORD_INDEX_INFO { CSSM_DB_RECORDTYPE DataRecordType; uint32 NumberOfIndexes; CSSM_DB_INDEX_INFO_PTR IndexInfo; } struct CSSM_DBINFO { char* NumberOfRecordTypes; CSSM_DB_PARSING_MODULE_INFO_PTR DefaultParsingModules; CSSM_DB_RECORD_ATTRIBUTE_INFO_PTR RecordAttributeNames; uint RecordIndexes; CSSM_BOOL IsLocal; char* AccessPath; uint Reserved; } struct CSSM_SELECTION_PREDICATE { CSSM_DB_OPERATOR DbOperator; uint Attribute; } struct CSSM_QUERY_LIMITS { uint TimeLimit; uint32 SizeLimit; } struct CSSM_QUERY { uint RecordType; CSSM_DB_CONJUNCTIVE Conjunctive; uint NumSelectionPredicates; CSSM_SELECTION_PREDICATE_PTR SelectionPredicate; uint QueryLimits; CSSM_QUERY_FLAGS QueryFlags; } struct CSSM_DL_PKCS11_ATTRIBUTE { uint DeviceAccessFlags; } struct CSSM_NAME_LIST { uint32 NumStrings; uint String; } struct CSSM_DB_SCHEMA_ATTRIBUTE_INFO { uint AttributeId; uint AttributeName; uint AttributeNameID; uint DataType; } struct CSSM_DB_SCHEMA_INDEX_INFO { uint32 AttributeId; uint32 IndexId; CSSM_DB_INDEX_TYPE IndexType; CSSM_DB_INDEXED_DATA_LOCATION IndexedDataLocation; }