diff 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 diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/dstep/security/cssmapple.d	Sat Aug 01 15:03:28 2009 +0200
@@ -0,0 +1,635 @@
+/**
+ * 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);
+}
\ No newline at end of file