Mercurial > projects > dstep
diff 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 diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/dstep/security/cssmtype.d Sat Aug 01 15:03:28 2009 +0200 @@ -0,0 +1,2104 @@ +/** + * 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; +} +