Mercurial > projects > dstep
view dstep/security/cssmapple.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.cssmapple; import dstep.security.certextensions; import dstep.security.cssmerr; import dstep.security.cssmtype; import dstep.security.x509defs; //import dstep.stdbool; //import dstep.sys.types; alias uint CSSM_ACL_PREAUTH_TRACKING_STATE; alias uint CSSM_APPLE_TP_CRL_OPT_FLAGS; alias uint CSSM_APPLE_TP_ACTION_FLAGS; alias uint CSSM_TP_APPLE_CERT_STATUS; extern (C) { extern { const CSSM_GUID gGuidCssm; const CSSM_GUID gGuidAppleFileDL; const CSSM_GUID gGuidAppleCSP; const CSSM_GUID gGuidAppleCSPDL; const CSSM_GUID gGuidAppleX509CL; const CSSM_GUID gGuidAppleX509TP; const CSSM_GUID gGuidAppleLDAPDL; const CSSM_GUID gGuidAppleDotMacTP; const CSSM_GUID gGuidAppleSdCSPDL; const CSSM_GUID gGuidAppleDotMacDL; } } enum { CSSM_WORDID_KEYCHAIN_PROMPT = CSSM_WORDID_VENDOR_START, CSSM_WORDID_KEYCHAIN_LOCK, CSSM_WORDID_KEYCHAIN_CHANGE_LOCK, CSSM_WORDID_PROCESS, CSSM_WORDID__RESERVED_1, CSSM_WORDID_SYMMETRIC_KEY, CSSM_WORDID_SYSTEM, CSSM_WORDID_KEY, CSSM_WORDID_PIN, CSSM_WORDID_PREAUTH, CSSM_WORDID_PREAUTH_SOURCE, CSSM_WORDID_ASYMMETRIC_KEY, CSSM_WORDID__FIRST_UNUSED } enum { CSSM_ACL_SUBJECT_TYPE_KEYCHAIN_PROMPT = CSSM_WORDID_KEYCHAIN_PROMPT, CSSM_ACL_SUBJECT_TYPE_PROCESS = CSSM_WORDID_PROCESS, CSSM_ACL_SUBJECT_TYPE_CODE_SIGNATURE = CSSM_WORDID_SIGNATURE, CSSM_ACL_SUBJECT_TYPE_COMMENT = CSSM_WORDID_COMMENT, CSSM_ACL_SUBJECT_TYPE_SYMMETRIC_KEY = CSSM_WORDID_SYMMETRIC_KEY, CSSM_ACL_SUBJECT_TYPE_PREAUTH = CSSM_WORDID_PREAUTH, CSSM_ACL_SUBJECT_TYPE_PREAUTH_SOURCE = CSSM_WORDID_PREAUTH_SOURCE, CSSM_ACL_SUBJECT_TYPE_ASYMMETRIC_KEY = CSSM_WORDID_ASYMMETRIC_KEY } enum { CSSM_SAMPLE_TYPE_KEYCHAIN_PROMPT = CSSM_WORDID_KEYCHAIN_PROMPT, CSSM_SAMPLE_TYPE_KEYCHAIN_LOCK = CSSM_WORDID_KEYCHAIN_LOCK, CSSM_SAMPLE_TYPE_KEYCHAIN_CHANGE_LOCK = CSSM_WORDID_KEYCHAIN_CHANGE_LOCK, CSSM_SAMPLE_TYPE_PROCESS = CSSM_WORDID_PROCESS, CSSM_SAMPLE_TYPE_COMMENT = CSSM_WORDID_COMMENT, CSSM_SAMPLE_TYPE_RETRY_ID = CSSM_WORDID_PROPAGATE, CSSM_SAMPLE_TYPE_SYMMETRIC_KEY = CSSM_WORDID_SYMMETRIC_KEY, CSSM_SAMPLE_TYPE_PREAUTH = CSSM_WORDID_PREAUTH, CSSM_SAMPLE_TYPE_ASYMMETRIC_KEY = CSSM_WORDID_ASYMMETRIC_KEY } enum { CSSM_ACL_AUTHORIZATION_CHANGE_ACL = CSSM_ACL_AUTHORIZATION_TAG_VENDOR_DEFINED_START, CSSM_ACL_AUTHORIZATION_CHANGE_OWNER, CSSM_ACL_AUTHORIZATION_PREAUTH_BASE = CSSM_ACL_AUTHORIZATION_TAG_VENDOR_DEFINED_START + 0x1000000, CSSM_ACL_AUTHORIZATION_PREAUTH_END = CSSM_ACL_AUTHORIZATION_PREAUTH_BASE + 0x10000 } enum { CSSM_ACL_CODE_SIGNATURE_INVALID = 0, CSSM_ACL_CODE_SIGNATURE_OSX = 1 } enum { CSSM_ACL_MATCH_UID = 0x01, CSSM_ACL_MATCH_GID = 0x02, CSSM_ACL_MATCH_HONOR_ROOT = 0x100, CSSM_ACL_MATCH_BITS = CSSM_ACL_MATCH_UID | CSSM_ACL_MATCH_GID } enum { CSSM_ACL_PROCESS_SELECTOR_CURRENT_VERSION = 0x101 } enum { CSSM_ACL_KEYCHAIN_PROMPT_CURRENT_VERSION = 0x101 } enum { CSSM_ACL_KEYCHAIN_PROMPT_REQUIRE_PASSPHRASE = 0x0001, CSSM_ACL_KEYCHAIN_PROMPT_UNSIGNED = 0x0010, CSSM_ACL_KEYCHAIN_PROMPT_UNSIGNED_ACT = 0x0020, CSSM_ACL_KEYCHAIN_PROMPT_INVALID = 0x0040, CSSM_ACL_KEYCHAIN_PROMPT_INVALID_ACT = 0x0080 } enum { CSSM_ACL_PREAUTH_TRACKING_COUNT_MASK = 0xff, CSSM_ACL_PREAUTH_TRACKING_BLOCKED = 0, CSSM_ACL_PREAUTH_TRACKING_UNKNOWN = 0x40000000, CSSM_ACL_PREAUTH_TRACKING_AUTHORIZED = 0x80000000 } enum { CSSM_DB_ACCESS_RESET = 0x10000 } enum { CSSM_ALGID_APPLE_YARROW = CSSM_ALGID_VENDOR_DEFINED, CSSM_ALGID_AES, CSSM_ALGID_FEE, CSSM_ALGID_FEE_MD5, CSSM_ALGID_FEE_SHA1, CSSM_ALGID_FEED, CSSM_ALGID_FEEDEXP, CSSM_ALGID_ASC, CSSM_ALGID_SHA1HMAC_LEGACY, CSSM_ALGID_KEYCHAIN_KEY, CSSM_ALGID_PKCS12_PBE_ENCR, CSSM_ALGID_PKCS12_PBE_MAC, CSSM_ALGID_SECURE_PASSPHRASE, CSSM_ALGID_PBE_OPENSSL_MD5, CSSM_ALGID_SHA256, CSSM_ALGID_SHA384, CSSM_ALGID_SHA512, CSSM_ALGID_ENTROPY_DEFAULT, CSSM_ALGID_SHA224, CSSM_ALGID_SHA224WithRSA, CSSM_ALGID_SHA256WithRSA, CSSM_ALGID_SHA384WithRSA, CSSM_ALGID_SHA512WithRSA, CSSM_ALGID_OPENSSH1, CSSM_ALGID__FIRST_UNUSED } enum { CSSM_PADDING_APPLE_SSLv2 = CSSM_PADDING_VENDOR_DEFINED } enum { CSSM_KEYBLOB_RAW_FORMAT_VENDOR_DEFINED = 0x80000000 } enum { CSSM_KEYBLOB_RAW_FORMAT_X509 = CSSM_KEYBLOB_RAW_FORMAT_VENDOR_DEFINED, CSSM_KEYBLOB_RAW_FORMAT_OPENSSH, CSSM_KEYBLOB_RAW_FORMAT_OPENSSL, CSSM_KEYBLOB_RAW_FORMAT_OPENSSH2 } enum { CSSM_CUSTOM_COMMON_ERROR_EXTENT = 0x00e0, CSSM_ERRCODE_NO_USER_INTERACTION = 0x00e0, CSSM_ERRCODE_USER_CANCELED = 0x00e1, CSSM_ERRCODE_SERVICE_NOT_AVAILABLE = 0x00e2, CSSM_ERRCODE_INSUFFICIENT_CLIENT_IDENTIFICATION = 0x00e3, CSSM_ERRCODE_DEVICE_RESET = 0x00e4, CSSM_ERRCODE_DEVICE_FAILED = 0x00e5 } enum { CSSMERR_CSSM_NO_USER_INTERACTION = CSSM_CSSM_BASE_ERROR + CSSM_ERRCODE_NO_USER_INTERACTION, CSSMERR_AC_NO_USER_INTERACTION = CSSM_AC_BASE_ERROR + CSSM_ERRCODE_NO_USER_INTERACTION, CSSMERR_CSP_NO_USER_INTERACTION = CSSM_CSP_BASE_ERROR + CSSM_ERRCODE_NO_USER_INTERACTION, CSSMERR_CL_NO_USER_INTERACTION = CSSM_CL_BASE_ERROR + CSSM_ERRCODE_NO_USER_INTERACTION, CSSMERR_DL_NO_USER_INTERACTION = CSSM_DL_BASE_ERROR + CSSM_ERRCODE_NO_USER_INTERACTION, CSSMERR_TP_NO_USER_INTERACTION = CSSM_TP_BASE_ERROR + CSSM_ERRCODE_NO_USER_INTERACTION, CSSMERR_CSSM_USER_CANCELED = CSSM_CSSM_BASE_ERROR + CSSM_ERRCODE_USER_CANCELED, CSSMERR_AC_USER_CANCELED = CSSM_AC_BASE_ERROR + CSSM_ERRCODE_USER_CANCELED, CSSMERR_CSP_USER_CANCELED = CSSM_CSP_BASE_ERROR + CSSM_ERRCODE_USER_CANCELED, CSSMERR_CL_USER_CANCELED = CSSM_CL_BASE_ERROR + CSSM_ERRCODE_USER_CANCELED, CSSMERR_DL_USER_CANCELED = CSSM_DL_BASE_ERROR + CSSM_ERRCODE_USER_CANCELED, CSSMERR_TP_USER_CANCELED = CSSM_TP_BASE_ERROR + CSSM_ERRCODE_USER_CANCELED, CSSMERR_CSSM_SERVICE_NOT_AVAILABLE = CSSM_CSSM_BASE_ERROR + CSSM_ERRCODE_SERVICE_NOT_AVAILABLE, CSSMERR_AC_SERVICE_NOT_AVAILABLE = CSSM_AC_BASE_ERROR + CSSM_ERRCODE_SERVICE_NOT_AVAILABLE, CSSMERR_CSP_SERVICE_NOT_AVAILABLE = CSSM_CSP_BASE_ERROR + CSSM_ERRCODE_SERVICE_NOT_AVAILABLE, CSSMERR_CL_SERVICE_NOT_AVAILABLE = CSSM_CL_BASE_ERROR + CSSM_ERRCODE_SERVICE_NOT_AVAILABLE, CSSMERR_DL_SERVICE_NOT_AVAILABLE = CSSM_DL_BASE_ERROR + CSSM_ERRCODE_SERVICE_NOT_AVAILABLE, CSSMERR_TP_SERVICE_NOT_AVAILABLE = CSSM_TP_BASE_ERROR + CSSM_ERRCODE_SERVICE_NOT_AVAILABLE, CSSMERR_CSSM_INSUFFICIENT_CLIENT_IDENTIFICATION = CSSM_CSSM_BASE_ERROR + CSSM_ERRCODE_INSUFFICIENT_CLIENT_IDENTIFICATION, CSSMERR_AC_INSUFFICIENT_CLIENT_IDENTIFICATION = CSSM_AC_BASE_ERROR + CSSM_ERRCODE_INSUFFICIENT_CLIENT_IDENTIFICATION, CSSMERR_CSP_INSUFFICIENT_CLIENT_IDENTIFICATION = CSSM_CSP_BASE_ERROR + CSSM_ERRCODE_INSUFFICIENT_CLIENT_IDENTIFICATION, CSSMERR_CL_INSUFFICIENT_CLIENT_IDENTIFICATION = CSSM_CL_BASE_ERROR + CSSM_ERRCODE_INSUFFICIENT_CLIENT_IDENTIFICATION, CSSMERR_DL_INSUFFICIENT_CLIENT_IDENTIFICATION = CSSM_DL_BASE_ERROR + CSSM_ERRCODE_INSUFFICIENT_CLIENT_IDENTIFICATION, CSSMERR_TP_INSUFFICIENT_CLIENT_IDENTIFICATION = CSSM_TP_BASE_ERROR + CSSM_ERRCODE_INSUFFICIENT_CLIENT_IDENTIFICATION, CSSMERR_CSSM_DEVICE_RESET = CSSM_CSSM_BASE_ERROR + CSSM_ERRCODE_DEVICE_RESET, CSSMERR_AC_DEVICE_RESET = CSSM_AC_BASE_ERROR + CSSM_ERRCODE_DEVICE_RESET, CSSMERR_CSP_DEVICE_RESET = CSSM_CSP_BASE_ERROR + CSSM_ERRCODE_DEVICE_RESET, CSSMERR_CL_DEVICE_RESET = CSSM_CL_BASE_ERROR + CSSM_ERRCODE_DEVICE_RESET, CSSMERR_DL_DEVICE_RESET = CSSM_DL_BASE_ERROR + CSSM_ERRCODE_DEVICE_RESET, CSSMERR_TP_DEVICE_RESET = CSSM_TP_BASE_ERROR + CSSM_ERRCODE_DEVICE_RESET, CSSMERR_CSSM_DEVICE_FAILED = CSSM_CSSM_BASE_ERROR + CSSM_ERRCODE_DEVICE_FAILED, CSSMERR_AC_DEVICE_FAILED = CSSM_AC_BASE_ERROR + CSSM_ERRCODE_DEVICE_FAILED, CSSMERR_CSP_DEVICE_FAILED = CSSM_CSP_BASE_ERROR + CSSM_ERRCODE_DEVICE_FAILED, CSSMERR_CL_DEVICE_FAILED = CSSM_CL_BASE_ERROR + CSSM_ERRCODE_DEVICE_FAILED, CSSMERR_DL_DEVICE_FAILED = CSSM_DL_BASE_ERROR + CSSM_ERRCODE_DEVICE_FAILED, CSSMERR_TP_DEVICE_FAILED = CSSM_TP_BASE_ERROR + CSSM_ERRCODE_DEVICE_FAILED } enum { CSSMERR_CSP_APPLE_ADD_APPLICATION_ACL_SUBJECT = CSSM_CSP_PRIVATE_ERROR + 0, CSSMERR_CSP_APPLE_PUBLIC_KEY_INCOMPLETE = CSSM_CSP_PRIVATE_ERROR + 1, CSSMERR_CSP_APPLE_SIGNATURE_MISMATCH = CSSM_CSP_PRIVATE_ERROR + 2, CSSMERR_CSP_APPLE_INVALID_KEY_START_DATE = CSSM_CSP_PRIVATE_ERROR + 3, CSSMERR_CSP_APPLE_INVALID_KEY_END_DATE = CSSM_CSP_PRIVATE_ERROR + 4, CSSMERR_CSPDL_APPLE_DL_CONVERSION_ERROR = CSSM_CSP_PRIVATE_ERROR + 5, CSSMERR_CSP_APPLE_SSLv2_ROLLBACK = CSSM_CSP_PRIVATE_ERROR + 6 } enum { CSSM_DL_DB_RECORD_GENERIC_PASSWORD = CSSM_DB_RECORDTYPE_APP_DEFINED_START + 0, CSSM_DL_DB_RECORD_INTERNET_PASSWORD = CSSM_DB_RECORDTYPE_APP_DEFINED_START + 1, CSSM_DL_DB_RECORD_APPLESHARE_PASSWORD = CSSM_DB_RECORDTYPE_APP_DEFINED_START + 2, CSSM_DL_DB_RECORD_X509_CERTIFICATE = CSSM_DB_RECORDTYPE_APP_DEFINED_START + 0x1000, CSSM_DL_DB_RECORD_USER_TRUST, CSSM_DL_DB_RECORD_X509_CRL, CSSM_DL_DB_RECORD_UNLOCK_REFERRAL, CSSM_DL_DB_RECORD_EXTENDED_ATTRIBUTE, CSSM_DL_DB_RECORD_METADATA = CSSM_DB_RECORDTYPE_APP_DEFINED_START + 0x8000 } enum { CSSM_APPLEFILEDL_TOGGLE_AUTOCOMMIT, CSSM_APPLEFILEDL_COMMIT, CSSM_APPLEFILEDL_ROLLBACK } enum { CSSM_APPLE_UNLOCK_TYPE_KEY_DIRECT = 1, CSSM_APPLE_UNLOCK_TYPE_WRAPPED_PRIVATE = 2 } enum { CSSMERR_APPLEDL_INVALID_OPEN_PARAMETERS = CSSM_DL_PRIVATE_ERROR + 0, CSSMERR_APPLEDL_DISK_FULL = CSSM_DL_PRIVATE_ERROR + 1, CSSMERR_APPLEDL_QUOTA_EXCEEDED = CSSM_DL_PRIVATE_ERROR + 2, CSSMERR_APPLEDL_FILE_TOO_BIG = CSSM_DL_PRIVATE_ERROR + 3, CSSMERR_APPLEDL_INVALID_DATABASE_BLOB = CSSM_DL_PRIVATE_ERROR + 4, CSSMERR_APPLEDL_INVALID_KEY_BLOB = CSSM_DL_PRIVATE_ERROR + 5, CSSMERR_APPLEDL_INCOMPATIBLE_DATABASE_BLOB = CSSM_DL_PRIVATE_ERROR + 6, CSSMERR_APPLEDL_INCOMPATIBLE_KEY_BLOB = CSSM_DL_PRIVATE_ERROR + 7 } enum { CSSMERR_APPLETP_HOSTNAME_MISMATCH = CSSM_TP_PRIVATE_ERROR + 0, CSSMERR_APPLETP_UNKNOWN_CRITICAL_EXTEN = CSSM_TP_PRIVATE_ERROR + 1, CSSMERR_APPLETP_NO_BASIC_CONSTRAINTS = CSSM_TP_PRIVATE_ERROR + 2, CSSMERR_APPLETP_INVALID_CA = CSSM_TP_PRIVATE_ERROR + 3, CSSMERR_APPLETP_INVALID_AUTHORITY_ID = CSSM_TP_PRIVATE_ERROR + 4, CSSMERR_APPLETP_INVALID_SUBJECT_ID = CSSM_TP_PRIVATE_ERROR + 5, CSSMERR_APPLETP_INVALID_KEY_USAGE = CSSM_TP_PRIVATE_ERROR + 6, CSSMERR_APPLETP_INVALID_EXTENDED_KEY_USAGE = CSSM_TP_PRIVATE_ERROR + 7, CSSMERR_APPLETP_INVALID_ID_LINKAGE = CSSM_TP_PRIVATE_ERROR + 8, CSSMERR_APPLETP_PATH_LEN_CONSTRAINT = CSSM_TP_PRIVATE_ERROR + 9, CSSMERR_APPLETP_INVALID_ROOT = CSSM_TP_PRIVATE_ERROR + 10, CSSMERR_APPLETP_CRL_EXPIRED = CSSM_TP_PRIVATE_ERROR + 11, CSSMERR_APPLETP_CRL_NOT_VALID_YET = CSSM_TP_PRIVATE_ERROR + 12, CSSMERR_APPLETP_CRL_NOT_FOUND = CSSM_TP_PRIVATE_ERROR + 13, CSSMERR_APPLETP_CRL_SERVER_DOWN = CSSM_TP_PRIVATE_ERROR + 14, CSSMERR_APPLETP_CRL_BAD_URI = CSSM_TP_PRIVATE_ERROR + 15, CSSMERR_APPLETP_UNKNOWN_CERT_EXTEN = CSSM_TP_PRIVATE_ERROR + 16, CSSMERR_APPLETP_UNKNOWN_CRL_EXTEN = CSSM_TP_PRIVATE_ERROR + 17, CSSMERR_APPLETP_CRL_NOT_TRUSTED = CSSM_TP_PRIVATE_ERROR + 18, CSSMERR_APPLETP_CRL_INVALID_ANCHOR_CERT = CSSM_TP_PRIVATE_ERROR + 19, CSSMERR_APPLETP_CRL_POLICY_FAIL = CSSM_TP_PRIVATE_ERROR + 20, CSSMERR_APPLETP_IDP_FAIL = CSSM_TP_PRIVATE_ERROR + 21, CSSMERR_APPLETP_CERT_NOT_FOUND_FROM_ISSUER = CSSM_TP_PRIVATE_ERROR + 22, CSSMERR_APPLETP_BAD_CERT_FROM_ISSUER = CSSM_TP_PRIVATE_ERROR + 23, CSSMERR_APPLETP_SMIME_EMAIL_ADDRS_NOT_FOUND = CSSM_TP_PRIVATE_ERROR + 24, CSSMERR_APPLETP_SMIME_BAD_EXT_KEY_USE = CSSM_TP_PRIVATE_ERROR + 25, CSSMERR_APPLETP_SMIME_BAD_KEY_USE = CSSM_TP_PRIVATE_ERROR + 26, CSSMERR_APPLETP_SMIME_KEYUSAGE_NOT_CRITICAL = CSSM_TP_PRIVATE_ERROR + 27, CSSMERR_APPLETP_SMIME_NO_EMAIL_ADDRS = CSSM_TP_PRIVATE_ERROR + 28, CSSMERR_APPLETP_SMIME_SUBJ_ALT_NAME_NOT_CRIT = CSSM_TP_PRIVATE_ERROR + 29, CSSMERR_APPLETP_SSL_BAD_EXT_KEY_USE = CSSM_TP_PRIVATE_ERROR + 30, CSSMERR_APPLETP_OCSP_BAD_RESPONSE = CSSM_TP_PRIVATE_ERROR + 31, CSSMERR_APPLETP_OCSP_BAD_REQUEST = CSSM_TP_PRIVATE_ERROR + 32, CSSMERR_APPLETP_OCSP_UNAVAILABLE = CSSM_TP_PRIVATE_ERROR + 33, CSSMERR_APPLETP_OCSP_STATUS_UNRECOGNIZED = CSSM_TP_PRIVATE_ERROR + 34, CSSMERR_APPLETP_INCOMPLETE_REVOCATION_CHECK = CSSM_TP_PRIVATE_ERROR + 35, CSSMERR_APPLETP_NETWORK_FAILURE = CSSM_TP_PRIVATE_ERROR + 36, CSSMERR_APPLETP_OCSP_NOT_TRUSTED = CSSM_TP_PRIVATE_ERROR + 37, CSSMERR_APPLETP_OCSP_INVALID_ANCHOR_CERT = CSSM_TP_PRIVATE_ERROR + 38, CSSMERR_APPLETP_OCSP_SIG_ERROR = CSSM_TP_PRIVATE_ERROR + 39, CSSMERR_APPLETP_OCSP_NO_SIGNER = CSSM_TP_PRIVATE_ERROR + 40, CSSMERR_APPLETP_OCSP_RESP_MALFORMED_REQ = CSSM_TP_PRIVATE_ERROR + 41, CSSMERR_APPLETP_OCSP_RESP_INTERNAL_ERR = CSSM_TP_PRIVATE_ERROR + 42, CSSMERR_APPLETP_OCSP_RESP_TRY_LATER = CSSM_TP_PRIVATE_ERROR + 43, CSSMERR_APPLETP_OCSP_RESP_SIG_REQUIRED = CSSM_TP_PRIVATE_ERROR + 44, CSSMERR_APPLETP_OCSP_RESP_UNAUTHORIZED = CSSM_TP_PRIVATE_ERROR + 45, CSSMERR_APPLETP_OCSP_NONCE_MISMATCH = CSSM_TP_PRIVATE_ERROR + 46, CSSMERR_APPLETP_CS_BAD_CERT_CHAIN_LENGTH = CSSM_TP_PRIVATE_ERROR + 47, CSSMERR_APPLETP_CS_NO_BASIC_CONSTRAINTS = CSSM_TP_PRIVATE_ERROR + 48, CSSMERR_APPLETP_CS_BAD_PATH_LENGTH = CSSM_TP_PRIVATE_ERROR + 49, CSSMERR_APPLETP_CS_NO_EXTENDED_KEY_USAGE = CSSM_TP_PRIVATE_ERROR + 50, CSSMERR_APPLETP_CODE_SIGN_DEVELOPMENT = CSSM_TP_PRIVATE_ERROR + 51, CSSMERR_APPLETP_RS_BAD_CERT_CHAIN_LENGTH = CSSM_TP_PRIVATE_ERROR + 52, CSSMERR_APPLETP_RS_BAD_EXTENDED_KEY_USAGE = CSSM_TP_PRIVATE_ERROR + 53, CSSMERR_APPLETP_TRUST_SETTING_DENY = CSSM_TP_PRIVATE_ERROR + 54, CSSMERR_APPLETP_INVALID_EMPTY_SUBJECT = CSSM_TP_PRIVATE_ERROR + 55, CSSMERR_APPLETP_UNKNOWN_QUAL_CERT_STATEMENT = CSSM_TP_PRIVATE_ERROR + 56 } enum { CSSMERR_APPLE_DOTMAC_REQ_QUEUED = CSSM_TP_PRIVATE_ERROR + 100, CSSMERR_APPLE_DOTMAC_REQ_REDIRECT = CSSM_TP_PRIVATE_ERROR + 101, CSSMERR_APPLE_DOTMAC_REQ_SERVER_ERR = CSSM_TP_PRIVATE_ERROR + 102, CSSMERR_APPLE_DOTMAC_REQ_SERVER_PARAM = CSSM_TP_PRIVATE_ERROR + 103, CSSMERR_APPLE_DOTMAC_REQ_SERVER_AUTH = CSSM_TP_PRIVATE_ERROR + 104, CSSMERR_APPLE_DOTMAC_REQ_SERVER_UNIMPL = CSSM_TP_PRIVATE_ERROR + 105, CSSMERR_APPLE_DOTMAC_REQ_SERVER_NOT_AVAIL = CSSM_TP_PRIVATE_ERROR + 106, CSSMERR_APPLE_DOTMAC_REQ_SERVER_ALREADY_EXIST = CSSM_TP_PRIVATE_ERROR + 107, CSSMERR_APPLE_DOTMAC_REQ_SERVER_SERVICE_ERROR = CSSM_TP_PRIVATE_ERROR + 108, CSSMERR_APPLE_DOTMAC_REQ_IS_PENDING = CSSM_TP_PRIVATE_ERROR + 109, CSSMERR_APPLE_DOTMAC_NO_REQ_PENDING = CSSM_TP_PRIVATE_ERROR + 110, CSSMERR_APPLE_DOTMAC_CSR_VERIFY_FAIL = CSSM_TP_PRIVATE_ERROR + 111, CSSMERR_APPLE_DOTMAC_FAILED_CONSISTENCY_CHECK = CSSM_TP_PRIVATE_ERROR + 112 } enum { CSSM_APPLEDL_OPEN_PARAMETERS_VERSION = 1 } enum cssm_appledl_open_parameters_mask { kCSSM_APPLEDL_MASK_MODE = (1 << 0) } enum { CSSM_APPLECSPDL_DB_LOCK = 0, CSSM_APPLECSPDL_DB_UNLOCK = 1, CSSM_APPLECSPDL_DB_GET_SETTINGS = 2, CSSM_APPLECSPDL_DB_SET_SETTINGS = 3, CSSM_APPLECSPDL_DB_IS_LOCKED = 4, CSSM_APPLECSPDL_DB_CHANGE_PASSWORD = 5, CSSM_APPLECSPDL_DB_GET_HANDLE = 6, CSSM_APPLESCPDL_CSP_GET_KEYHANDLE = 7, CSSM_APPLE_PRIVATE_CSPDL_CODE_8 = 8, CSSM_APPLE_PRIVATE_CSPDL_CODE_9 = 9, CSSM_APPLE_PRIVATE_CSPDL_CODE_10 = 10, CSSM_APPLE_PRIVATE_CSPDL_CODE_11 = 11, CSSM_APPLE_PRIVATE_CSPDL_CODE_12 = 12, CSSM_APPLE_PRIVATE_CSPDL_CODE_13 = 13, CSSM_APPLE_PRIVATE_CSPDL_CODE_14 = 14, CSSM_APPLE_PRIVATE_CSPDL_CODE_15 = 15, CSSM_APPLECSP_KEYDIGEST = 0x100 } enum { CSSM_KEYBLOB_WRAPPED_FORMAT_APPLE_CUSTOM = 100, CSSM_KEYBLOB_WRAPPED_FORMAT_OPENSSL, CSSM_KEYBLOB_WRAPPED_FORMAT_OPENSSH1 } enum { CSSM_ATTRIBUTE_VENDOR_DEFINED = 0x800000 } enum { CSSM_ATTRIBUTE_PUBLIC_KEY = (CSSM_ATTRIBUTE_DATA_KEY | (CSSM_ATTRIBUTE_VENDOR_DEFINED + 0)), CSSM_ATTRIBUTE_FEE_PRIME_TYPE = (CSSM_ATTRIBUTE_DATA_UINT32 | (CSSM_ATTRIBUTE_VENDOR_DEFINED + 1)), CSSM_ATTRIBUTE_FEE_CURVE_TYPE = (CSSM_ATTRIBUTE_DATA_UINT32 | (CSSM_ATTRIBUTE_VENDOR_DEFINED + 2)), CSSM_ATTRIBUTE_ASC_OPTIMIZATION = (CSSM_ATTRIBUTE_DATA_UINT32 | (CSSM_ATTRIBUTE_VENDOR_DEFINED + 3)), CSSM_ATTRIBUTE_RSA_BLINDING = (CSSM_ATTRIBUTE_DATA_UINT32 | (CSSM_ATTRIBUTE_VENDOR_DEFINED + 4)), CSSM_ATTRIBUTE_PARAM_KEY = (CSSM_ATTRIBUTE_DATA_KEY | (CSSM_ATTRIBUTE_VENDOR_DEFINED + 5)), CSSM_ATTRIBUTE_PROMPT = (CSSM_ATTRIBUTE_DATA_CSSM_DATA | (CSSM_ATTRIBUTE_VENDOR_DEFINED + 6)), CSSM_ATTRIBUTE_ALERT_TITLE = (CSSM_ATTRIBUTE_DATA_CSSM_DATA | (CSSM_ATTRIBUTE_VENDOR_DEFINED + 7)), CSSM_ATTRIBUTE_VERIFY_PASSPHRASE = (CSSM_ATTRIBUTE_DATA_UINT32 | (CSSM_ATTRIBUTE_VENDOR_DEFINED + 8)) } enum { CSSM_FEE_PRIME_TYPE_DEFAULT = 0, CSSM_FEE_PRIME_TYPE_MERSENNE, CSSM_FEE_PRIME_TYPE_FEE, CSSM_FEE_PRIME_TYPE_GENERAL } enum { CSSM_FEE_CURVE_TYPE_DEFAULT = 0, CSSM_FEE_CURVE_TYPE_MONTGOMERY, CSSM_FEE_CURVE_TYPE_WEIERSTRASS } enum { CSSM_ASC_OPTIMIZE_DEFAULT = 0, CSSM_ASC_OPTIMIZE_SIZE, CSSM_ASC_OPTIMIZE_SECURITY, CSSM_ASC_OPTIMIZE_TIME, CSSM_ASC_OPTIMIZE_TIME_SIZE, CSSM_ASC_OPTIMIZE_ASCII } enum { CSSM_KEYATTR_PARTIAL = 0x00010000, CSSM_KEYATTR_PUBLIC_KEY_ENCRYPT = 0x00020000 } enum { CSSM_TP_ACTION_REQUIRE_CRL_PER_CERT = 0x00000001, CSSM_TP_ACTION_FETCH_CRL_FROM_NET = 0x00000002, CSSM_TP_ACTION_CRL_SUFFICIENT = 0x00000004, CSSM_TP_ACTION_REQUIRE_CRL_IF_PRESENT = 0x00000008 } enum { CSSM_TP_ACTION_ALLOW_EXPIRED = 0x00000001, CSSM_TP_ACTION_LEAF_IS_CA = 0x00000002, CSSM_TP_ACTION_FETCH_CERT_FROM_NET = 0x00000004, CSSM_TP_ACTION_ALLOW_EXPIRED_ROOT = 0x00000008, CSSM_TP_ACTION_REQUIRE_REV_PER_CERT = 0x00000010, CSSM_TP_ACTION_TRUST_SETTINGS = 0x00000020, CSSM_TP_ACTION_IMPLICIT_ANCHORS = 0x00000040 } enum { CSSM_CERT_STATUS_EXPIRED = 0x00000001, CSSM_CERT_STATUS_NOT_VALID_YET = 0x00000002, CSSM_CERT_STATUS_IS_IN_INPUT_CERTS = 0x00000004, CSSM_CERT_STATUS_IS_IN_ANCHORS = 0x00000008, CSSM_CERT_STATUS_IS_ROOT = 0x00000010, CSSM_CERT_STATUS_IS_FROM_NET = 0x00000020, CSSM_CERT_STATUS_TRUST_SETTINGS_FOUND_USER = 0x00000040, CSSM_CERT_STATUS_TRUST_SETTINGS_FOUND_ADMIN = 0x00000080, CSSM_CERT_STATUS_TRUST_SETTINGS_FOUND_SYSTEM = 0x00000100, CSSM_CERT_STATUS_TRUST_SETTINGS_TRUST = 0x00000200, CSSM_CERT_STATUS_TRUST_SETTINGS_DENY = 0x00000400, CSSM_CERT_STATUS_TRUST_SETTINGS_IGNORED_ERROR = 0x00000800 } enum { CSSM_EVIDENCE_FORM_APPLE_HEADER = 0x80000000 + 0, CSSM_EVIDENCE_FORM_APPLE_CERTGROUP = 0x80000000 + 1, CSSM_EVIDENCE_FORM_APPLE_CERT_INFO = 0x80000000 + 2 } enum { CSSM_APPLEX509CL_OBTAIN_CSR, CSSM_APPLEX509CL_VERIFY_CSR } struct CSSM_ACL_PROCESS_SUBJECT_SELECTOR { ushort version_; ushort mask; uint uid; uint gid; } struct CSSM_ACL_KEYCHAIN_PROMPT_SELECTOR { ushort version_; ushort flags; } struct CSSM_APPLEDL_OPEN_PARAMETERS { uint length; uint version_; int autoCommit; uint mask; ushort mode; } struct CSSM_APPLECSPDL_DB_SETTINGS_PARAMETERS { uint idleTimeout; ubyte lockOnSleep; } struct CSSM_APPLECSPDL_DB_IS_LOCKED_PARAMETERS { ubyte isLocked; } struct CSSM_APPLECSPDL_DB_CHANGE_PASSWORD_PARAMETERS { CSSM_ACCESS_CREDENTIALS* accessCredentials; } struct CSSM_APPLE_TP_NAME_OID { char* string; CSSM_OID* oid; } struct CSSM_APPLE_TP_CERT_REQUEST { int cspHand; int clHand; uint serialNumber; uint numSubjectNames; CSSM_APPLE_TP_NAME_OID* subjectNames; uint numIssuerNames; CSSM_APPLE_TP_NAME_OID* issuerNames; CSSM_X509_NAME_PTR issuerNameX509; CSSM_KEY* certPublicKey; CSSM_KEY* issuerPrivateKey; uint signatureAlg; CSSM_OID signatureOid; uint notBefore; uint notAfter; uint numExtensions; CE_DataAndType* extensions; char* challengeString; } struct CSSM_APPLE_TP_SSL_OPTIONS { uint Version; uint ServerNameLen; char* ServerName; uint Flags; } struct CSSM_APPLE_TP_CRL_OPTIONS { uint Version; uint CrlFlags; CSSM_DL_DB_HANDLE_PTR crlStore; } struct CSSM_APPLE_TP_SMIME_OPTIONS { uint Version; ushort IntendedUsage; uint SenderEmailLen; char* SenderEmail; } struct CSSM_APPLE_TP_ACTION_DATA { uint Version; uint ActionFlags; } struct CSSM_TP_APPLE_EVIDENCE_INFO { uint StatusBits; uint NumStatusCodes; CSSM_RETURN* StatusCodes; uint Index; CSSM_DL_DB_HANDLE DlDbHandle; CSSM_DB_UNIQUE_RECORD_PTR UniqueRecord; } struct CSSM_TP_APPLE_EVIDENCE_HEADER { uint Version; } struct CSSM_APPLE_CL_CSR_REQUEST { CSSM_X509_NAME_PTR subjectNameX509; uint signatureAlg; CSSM_OID signatureOid; int cspHand; CSSM_KEY* subjectPublicKey; CSSM_KEY* subjectPrivateKey; char* challengeString; } extern (C) { void cssmPerror (char* how, int error); bool cssmOidToAlg (CSSM_OID* oid, CSSM_ALGORITHMS* alg); CSSM_OID* cssmAlgToOid (uint algId); }