]> git.saurik.com Git - apple/security.git/blobdiff - Security/libsecurity_cssm/lib/cssmerr.h
Security-57031.1.35.tar.gz
[apple/security.git] / Security / libsecurity_cssm / lib / cssmerr.h
diff --git a/Security/libsecurity_cssm/lib/cssmerr.h b/Security/libsecurity_cssm/lib/cssmerr.h
new file mode 100644 (file)
index 0000000..9d518fd
--- /dev/null
@@ -0,0 +1,823 @@
+/*
+ * Copyright (c) 1999-2002,2004,2011,2014 Apple Inc. All Rights Reserved.
+ * 
+ * @APPLE_LICENSE_HEADER_START@
+ * 
+ * This file contains Original Code and/or Modifications of Original Code
+ * as defined in and that are subject to the Apple Public Source License
+ * Version 2.0 (the 'License'). You may not use this file except in
+ * compliance with the License. Please obtain a copy of the License at
+ * http://www.opensource.apple.com/apsl/ and read it before using this
+ * file.
+ * 
+ * The Original Code and all software distributed under the License are
+ * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+ * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+ * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+ * Please see the License for the specific language governing rights and
+ * limitations under the License.
+ * 
+ * @APPLE_LICENSE_HEADER_END@
+ *
+ * cssmerr.h -- Error Code Definitions for CSSM
+ */
+
+#ifndef _CSSMERR_H_
+#define _CSSMERR_H_  1
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+
+/*
+ * NOTE: To translate CSSM error codes into something vaguely
+ * human-readable, use the cssmPerror function in cssmapple.h.
+ * This function will also decode other Security layer errors
+ * (i.e. those with names like kSec...).
+ */
+
+
+/* Common error codes. */
+enum {
+       CSSM_BASE_ERROR =                               -0x7FFF0000 /* 0x80010000 */
+};
+
+enum {
+       CSSM_ERRORCODE_MODULE_EXTENT =  0x00000800,
+       CSSM_ERRORCODE_CUSTOM_OFFSET =  0x00000400,
+       CSSM_ERRORCODE_COMMON_EXTENT =  0x100
+};
+
+/* Macros for convertible error code manipulation. */
+#define CSSM_ERRCODE(CODE) \
+       (((CODE) - CSSM_BASE_ERROR) & (CSSM_ERRORCODE_MODULE_EXTENT - 1)) 
+
+#define CSSM_ERRBASE(CODE) \
+       ((((CODE) - CSSM_BASE_ERROR) & ~(CSSM_ERRORCODE_MODULE_EXTENT - 1)) + CSSM_BASE_ERROR) 
+
+#define CSSM_ERR_IS_CONVERTIBLE(CODE) \
+       (CSSM_ERRCODE(CODE) < CSSM_ERRORCODE_COMMON_EXTENT)
+
+#define CSSM_ERR_TAG(CODE, BASE) \
+       (CSSM_ERRCODE(CODE) + (BASE))
+
+/* Error Bases for different module types. */
+enum {
+       CSSM_CSSM_BASE_ERROR =                          CSSM_BASE_ERROR,
+       CSSM_CSSM_PRIVATE_ERROR =                       CSSM_BASE_ERROR + CSSM_ERRORCODE_CUSTOM_OFFSET,
+       CSSM_CSP_BASE_ERROR =                           CSSM_CSSM_BASE_ERROR + CSSM_ERRORCODE_MODULE_EXTENT,
+       CSSM_CSP_PRIVATE_ERROR =                        CSSM_CSP_BASE_ERROR + CSSM_ERRORCODE_CUSTOM_OFFSET,
+       CSSM_DL_BASE_ERROR =                            CSSM_CSP_BASE_ERROR + CSSM_ERRORCODE_MODULE_EXTENT,
+       CSSM_DL_PRIVATE_ERROR =                         CSSM_DL_BASE_ERROR + CSSM_ERRORCODE_CUSTOM_OFFSET,
+       CSSM_CL_BASE_ERROR =                            CSSM_DL_BASE_ERROR + CSSM_ERRORCODE_MODULE_EXTENT,
+       CSSM_CL_PRIVATE_ERROR =                         CSSM_CL_BASE_ERROR + CSSM_ERRORCODE_CUSTOM_OFFSET,
+       CSSM_TP_BASE_ERROR =                            CSSM_CL_BASE_ERROR + CSSM_ERRORCODE_MODULE_EXTENT,
+       CSSM_TP_PRIVATE_ERROR =                         CSSM_TP_BASE_ERROR + CSSM_ERRORCODE_CUSTOM_OFFSET ,
+       CSSM_KR_BASE_ERROR =                            CSSM_TP_BASE_ERROR + CSSM_ERRORCODE_MODULE_EXTENT,
+       CSSM_KR_PRIVATE_ERROR =                         CSSM_KR_BASE_ERROR + CSSM_ERRORCODE_CUSTOM_OFFSET,
+       CSSM_AC_BASE_ERROR =                            CSSM_KR_BASE_ERROR + CSSM_ERRORCODE_MODULE_EXTENT,
+       CSSM_AC_PRIVATE_ERROR =                         CSSM_AC_BASE_ERROR + CSSM_ERRORCODE_CUSTOM_OFFSET
+};
+
+/* XXX @@@ MDS Error Bases same as DL for now. */
+enum {
+       CSSM_MDS_BASE_ERROR =                           CSSM_CSP_BASE_ERROR + CSSM_ERRORCODE_MODULE_EXTENT,
+       CSSM_MDS_PRIVATE_ERROR =                        CSSM_MDS_BASE_ERROR + CSSM_ERRORCODE_CUSTOM_OFFSET
+};
+
+/* General Error Values. */
+enum {
+       CSSMERR_CSSM_INVALID_ADDIN_HANDLE =
+               CSSM_CSSM_BASE_ERROR + CSSM_ERRORCODE_COMMON_EXTENT + 1,
+       CSSMERR_CSSM_NOT_INITIALIZED =
+               CSSM_CSSM_BASE_ERROR + CSSM_ERRORCODE_COMMON_EXTENT + 2,
+       CSSMERR_CSSM_INVALID_HANDLE_USAGE =
+               CSSM_CSSM_BASE_ERROR + CSSM_ERRORCODE_COMMON_EXTENT + 3,
+       CSSMERR_CSSM_PVC_REFERENT_NOT_FOUND =
+               CSSM_CSSM_BASE_ERROR + CSSM_ERRORCODE_COMMON_EXTENT + 4,
+       CSSMERR_CSSM_FUNCTION_INTEGRITY_FAIL =
+               CSSM_CSSM_BASE_ERROR + CSSM_ERRORCODE_COMMON_EXTENT + 5
+};
+
+/* Common Error Codes For All Module Types. */
+enum {
+       CSSM_ERRCODE_INTERNAL_ERROR =                                   0x0001,
+       CSSM_ERRCODE_MEMORY_ERROR =                                             0x0002,
+       CSSM_ERRCODE_MDS_ERROR =                                                0x0003,
+       CSSM_ERRCODE_INVALID_POINTER =                                  0x0004,
+       CSSM_ERRCODE_INVALID_INPUT_POINTER =                    0x0005,
+       CSSM_ERRCODE_INVALID_OUTPUT_POINTER =                   0x0006,
+       CSSM_ERRCODE_FUNCTION_NOT_IMPLEMENTED =                 0x0007,
+       CSSM_ERRCODE_SELF_CHECK_FAILED =                                0x0008,
+       CSSM_ERRCODE_OS_ACCESS_DENIED =                                 0x0009,
+       CSSM_ERRCODE_FUNCTION_FAILED =                                  0x000A,
+       CSSM_ERRCODE_MODULE_MANIFEST_VERIFY_FAILED =    0x000B,
+       CSSM_ERRCODE_INVALID_GUID =                                             0x000C
+};
+
+/* Common Error Codes for ACLs */
+enum {
+       CSSM_ERRCODE_OPERATION_AUTH_DENIED =                    0x0020,
+       CSSM_ERRCODE_OBJECT_USE_AUTH_DENIED =                   0x0021,
+       CSSM_ERRCODE_OBJECT_MANIP_AUTH_DENIED =                 0x0022,
+       CSSM_ERRCODE_OBJECT_ACL_NOT_SUPPORTED =                 0x0023,
+       CSSM_ERRCODE_OBJECT_ACL_REQUIRED =                              0x0024,
+       CSSM_ERRCODE_INVALID_ACCESS_CREDENTIALS =               0x0025,
+       CSSM_ERRCODE_INVALID_ACL_BASE_CERTS =                   0x0026,
+       CSSM_ERRCODE_ACL_BASE_CERTS_NOT_SUPPORTED =             0x0027,
+       CSSM_ERRCODE_INVALID_SAMPLE_VALUE =                             0x0028,
+       CSSM_ERRCODE_SAMPLE_VALUE_NOT_SUPPORTED =               0x0029,
+       CSSM_ERRCODE_INVALID_ACL_SUBJECT_VALUE =                0x002A,
+       CSSM_ERRCODE_ACL_SUBJECT_TYPE_NOT_SUPPORTED =   0x002B,
+       CSSM_ERRCODE_INVALID_ACL_CHALLENGE_CALLBACK =   0x002C,
+       CSSM_ERRCODE_ACL_CHALLENGE_CALLBACK_FAILED =    0x002D,
+       CSSM_ERRCODE_INVALID_ACL_ENTRY_TAG =                    0x002E,
+       CSSM_ERRCODE_ACL_ENTRY_TAG_NOT_FOUND =                  0x002F,
+       CSSM_ERRCODE_INVALID_ACL_EDIT_MODE =                    0x0030,
+       CSSM_ERRCODE_ACL_CHANGE_FAILED =                                0x0031,
+       CSSM_ERRCODE_INVALID_NEW_ACL_ENTRY =                    0x0032,
+       CSSM_ERRCODE_INVALID_NEW_ACL_OWNER =                    0x0033,
+       CSSM_ERRCODE_ACL_DELETE_FAILED =                                0x0034,
+       CSSM_ERRCODE_ACL_REPLACE_FAILED =                               0x0035,
+       CSSM_ERRCODE_ACL_ADD_FAILED =                                   0x0036
+};
+
+/* Common Error Codes for Specific Data Types */
+enum {
+       CSSM_ERRCODE_INVALID_CONTEXT_HANDLE =                   0x0040,
+       CSSM_ERRCODE_INCOMPATIBLE_VERSION =                             0x0041,
+       CSSM_ERRCODE_INVALID_CERTGROUP_POINTER =                0x0042,
+       CSSM_ERRCODE_INVALID_CERT_POINTER =                             0x0043,
+       CSSM_ERRCODE_INVALID_CRL_POINTER =                              0x0044,
+       CSSM_ERRCODE_INVALID_FIELD_POINTER =                    0x0045,
+       CSSM_ERRCODE_INVALID_DATA =                                             0x0046,
+       CSSM_ERRCODE_CRL_ALREADY_SIGNED =                               0x0047,
+       CSSM_ERRCODE_INVALID_NUMBER_OF_FIELDS =                 0x0048,
+       CSSM_ERRCODE_VERIFICATION_FAILURE =                             0x0049,
+       CSSM_ERRCODE_INVALID_DB_HANDLE =                                0x004A,
+       CSSM_ERRCODE_PRIVILEGE_NOT_GRANTED =                    0x004B,
+       CSSM_ERRCODE_INVALID_DB_LIST =                                  0x004C,
+       CSSM_ERRCODE_INVALID_DB_LIST_POINTER =                  0x004D,
+       CSSM_ERRCODE_UNKNOWN_FORMAT =                                   0x004E,
+       CSSM_ERRCODE_UNKNOWN_TAG =                                              0x004F,
+       CSSM_ERRCODE_INVALID_CSP_HANDLE =                               0x0050,
+       CSSM_ERRCODE_INVALID_DL_HANDLE =                                0x0051,
+       CSSM_ERRCODE_INVALID_CL_HANDLE =                                0x0052,
+       CSSM_ERRCODE_INVALID_TP_HANDLE =                                0x0053,
+       CSSM_ERRCODE_INVALID_KR_HANDLE =                                0x0054,
+       CSSM_ERRCODE_INVALID_AC_HANDLE =                                0x0055,
+       CSSM_ERRCODE_INVALID_PASSTHROUGH_ID =                   0x0056,
+       CSSM_ERRCODE_INVALID_NETWORK_ADDR =                             0x0057,
+       CSSM_ERRCODE_INVALID_CRYPTO_DATA =                              0x0058
+};
+
+/* CSSM Error Values Derived from Common Error Codes For All Module Types. */
+enum {
+       CSSMERR_CSSM_INTERNAL_ERROR =
+               CSSM_CSSM_BASE_ERROR + CSSM_ERRCODE_INTERNAL_ERROR,
+       CSSMERR_CSSM_MEMORY_ERROR =
+               CSSM_CSSM_BASE_ERROR + CSSM_ERRCODE_MEMORY_ERROR,
+       CSSMERR_CSSM_MDS_ERROR =
+               CSSM_CSSM_BASE_ERROR + CSSM_ERRCODE_MDS_ERROR,
+       CSSMERR_CSSM_INVALID_POINTER =
+               CSSM_CSSM_BASE_ERROR + CSSM_ERRCODE_INVALID_POINTER,
+       CSSMERR_CSSM_INVALID_INPUT_POINTER =
+               CSSM_CSSM_BASE_ERROR + CSSM_ERRCODE_INVALID_INPUT_POINTER,
+       CSSMERR_CSSM_INVALID_OUTPUT_POINTER =
+               CSSM_CSSM_BASE_ERROR + CSSM_ERRCODE_INVALID_OUTPUT_POINTER,
+       CSSMERR_CSSM_FUNCTION_NOT_IMPLEMENTED =
+               CSSM_CSSM_BASE_ERROR + CSSM_ERRCODE_FUNCTION_NOT_IMPLEMENTED,
+       CSSMERR_CSSM_SELF_CHECK_FAILED =
+               CSSM_CSSM_BASE_ERROR + CSSM_ERRCODE_SELF_CHECK_FAILED,
+       CSSMERR_CSSM_OS_ACCESS_DENIED =
+               CSSM_CSSM_BASE_ERROR + CSSM_ERRCODE_OS_ACCESS_DENIED,
+       CSSMERR_CSSM_FUNCTION_FAILED =
+               CSSM_CSSM_BASE_ERROR + CSSM_ERRCODE_FUNCTION_FAILED,
+       CSSMERR_CSSM_MODULE_MANIFEST_VERIFY_FAILED =
+               CSSM_CSSM_BASE_ERROR + CSSM_ERRCODE_MODULE_MANIFEST_VERIFY_FAILED,
+       CSSMERR_CSSM_INVALID_GUID =
+               CSSM_CSSM_BASE_ERROR + CSSM_ERRCODE_INVALID_GUID
+};
+
+/* CSSM Error Values for Specific Data Types. */
+enum {
+       CSSMERR_CSSM_INVALID_CONTEXT_HANDLE =
+               CSSM_CSSM_BASE_ERROR + CSSM_ERRCODE_INVALID_CONTEXT_HANDLE,
+       CSSMERR_CSSM_INCOMPATIBLE_VERSION =
+               CSSM_CSSM_BASE_ERROR + CSSM_ERRCODE_INCOMPATIBLE_VERSION,
+       CSSMERR_CSSM_PRIVILEGE_NOT_GRANTED =
+               CSSM_CSSM_BASE_ERROR + CSSM_ERRCODE_PRIVILEGE_NOT_GRANTED
+};
+
+/* CSSM Module-Specific Error Values */
+enum {
+       CSSM_CSSM_BASE_CSSM_ERROR =
+               CSSM_CSSM_BASE_ERROR + CSSM_ERRORCODE_COMMON_EXTENT + 0x10,
+       CSSMERR_CSSM_SCOPE_NOT_SUPPORTED =                              CSSM_CSSM_BASE_CSSM_ERROR + 1,
+       CSSMERR_CSSM_PVC_ALREADY_CONFIGURED =                   CSSM_CSSM_BASE_CSSM_ERROR + 2,
+       CSSMERR_CSSM_INVALID_PVC =                                              CSSM_CSSM_BASE_CSSM_ERROR + 3,
+       CSSMERR_CSSM_EMM_LOAD_FAILED =                                  CSSM_CSSM_BASE_CSSM_ERROR + 4,
+       CSSMERR_CSSM_EMM_UNLOAD_FAILED =                                CSSM_CSSM_BASE_CSSM_ERROR + 5,
+       CSSMERR_CSSM_ADDIN_LOAD_FAILED =                                CSSM_CSSM_BASE_CSSM_ERROR + 6,
+       CSSMERR_CSSM_INVALID_KEY_HIERARCHY =                    CSSM_CSSM_BASE_CSSM_ERROR + 7,
+       CSSMERR_CSSM_ADDIN_UNLOAD_FAILED =                              CSSM_CSSM_BASE_CSSM_ERROR + 8,
+       CSSMERR_CSSM_LIB_REF_NOT_FOUND =                                CSSM_CSSM_BASE_CSSM_ERROR + 9,
+       CSSMERR_CSSM_INVALID_ADDIN_FUNCTION_TABLE =             CSSM_CSSM_BASE_CSSM_ERROR + 10,
+       CSSMERR_CSSM_EMM_AUTHENTICATE_FAILED =                  CSSM_CSSM_BASE_CSSM_ERROR + 11,
+       CSSMERR_CSSM_ADDIN_AUTHENTICATE_FAILED =                CSSM_CSSM_BASE_CSSM_ERROR + 12,
+       CSSMERR_CSSM_INVALID_SERVICE_MASK =                             CSSM_CSSM_BASE_CSSM_ERROR + 13,
+       CSSMERR_CSSM_MODULE_NOT_LOADED =                                CSSM_CSSM_BASE_CSSM_ERROR + 14,
+       CSSMERR_CSSM_INVALID_SUBSERVICEID =                             CSSM_CSSM_BASE_CSSM_ERROR + 15,
+       CSSMERR_CSSM_BUFFER_TOO_SMALL =                                 CSSM_CSSM_BASE_CSSM_ERROR + 16,
+       CSSMERR_CSSM_INVALID_ATTRIBUTE =                                CSSM_CSSM_BASE_CSSM_ERROR + 17,
+       CSSMERR_CSSM_ATTRIBUTE_NOT_IN_CONTEXT =                 CSSM_CSSM_BASE_CSSM_ERROR + 18,
+       CSSMERR_CSSM_MODULE_MANAGER_INITIALIZE_FAIL =   CSSM_CSSM_BASE_CSSM_ERROR + 19,
+       CSSMERR_CSSM_MODULE_MANAGER_NOT_FOUND =                 CSSM_CSSM_BASE_CSSM_ERROR + 20,
+       CSSMERR_CSSM_EVENT_NOTIFICATION_CALLBACK_NOT_FOUND = CSSM_CSSM_BASE_CSSM_ERROR + 21
+};
+
+/* CSP Error Values Derived from Common Error Codes For All Module Types. */
+enum {
+       CSSMERR_CSP_INTERNAL_ERROR =
+               CSSM_CSP_BASE_ERROR + CSSM_ERRCODE_INTERNAL_ERROR,
+       CSSMERR_CSP_MEMORY_ERROR =
+               CSSM_CSP_BASE_ERROR + CSSM_ERRCODE_MEMORY_ERROR,
+       CSSMERR_CSP_MDS_ERROR =
+               CSSM_CSP_BASE_ERROR + CSSM_ERRCODE_MDS_ERROR,
+       CSSMERR_CSP_INVALID_POINTER =
+               CSSM_CSP_BASE_ERROR + CSSM_ERRCODE_INVALID_POINTER,
+       CSSMERR_CSP_INVALID_INPUT_POINTER =
+               CSSM_CSP_BASE_ERROR + CSSM_ERRCODE_INVALID_INPUT_POINTER,
+       CSSMERR_CSP_INVALID_OUTPUT_POINTER =
+               CSSM_CSP_BASE_ERROR + CSSM_ERRCODE_INVALID_OUTPUT_POINTER,
+       CSSMERR_CSP_FUNCTION_NOT_IMPLEMENTED =
+               CSSM_CSP_BASE_ERROR + CSSM_ERRCODE_FUNCTION_NOT_IMPLEMENTED,
+       CSSMERR_CSP_SELF_CHECK_FAILED =
+               CSSM_CSP_BASE_ERROR + CSSM_ERRCODE_SELF_CHECK_FAILED,
+       CSSMERR_CSP_OS_ACCESS_DENIED =
+               CSSM_CSP_BASE_ERROR + CSSM_ERRCODE_OS_ACCESS_DENIED,
+       CSSMERR_CSP_FUNCTION_FAILED =
+               CSSM_CSP_BASE_ERROR + CSSM_ERRCODE_FUNCTION_FAILED
+};
+
+/* CSP Error Values Derived from ACL-based Error Codes. */
+enum {
+       CSSMERR_CSP_OPERATION_AUTH_DENIED =
+               CSSM_CSP_BASE_ERROR + CSSM_ERRCODE_OPERATION_AUTH_DENIED,
+       CSSMERR_CSP_OBJECT_USE_AUTH_DENIED =
+               CSSM_CSP_BASE_ERROR + CSSM_ERRCODE_OBJECT_USE_AUTH_DENIED,
+       CSSMERR_CSP_OBJECT_MANIP_AUTH_DENIED =
+               CSSM_CSP_BASE_ERROR + CSSM_ERRCODE_OBJECT_MANIP_AUTH_DENIED,
+       CSSMERR_CSP_OBJECT_ACL_NOT_SUPPORTED =
+               CSSM_CSP_BASE_ERROR + CSSM_ERRCODE_OBJECT_ACL_NOT_SUPPORTED,
+       CSSMERR_CSP_OBJECT_ACL_REQUIRED =
+               CSSM_CSP_BASE_ERROR + CSSM_ERRCODE_OBJECT_ACL_REQUIRED,
+       CSSMERR_CSP_INVALID_ACCESS_CREDENTIALS =
+               CSSM_CSP_BASE_ERROR + CSSM_ERRCODE_INVALID_ACCESS_CREDENTIALS,
+       CSSMERR_CSP_INVALID_ACL_BASE_CERTS =
+               CSSM_CSP_BASE_ERROR + CSSM_ERRCODE_INVALID_ACL_BASE_CERTS,
+       CSSMERR_CSP_ACL_BASE_CERTS_NOT_SUPPORTED =
+               CSSM_CSP_BASE_ERROR + CSSM_ERRCODE_ACL_BASE_CERTS_NOT_SUPPORTED,
+       CSSMERR_CSP_INVALID_SAMPLE_VALUE =
+               CSSM_CSP_BASE_ERROR + CSSM_ERRCODE_INVALID_SAMPLE_VALUE,
+       CSSMERR_CSP_SAMPLE_VALUE_NOT_SUPPORTED =
+               CSSM_CSP_BASE_ERROR + CSSM_ERRCODE_SAMPLE_VALUE_NOT_SUPPORTED,
+       CSSMERR_CSP_INVALID_ACL_SUBJECT_VALUE =
+               CSSM_CSP_BASE_ERROR + CSSM_ERRCODE_INVALID_ACL_SUBJECT_VALUE,
+       CSSMERR_CSP_ACL_SUBJECT_TYPE_NOT_SUPPORTED =
+               CSSM_CSP_BASE_ERROR + CSSM_ERRCODE_ACL_SUBJECT_TYPE_NOT_SUPPORTED,
+       CSSMERR_CSP_INVALID_ACL_CHALLENGE_CALLBACK =
+               CSSM_CSP_BASE_ERROR + CSSM_ERRCODE_INVALID_ACL_CHALLENGE_CALLBACK,
+       CSSMERR_CSP_ACL_CHALLENGE_CALLBACK_FAILED =
+               CSSM_CSP_BASE_ERROR + CSSM_ERRCODE_ACL_CHALLENGE_CALLBACK_FAILED,
+       CSSMERR_CSP_INVALID_ACL_ENTRY_TAG =
+               CSSM_CSP_BASE_ERROR + CSSM_ERRCODE_INVALID_ACL_ENTRY_TAG,
+       CSSMERR_CSP_ACL_ENTRY_TAG_NOT_FOUND =
+               CSSM_CSP_BASE_ERROR + CSSM_ERRCODE_ACL_ENTRY_TAG_NOT_FOUND,
+       CSSMERR_CSP_INVALID_ACL_EDIT_MODE =
+               CSSM_CSP_BASE_ERROR + CSSM_ERRCODE_INVALID_ACL_EDIT_MODE,
+       CSSMERR_CSP_ACL_CHANGE_FAILED =
+               CSSM_CSP_BASE_ERROR + CSSM_ERRCODE_ACL_CHANGE_FAILED,
+       CSSMERR_CSP_INVALID_NEW_ACL_ENTRY =
+               CSSM_CSP_BASE_ERROR + CSSM_ERRCODE_INVALID_NEW_ACL_ENTRY,
+       CSSMERR_CSP_INVALID_NEW_ACL_OWNER =
+               CSSM_CSP_BASE_ERROR + CSSM_ERRCODE_INVALID_NEW_ACL_OWNER,
+       CSSMERR_CSP_ACL_DELETE_FAILED =
+               CSSM_CSP_BASE_ERROR + CSSM_ERRCODE_ACL_DELETE_FAILED,
+       CSSMERR_CSP_ACL_REPLACE_FAILED =
+               CSSM_CSP_BASE_ERROR + CSSM_ERRCODE_ACL_REPLACE_FAILED,
+       CSSMERR_CSP_ACL_ADD_FAILED =
+               CSSM_CSP_BASE_ERROR + CSSM_ERRCODE_ACL_ADD_FAILED
+};
+
+/* CSP Error Values for Specific Data Types. */
+enum {
+       CSSMERR_CSP_INVALID_CONTEXT_HANDLE =
+               CSSM_CSP_BASE_ERROR + CSSM_ERRCODE_INVALID_CONTEXT_HANDLE,
+       CSSMERR_CSP_PRIVILEGE_NOT_GRANTED =
+               CSSM_CSP_BASE_ERROR + CSSM_ERRCODE_PRIVILEGE_NOT_GRANTED,
+       CSSMERR_CSP_INVALID_DATA =
+               CSSM_CSP_BASE_ERROR + CSSM_ERRCODE_INVALID_DATA,
+       CSSMERR_CSP_INVALID_PASSTHROUGH_ID =
+               CSSM_CSP_BASE_ERROR + CSSM_ERRCODE_INVALID_PASSTHROUGH_ID,
+       CSSMERR_CSP_INVALID_CRYPTO_DATA =
+               CSSM_CSP_BASE_ERROR + CSSM_ERRCODE_INVALID_CRYPTO_DATA
+};
+
+/* CSP Module-Specific Error Values */
+enum {
+       /* General CSP Error Values */
+       CSSM_CSP_BASE_CSP_ERROR =
+               CSSM_CSP_BASE_ERROR + CSSM_ERRORCODE_COMMON_EXTENT,
+       CSSMERR_CSP_INPUT_LENGTH_ERROR =                                CSSM_CSP_BASE_CSP_ERROR + 1,
+       CSSMERR_CSP_OUTPUT_LENGTH_ERROR =                               CSSM_CSP_BASE_CSP_ERROR + 2,
+       CSSMERR_CSP_PRIVILEGE_NOT_SUPPORTED =                   CSSM_CSP_BASE_CSP_ERROR + 3,
+       CSSMERR_CSP_DEVICE_ERROR =                                              CSSM_CSP_BASE_CSP_ERROR + 4,
+       CSSMERR_CSP_DEVICE_MEMORY_ERROR =                               CSSM_CSP_BASE_CSP_ERROR + 5,
+       CSSMERR_CSP_ATTACH_HANDLE_BUSY =                                CSSM_CSP_BASE_CSP_ERROR + 6,
+       CSSMERR_CSP_NOT_LOGGED_IN =                                             CSSM_CSP_BASE_CSP_ERROR + 7,
+       CSSMERR_CSP_INVALID_KEY =                                               CSSM_CSP_BASE_CSP_ERROR + 16,
+       CSSMERR_CSP_INVALID_KEY_REFERENCE =                             CSSM_CSP_BASE_CSP_ERROR + 17,
+       CSSMERR_CSP_INVALID_KEY_CLASS =                                 CSSM_CSP_BASE_CSP_ERROR + 18,
+       CSSMERR_CSP_ALGID_MISMATCH =                                    CSSM_CSP_BASE_CSP_ERROR + 19,
+       CSSMERR_CSP_KEY_USAGE_INCORRECT =                               CSSM_CSP_BASE_CSP_ERROR + 20,
+       CSSMERR_CSP_KEY_BLOB_TYPE_INCORRECT =                   CSSM_CSP_BASE_CSP_ERROR + 21,
+       CSSMERR_CSP_KEY_HEADER_INCONSISTENT =                   CSSM_CSP_BASE_CSP_ERROR + 22,
+       CSSMERR_CSP_UNSUPPORTED_KEY_FORMAT =                    CSSM_CSP_BASE_CSP_ERROR + 23,
+       CSSMERR_CSP_UNSUPPORTED_KEY_SIZE =                              CSSM_CSP_BASE_CSP_ERROR + 24,
+       CSSMERR_CSP_INVALID_KEY_POINTER =                               CSSM_CSP_BASE_CSP_ERROR + 25,
+       CSSMERR_CSP_INVALID_KEYUSAGE_MASK =                             CSSM_CSP_BASE_CSP_ERROR + 26,
+       CSSMERR_CSP_UNSUPPORTED_KEYUSAGE_MASK =                 CSSM_CSP_BASE_CSP_ERROR + 27,
+       CSSMERR_CSP_INVALID_KEYATTR_MASK =                              CSSM_CSP_BASE_CSP_ERROR + 28,
+       CSSMERR_CSP_UNSUPPORTED_KEYATTR_MASK =                  CSSM_CSP_BASE_CSP_ERROR + 29,
+       CSSMERR_CSP_INVALID_KEY_LABEL =                                 CSSM_CSP_BASE_CSP_ERROR + 30,
+       CSSMERR_CSP_UNSUPPORTED_KEY_LABEL =                             CSSM_CSP_BASE_CSP_ERROR + 31,
+       CSSMERR_CSP_INVALID_KEY_FORMAT =                                CSSM_CSP_BASE_CSP_ERROR + 32,
+
+       /* CSP Vector of Buffers Error Values. */
+       CSSMERR_CSP_INVALID_DATA_COUNT =                                CSSM_CSP_BASE_CSP_ERROR + 40,
+       CSSMERR_CSP_VECTOR_OF_BUFS_UNSUPPORTED =                CSSM_CSP_BASE_CSP_ERROR + 41,
+       CSSMERR_CSP_INVALID_INPUT_VECTOR =                              CSSM_CSP_BASE_CSP_ERROR + 42,
+       CSSMERR_CSP_INVALID_OUTPUT_VECTOR =                             CSSM_CSP_BASE_CSP_ERROR + 43,
+
+       /* CSP Cryptographic Context Error Values. */
+       CSSMERR_CSP_INVALID_CONTEXT =                                   CSSM_CSP_BASE_CSP_ERROR + 48,
+       CSSMERR_CSP_INVALID_ALGORITHM =                                 CSSM_CSP_BASE_CSP_ERROR + 49,
+       CSSMERR_CSP_INVALID_ATTR_KEY =                                  CSSM_CSP_BASE_CSP_ERROR + 54,
+       CSSMERR_CSP_MISSING_ATTR_KEY =                                  CSSM_CSP_BASE_CSP_ERROR + 55,
+       CSSMERR_CSP_INVALID_ATTR_INIT_VECTOR =                  CSSM_CSP_BASE_CSP_ERROR + 56,
+       CSSMERR_CSP_MISSING_ATTR_INIT_VECTOR =                  CSSM_CSP_BASE_CSP_ERROR + 57,
+       CSSMERR_CSP_INVALID_ATTR_SALT =                                 CSSM_CSP_BASE_CSP_ERROR + 58,
+       CSSMERR_CSP_MISSING_ATTR_SALT =                                 CSSM_CSP_BASE_CSP_ERROR + 59,
+       CSSMERR_CSP_INVALID_ATTR_PADDING =                              CSSM_CSP_BASE_CSP_ERROR + 60,
+       CSSMERR_CSP_MISSING_ATTR_PADDING =                              CSSM_CSP_BASE_CSP_ERROR + 61,
+       CSSMERR_CSP_INVALID_ATTR_RANDOM =                               CSSM_CSP_BASE_CSP_ERROR + 62,
+       CSSMERR_CSP_MISSING_ATTR_RANDOM =                               CSSM_CSP_BASE_CSP_ERROR + 63,
+       CSSMERR_CSP_INVALID_ATTR_SEED =                                 CSSM_CSP_BASE_CSP_ERROR + 64,
+       CSSMERR_CSP_MISSING_ATTR_SEED =                                 CSSM_CSP_BASE_CSP_ERROR + 65,
+       CSSMERR_CSP_INVALID_ATTR_PASSPHRASE =                   CSSM_CSP_BASE_CSP_ERROR + 66,
+       CSSMERR_CSP_MISSING_ATTR_PASSPHRASE =                   CSSM_CSP_BASE_CSP_ERROR + 67,
+       CSSMERR_CSP_INVALID_ATTR_KEY_LENGTH =                   CSSM_CSP_BASE_CSP_ERROR + 68,
+       CSSMERR_CSP_MISSING_ATTR_KEY_LENGTH =                   CSSM_CSP_BASE_CSP_ERROR + 69,
+       CSSMERR_CSP_INVALID_ATTR_BLOCK_SIZE =                   CSSM_CSP_BASE_CSP_ERROR + 70,
+       CSSMERR_CSP_MISSING_ATTR_BLOCK_SIZE =                   CSSM_CSP_BASE_CSP_ERROR + 71,
+       CSSMERR_CSP_INVALID_ATTR_OUTPUT_SIZE =                  CSSM_CSP_BASE_CSP_ERROR + 100,
+       CSSMERR_CSP_MISSING_ATTR_OUTPUT_SIZE =                  CSSM_CSP_BASE_CSP_ERROR + 101,
+       CSSMERR_CSP_INVALID_ATTR_ROUNDS =                               CSSM_CSP_BASE_CSP_ERROR + 102,
+       CSSMERR_CSP_MISSING_ATTR_ROUNDS =                               CSSM_CSP_BASE_CSP_ERROR + 103,
+       CSSMERR_CSP_INVALID_ATTR_ALG_PARAMS =                   CSSM_CSP_BASE_CSP_ERROR + 104,
+       CSSMERR_CSP_MISSING_ATTR_ALG_PARAMS =                   CSSM_CSP_BASE_CSP_ERROR + 105,
+       CSSMERR_CSP_INVALID_ATTR_LABEL =                                CSSM_CSP_BASE_CSP_ERROR + 106,
+       CSSMERR_CSP_MISSING_ATTR_LABEL =                                CSSM_CSP_BASE_CSP_ERROR + 107,
+       CSSMERR_CSP_INVALID_ATTR_KEY_TYPE =                     CSSM_CSP_BASE_CSP_ERROR + 108,
+       CSSMERR_CSP_MISSING_ATTR_KEY_TYPE =                     CSSM_CSP_BASE_CSP_ERROR + 109,
+       CSSMERR_CSP_INVALID_ATTR_MODE =                                 CSSM_CSP_BASE_CSP_ERROR + 110,
+       CSSMERR_CSP_MISSING_ATTR_MODE =                                 CSSM_CSP_BASE_CSP_ERROR + 111,
+       CSSMERR_CSP_INVALID_ATTR_EFFECTIVE_BITS =               CSSM_CSP_BASE_CSP_ERROR + 112,
+       CSSMERR_CSP_MISSING_ATTR_EFFECTIVE_BITS =               CSSM_CSP_BASE_CSP_ERROR + 113,
+       CSSMERR_CSP_INVALID_ATTR_START_DATE =                   CSSM_CSP_BASE_CSP_ERROR + 114,
+       CSSMERR_CSP_MISSING_ATTR_START_DATE =                   CSSM_CSP_BASE_CSP_ERROR + 115,
+       CSSMERR_CSP_INVALID_ATTR_END_DATE =                     CSSM_CSP_BASE_CSP_ERROR + 116,
+       CSSMERR_CSP_MISSING_ATTR_END_DATE =                     CSSM_CSP_BASE_CSP_ERROR + 117,
+       CSSMERR_CSP_INVALID_ATTR_VERSION =                              CSSM_CSP_BASE_CSP_ERROR + 118,
+       CSSMERR_CSP_MISSING_ATTR_VERSION =                              CSSM_CSP_BASE_CSP_ERROR + 119,
+       CSSMERR_CSP_INVALID_ATTR_PRIME =                                CSSM_CSP_BASE_CSP_ERROR + 120,
+       CSSMERR_CSP_MISSING_ATTR_PRIME =                                CSSM_CSP_BASE_CSP_ERROR + 121,
+       CSSMERR_CSP_INVALID_ATTR_BASE =                                 CSSM_CSP_BASE_CSP_ERROR + 122,
+       CSSMERR_CSP_MISSING_ATTR_BASE =                                 CSSM_CSP_BASE_CSP_ERROR + 123,
+       CSSMERR_CSP_INVALID_ATTR_SUBPRIME =                     CSSM_CSP_BASE_CSP_ERROR + 124,
+       CSSMERR_CSP_MISSING_ATTR_SUBPRIME =                     CSSM_CSP_BASE_CSP_ERROR + 125,
+       CSSMERR_CSP_INVALID_ATTR_ITERATION_COUNT =              CSSM_CSP_BASE_CSP_ERROR + 126,
+       CSSMERR_CSP_MISSING_ATTR_ITERATION_COUNT =              CSSM_CSP_BASE_CSP_ERROR + 127,
+       CSSMERR_CSP_INVALID_ATTR_DL_DB_HANDLE =                 CSSM_CSP_BASE_CSP_ERROR + 128,
+       CSSMERR_CSP_MISSING_ATTR_DL_DB_HANDLE =                 CSSM_CSP_BASE_CSP_ERROR + 129,
+       CSSMERR_CSP_INVALID_ATTR_ACCESS_CREDENTIALS =   CSSM_CSP_BASE_CSP_ERROR + 130,
+       CSSMERR_CSP_MISSING_ATTR_ACCESS_CREDENTIALS =   CSSM_CSP_BASE_CSP_ERROR + 131,
+       CSSMERR_CSP_INVALID_ATTR_PUBLIC_KEY_FORMAT =    CSSM_CSP_BASE_CSP_ERROR + 132,
+       CSSMERR_CSP_MISSING_ATTR_PUBLIC_KEY_FORMAT =    CSSM_CSP_BASE_CSP_ERROR + 133,
+       CSSMERR_CSP_INVALID_ATTR_PRIVATE_KEY_FORMAT =   CSSM_CSP_BASE_CSP_ERROR + 134,
+       CSSMERR_CSP_MISSING_ATTR_PRIVATE_KEY_FORMAT =   CSSM_CSP_BASE_CSP_ERROR + 135,
+       CSSMERR_CSP_INVALID_ATTR_SYMMETRIC_KEY_FORMAT = CSSM_CSP_BASE_CSP_ERROR + 136,
+       CSSMERR_CSP_MISSING_ATTR_SYMMETRIC_KEY_FORMAT = CSSM_CSP_BASE_CSP_ERROR + 137,
+       CSSMERR_CSP_INVALID_ATTR_WRAPPED_KEY_FORMAT =   CSSM_CSP_BASE_CSP_ERROR + 138,
+       CSSMERR_CSP_MISSING_ATTR_WRAPPED_KEY_FORMAT =   CSSM_CSP_BASE_CSP_ERROR + 139,
+
+       /* CSP Staged Cryptographic API Error Values. */
+       CSSMERR_CSP_STAGED_OPERATION_IN_PROGRESS =              CSSM_CSP_BASE_CSP_ERROR + 72,
+       CSSMERR_CSP_STAGED_OPERATION_NOT_STARTED =              CSSM_CSP_BASE_CSP_ERROR + 73,
+       CSSMERR_CSP_VERIFY_FAILED =                                             CSSM_CSP_BASE_CSP_ERROR + 74,
+       CSSMERR_CSP_INVALID_SIGNATURE =                                 CSSM_CSP_BASE_CSP_ERROR + 75,
+       CSSMERR_CSP_QUERY_SIZE_UNKNOWN =                                CSSM_CSP_BASE_CSP_ERROR + 76,
+       CSSMERR_CSP_BLOCK_SIZE_MISMATCH =                               CSSM_CSP_BASE_CSP_ERROR + 77,
+       CSSMERR_CSP_PRIVATE_KEY_NOT_FOUND =                             CSSM_CSP_BASE_CSP_ERROR + 78,
+       CSSMERR_CSP_PUBLIC_KEY_INCONSISTENT =                   CSSM_CSP_BASE_CSP_ERROR + 79,
+       CSSMERR_CSP_DEVICE_VERIFY_FAILED =                              CSSM_CSP_BASE_CSP_ERROR + 80,
+       CSSMERR_CSP_INVALID_LOGIN_NAME =                                CSSM_CSP_BASE_CSP_ERROR + 81,
+       CSSMERR_CSP_ALREADY_LOGGED_IN =                                 CSSM_CSP_BASE_CSP_ERROR + 82,
+       CSSMERR_CSP_PRIVATE_KEY_ALREADY_EXISTS =                CSSM_CSP_BASE_CSP_ERROR + 83,
+       CSSMERR_CSP_KEY_LABEL_ALREADY_EXISTS =                  CSSM_CSP_BASE_CSP_ERROR + 84,
+       CSSMERR_CSP_INVALID_DIGEST_ALGORITHM =                  CSSM_CSP_BASE_CSP_ERROR + 85,
+       CSSMERR_CSP_CRYPTO_DATA_CALLBACK_FAILED =               CSSM_CSP_BASE_CSP_ERROR + 86
+};
+
+
+/* TP Error Values Derived from Common Error Codes For All Module Types. */
+enum {
+       CSSMERR_TP_INTERNAL_ERROR =
+               CSSM_TP_BASE_ERROR + CSSM_ERRCODE_INTERNAL_ERROR,
+       CSSMERR_TP_MEMORY_ERROR =
+               CSSM_TP_BASE_ERROR + CSSM_ERRCODE_MEMORY_ERROR,
+       CSSMERR_TP_MDS_ERROR =
+               CSSM_TP_BASE_ERROR + CSSM_ERRCODE_MDS_ERROR,
+       CSSMERR_TP_INVALID_POINTER =
+               CSSM_TP_BASE_ERROR + CSSM_ERRCODE_INVALID_POINTER,
+       CSSMERR_TP_INVALID_INPUT_POINTER =
+               CSSM_TP_BASE_ERROR + CSSM_ERRCODE_INVALID_INPUT_POINTER,
+       CSSMERR_TP_INVALID_OUTPUT_POINTER =
+               CSSM_TP_BASE_ERROR + CSSM_ERRCODE_INVALID_OUTPUT_POINTER,
+       CSSMERR_TP_FUNCTION_NOT_IMPLEMENTED =
+               CSSM_TP_BASE_ERROR + CSSM_ERRCODE_FUNCTION_NOT_IMPLEMENTED,
+       CSSMERR_TP_SELF_CHECK_FAILED =
+               CSSM_TP_BASE_ERROR + CSSM_ERRCODE_SELF_CHECK_FAILED,
+       CSSMERR_TP_OS_ACCESS_DENIED =
+               CSSM_TP_BASE_ERROR + CSSM_ERRCODE_OS_ACCESS_DENIED,
+       CSSMERR_TP_FUNCTION_FAILED =
+               CSSM_TP_BASE_ERROR + CSSM_ERRCODE_FUNCTION_FAILED,
+       CSSMERR_TP_INVALID_CONTEXT_HANDLE =
+               CSSM_TP_BASE_ERROR + CSSM_ERRCODE_INVALID_CONTEXT_HANDLE,
+       CSSMERR_TP_INVALID_DATA =
+               CSSM_TP_BASE_ERROR + CSSM_ERRCODE_INVALID_DATA,
+       CSSMERR_TP_INVALID_DB_LIST =
+               CSSM_TP_BASE_ERROR + CSSM_ERRCODE_INVALID_DB_LIST,
+       CSSMERR_TP_INVALID_CERTGROUP_POINTER =
+               CSSM_TP_BASE_ERROR + CSSM_ERRCODE_INVALID_CERTGROUP_POINTER,
+       CSSMERR_TP_INVALID_CERT_POINTER =
+               CSSM_TP_BASE_ERROR + CSSM_ERRCODE_INVALID_CERT_POINTER,
+       CSSMERR_TP_INVALID_CRL_POINTER =
+               CSSM_TP_BASE_ERROR + CSSM_ERRCODE_INVALID_CRL_POINTER,
+       CSSMERR_TP_INVALID_FIELD_POINTER =
+               CSSM_TP_BASE_ERROR + CSSM_ERRCODE_INVALID_FIELD_POINTER,
+       CSSMERR_TP_INVALID_NETWORK_ADDR =
+               CSSM_TP_BASE_ERROR + CSSM_ERRCODE_INVALID_NETWORK_ADDR,
+       CSSMERR_TP_CRL_ALREADY_SIGNED =
+               CSSM_TP_BASE_ERROR + CSSM_ERRCODE_CRL_ALREADY_SIGNED,
+       CSSMERR_TP_INVALID_NUMBER_OF_FIELDS =
+               CSSM_TP_BASE_ERROR + CSSM_ERRCODE_INVALID_NUMBER_OF_FIELDS,
+       CSSMERR_TP_VERIFICATION_FAILURE =
+               CSSM_TP_BASE_ERROR + CSSM_ERRCODE_VERIFICATION_FAILURE,
+       CSSMERR_TP_INVALID_DB_HANDLE =
+               CSSM_TP_BASE_ERROR + CSSM_ERRCODE_INVALID_DB_HANDLE,
+       CSSMERR_TP_UNKNOWN_FORMAT =
+               CSSM_TP_BASE_ERROR + CSSM_ERRCODE_UNKNOWN_FORMAT,
+       CSSMERR_TP_UNKNOWN_TAG =
+               CSSM_TP_BASE_ERROR + CSSM_ERRCODE_UNKNOWN_TAG,
+       CSSMERR_TP_INVALID_PASSTHROUGH_ID =
+               CSSM_TP_BASE_ERROR + CSSM_ERRCODE_INVALID_PASSTHROUGH_ID,
+       CSSMERR_TP_INVALID_CSP_HANDLE =
+               CSSM_TP_BASE_ERROR + CSSM_ERRCODE_INVALID_CSP_HANDLE,
+       CSSMERR_TP_INVALID_DL_HANDLE =
+               CSSM_TP_BASE_ERROR + CSSM_ERRCODE_INVALID_DL_HANDLE,
+       CSSMERR_TP_INVALID_CL_HANDLE =
+               CSSM_TP_BASE_ERROR + CSSM_ERRCODE_INVALID_CL_HANDLE,
+       CSSMERR_TP_INVALID_DB_LIST_POINTER =
+               CSSM_TP_BASE_ERROR + CSSM_ERRCODE_INVALID_DB_LIST_POINTER
+};
+
+/* TP Module-Specific Error Values */
+enum {
+       CSSM_TP_BASE_TP_ERROR =
+               CSSM_TP_BASE_ERROR + CSSM_ERRORCODE_COMMON_EXTENT,
+       CSSMERR_TP_INVALID_CALLERAUTH_CONTEXT_POINTER = CSSM_TP_BASE_TP_ERROR + 1,
+       CSSMERR_TP_INVALID_IDENTIFIER_POINTER =                 CSSM_TP_BASE_TP_ERROR + 2,
+       CSSMERR_TP_INVALID_KEYCACHE_HANDLE =                    CSSM_TP_BASE_TP_ERROR + 3,
+       CSSMERR_TP_INVALID_CERTGROUP =                                  CSSM_TP_BASE_TP_ERROR + 4,
+       CSSMERR_TP_INVALID_CRLGROUP =                                   CSSM_TP_BASE_TP_ERROR + 5,
+       CSSMERR_TP_INVALID_CRLGROUP_POINTER =                   CSSM_TP_BASE_TP_ERROR + 6,
+       CSSMERR_TP_AUTHENTICATION_FAILED =                              CSSM_TP_BASE_TP_ERROR + 7,
+       CSSMERR_TP_CERTGROUP_INCOMPLETE =                               CSSM_TP_BASE_TP_ERROR + 8,
+       CSSMERR_TP_CERTIFICATE_CANT_OPERATE =                   CSSM_TP_BASE_TP_ERROR + 9,
+       CSSMERR_TP_CERT_EXPIRED =                                               CSSM_TP_BASE_TP_ERROR + 10,
+       CSSMERR_TP_CERT_NOT_VALID_YET =                                 CSSM_TP_BASE_TP_ERROR + 11,
+       CSSMERR_TP_CERT_REVOKED =                                               CSSM_TP_BASE_TP_ERROR + 12,
+       CSSMERR_TP_CERT_SUSPENDED =                                             CSSM_TP_BASE_TP_ERROR + 13,
+       CSSMERR_TP_INSUFFICIENT_CREDENTIALS =                   CSSM_TP_BASE_TP_ERROR + 14,
+       CSSMERR_TP_INVALID_ACTION =                                             CSSM_TP_BASE_TP_ERROR + 15,
+       CSSMERR_TP_INVALID_ACTION_DATA =                                CSSM_TP_BASE_TP_ERROR + 16,
+       CSSMERR_TP_INVALID_ANCHOR_CERT =                                CSSM_TP_BASE_TP_ERROR + 18,
+       CSSMERR_TP_INVALID_AUTHORITY =                                  CSSM_TP_BASE_TP_ERROR + 19,
+       CSSMERR_TP_VERIFY_ACTION_FAILED =                               CSSM_TP_BASE_TP_ERROR + 20,
+       CSSMERR_TP_INVALID_CERTIFICATE =                                CSSM_TP_BASE_TP_ERROR + 21,
+       CSSMERR_TP_INVALID_CERT_AUTHORITY =                             CSSM_TP_BASE_TP_ERROR + 22,
+       CSSMERR_TP_INVALID_CRL_AUTHORITY =                              CSSM_TP_BASE_TP_ERROR + 23,
+       CSSMERR_TP_INVALID_CRL_ENCODING =                               CSSM_TP_BASE_TP_ERROR + 24,
+       CSSMERR_TP_INVALID_CRL_TYPE =                                   CSSM_TP_BASE_TP_ERROR + 25,
+       CSSMERR_TP_INVALID_CRL =                                                CSSM_TP_BASE_TP_ERROR + 26,
+       CSSMERR_TP_INVALID_FORM_TYPE =                                  CSSM_TP_BASE_TP_ERROR + 27,
+       CSSMERR_TP_INVALID_ID =                                                 CSSM_TP_BASE_TP_ERROR + 28,
+       CSSMERR_TP_INVALID_IDENTIFIER =                                 CSSM_TP_BASE_TP_ERROR + 29,
+       CSSMERR_TP_INVALID_INDEX =                                              CSSM_TP_BASE_TP_ERROR + 30,
+       CSSMERR_TP_INVALID_NAME =                                               CSSM_TP_BASE_TP_ERROR + 31,
+       CSSMERR_TP_INVALID_POLICY_IDENTIFIERS =                 CSSM_TP_BASE_TP_ERROR + 32,
+       CSSMERR_TP_INVALID_TIMESTRING =                                 CSSM_TP_BASE_TP_ERROR + 33,
+       CSSMERR_TP_INVALID_REASON =                                             CSSM_TP_BASE_TP_ERROR + 34,
+       CSSMERR_TP_INVALID_REQUEST_INPUTS =                             CSSM_TP_BASE_TP_ERROR + 35,
+       CSSMERR_TP_INVALID_RESPONSE_VECTOR =                    CSSM_TP_BASE_TP_ERROR + 36,
+       CSSMERR_TP_INVALID_SIGNATURE =                                  CSSM_TP_BASE_TP_ERROR + 37,
+       CSSMERR_TP_INVALID_STOP_ON_POLICY =                             CSSM_TP_BASE_TP_ERROR + 38,
+       CSSMERR_TP_INVALID_CALLBACK =                                   CSSM_TP_BASE_TP_ERROR + 39,
+       CSSMERR_TP_INVALID_TUPLE =                                              CSSM_TP_BASE_TP_ERROR + 40,
+       CSSMERR_TP_NOT_SIGNER =                                                 CSSM_TP_BASE_TP_ERROR + 41,
+       CSSMERR_TP_NOT_TRUSTED =                                                CSSM_TP_BASE_TP_ERROR + 42,
+       CSSMERR_TP_NO_DEFAULT_AUTHORITY =                               CSSM_TP_BASE_TP_ERROR + 43,
+       CSSMERR_TP_REJECTED_FORM =                                              CSSM_TP_BASE_TP_ERROR + 44,
+       CSSMERR_TP_REQUEST_LOST =                                               CSSM_TP_BASE_TP_ERROR + 45,
+       CSSMERR_TP_REQUEST_REJECTED =                                   CSSM_TP_BASE_TP_ERROR + 46,
+       CSSMERR_TP_UNSUPPORTED_ADDR_TYPE =                              CSSM_TP_BASE_TP_ERROR + 47,
+       CSSMERR_TP_UNSUPPORTED_SERVICE =                                CSSM_TP_BASE_TP_ERROR + 48,
+       CSSMERR_TP_INVALID_TUPLEGROUP_POINTER =                 CSSM_TP_BASE_TP_ERROR + 49,
+       CSSMERR_TP_INVALID_TUPLEGROUP =                                 CSSM_TP_BASE_TP_ERROR + 50
+};
+
+/* AC Error Values Derived from Common Error Codes For All Module Types. */
+enum {
+       CSSMERR_AC_INTERNAL_ERROR =
+               CSSM_AC_BASE_ERROR + CSSM_ERRCODE_INTERNAL_ERROR,
+       CSSMERR_AC_MEMORY_ERROR =
+               CSSM_AC_BASE_ERROR + CSSM_ERRCODE_MEMORY_ERROR,
+       CSSMERR_AC_MDS_ERROR =
+               CSSM_AC_BASE_ERROR + CSSM_ERRCODE_MDS_ERROR,
+       CSSMERR_AC_INVALID_POINTER =
+               CSSM_AC_BASE_ERROR + CSSM_ERRCODE_INVALID_POINTER,
+       CSSMERR_AC_INVALID_INPUT_POINTER =
+               CSSM_AC_BASE_ERROR + CSSM_ERRCODE_INVALID_INPUT_POINTER,
+       CSSMERR_AC_INVALID_OUTPUT_POINTER =
+               CSSM_AC_BASE_ERROR + CSSM_ERRCODE_INVALID_OUTPUT_POINTER,
+       CSSMERR_AC_FUNCTION_NOT_IMPLEMENTED =
+               CSSM_AC_BASE_ERROR + CSSM_ERRCODE_FUNCTION_NOT_IMPLEMENTED,
+       CSSMERR_AC_SELF_CHECK_FAILED =
+               CSSM_AC_BASE_ERROR + CSSM_ERRCODE_SELF_CHECK_FAILED,
+       CSSMERR_AC_OS_ACCESS_DENIED =
+               CSSM_AC_BASE_ERROR + CSSM_ERRCODE_OS_ACCESS_DENIED,
+       CSSMERR_AC_FUNCTION_FAILED =
+               CSSM_AC_BASE_ERROR + CSSM_ERRCODE_FUNCTION_FAILED,
+       CSSMERR_AC_INVALID_CONTEXT_HANDLE =
+               CSSM_AC_BASE_ERROR + CSSM_ERRCODE_INVALID_CONTEXT_HANDLE,
+       CSSMERR_AC_INVALID_DATA =
+               CSSM_AC_BASE_ERROR + CSSM_ERRCODE_INVALID_DATA,
+       CSSMERR_AC_INVALID_DB_LIST =
+               CSSM_AC_BASE_ERROR + CSSM_ERRCODE_INVALID_DB_LIST,
+       CSSMERR_AC_INVALID_PASSTHROUGH_ID =
+               CSSM_AC_BASE_ERROR + CSSM_ERRCODE_INVALID_PASSTHROUGH_ID,
+       CSSMERR_AC_INVALID_DL_HANDLE =
+               CSSM_AC_BASE_ERROR + CSSM_ERRCODE_INVALID_DL_HANDLE,
+       CSSMERR_AC_INVALID_CL_HANDLE =
+               CSSM_AC_BASE_ERROR + CSSM_ERRCODE_INVALID_CL_HANDLE,
+       CSSMERR_AC_INVALID_TP_HANDLE =
+               CSSM_AC_BASE_ERROR + CSSM_ERRCODE_INVALID_TP_HANDLE,
+       CSSMERR_AC_INVALID_DB_HANDLE =
+               CSSM_AC_BASE_ERROR + CSSM_ERRCODE_INVALID_DB_HANDLE,
+       CSSMERR_AC_INVALID_DB_LIST_POINTER =
+               CSSM_AC_BASE_ERROR + CSSM_ERRCODE_INVALID_DB_LIST_POINTER
+};
+
+/* AC Module-Specific Error Values */
+enum {
+       CSSM_AC_BASE_AC_ERROR =
+               CSSM_AC_BASE_ERROR + CSSM_ERRORCODE_COMMON_EXTENT,
+       CSSMERR_AC_INVALID_BASE_ACLS =                                  CSSM_AC_BASE_AC_ERROR + 1,
+       CSSMERR_AC_INVALID_TUPLE_CREDENTIALS =                  CSSM_AC_BASE_AC_ERROR + 2,
+       CSSMERR_AC_INVALID_ENCODING =                                   CSSM_AC_BASE_AC_ERROR + 3,
+       CSSMERR_AC_INVALID_VALIDITY_PERIOD =                    CSSM_AC_BASE_AC_ERROR + 4,
+       CSSMERR_AC_INVALID_REQUESTOR =                                  CSSM_AC_BASE_AC_ERROR + 5,
+       CSSMERR_AC_INVALID_REQUEST_DESCRIPTOR =                 CSSM_AC_BASE_AC_ERROR + 6
+};
+
+/* CL Error Values Derived from Common Error Codes For All Module Types. */
+enum {
+       CSSMERR_CL_INTERNAL_ERROR =
+               CSSM_CL_BASE_ERROR + CSSM_ERRCODE_INTERNAL_ERROR,
+       CSSMERR_CL_MEMORY_ERROR =
+               CSSM_CL_BASE_ERROR + CSSM_ERRCODE_MEMORY_ERROR,
+       CSSMERR_CL_MDS_ERROR =
+               CSSM_CL_BASE_ERROR + CSSM_ERRCODE_MDS_ERROR,
+       CSSMERR_CL_INVALID_POINTER =
+               CSSM_CL_BASE_ERROR + CSSM_ERRCODE_INVALID_POINTER,
+       CSSMERR_CL_INVALID_INPUT_POINTER =
+               CSSM_CL_BASE_ERROR + CSSM_ERRCODE_INVALID_INPUT_POINTER,
+       CSSMERR_CL_INVALID_OUTPUT_POINTER =
+               CSSM_CL_BASE_ERROR + CSSM_ERRCODE_INVALID_OUTPUT_POINTER,
+       CSSMERR_CL_FUNCTION_NOT_IMPLEMENTED =
+               CSSM_CL_BASE_ERROR + CSSM_ERRCODE_FUNCTION_NOT_IMPLEMENTED,
+       CSSMERR_CL_SELF_CHECK_FAILED =
+               CSSM_CL_BASE_ERROR + CSSM_ERRCODE_SELF_CHECK_FAILED,
+       CSSMERR_CL_OS_ACCESS_DENIED =
+               CSSM_CL_BASE_ERROR + CSSM_ERRCODE_OS_ACCESS_DENIED,
+       CSSMERR_CL_FUNCTION_FAILED =
+               CSSM_CL_BASE_ERROR + CSSM_ERRCODE_FUNCTION_FAILED,
+       CSSMERR_CL_INVALID_CONTEXT_HANDLE =
+               CSSM_CL_BASE_ERROR + CSSM_ERRCODE_INVALID_CONTEXT_HANDLE,
+       CSSMERR_CL_INVALID_CERTGROUP_POINTER =
+               CSSM_CL_BASE_ERROR + CSSM_ERRCODE_INVALID_CERTGROUP_POINTER,
+       CSSMERR_CL_INVALID_CERT_POINTER =
+               CSSM_CL_BASE_ERROR + CSSM_ERRCODE_INVALID_CERT_POINTER,
+       CSSMERR_CL_INVALID_CRL_POINTER =
+               CSSM_CL_BASE_ERROR + CSSM_ERRCODE_INVALID_CRL_POINTER,
+       CSSMERR_CL_INVALID_FIELD_POINTER =
+               CSSM_CL_BASE_ERROR + CSSM_ERRCODE_INVALID_FIELD_POINTER,
+       CSSMERR_CL_INVALID_DATA =
+               CSSM_CL_BASE_ERROR + CSSM_ERRCODE_INVALID_DATA,
+       CSSMERR_CL_CRL_ALREADY_SIGNED =
+               CSSM_CL_BASE_ERROR + CSSM_ERRCODE_CRL_ALREADY_SIGNED,
+       CSSMERR_CL_INVALID_NUMBER_OF_FIELDS =
+               CSSM_CL_BASE_ERROR + CSSM_ERRCODE_INVALID_NUMBER_OF_FIELDS,
+       CSSMERR_CL_VERIFICATION_FAILURE =
+               CSSM_CL_BASE_ERROR + CSSM_ERRCODE_VERIFICATION_FAILURE,
+       CSSMERR_CL_UNKNOWN_FORMAT =
+               CSSM_CL_BASE_ERROR + CSSM_ERRCODE_UNKNOWN_FORMAT,
+       CSSMERR_CL_UNKNOWN_TAG =
+               CSSM_CL_BASE_ERROR + CSSM_ERRCODE_UNKNOWN_TAG,
+       CSSMERR_CL_INVALID_PASSTHROUGH_ID =
+               CSSM_CL_BASE_ERROR + CSSM_ERRCODE_INVALID_PASSTHROUGH_ID
+};
+
+/* CL Module-Specific Error Values */
+enum {
+       CSSM_CL_BASE_CL_ERROR =
+               CSSM_CL_BASE_ERROR + CSSM_ERRORCODE_COMMON_EXTENT,
+       CSSMERR_CL_INVALID_BUNDLE_POINTER =                             CSSM_CL_BASE_CL_ERROR + 1,
+       CSSMERR_CL_INVALID_CACHE_HANDLE =                               CSSM_CL_BASE_CL_ERROR + 2,
+       CSSMERR_CL_INVALID_RESULTS_HANDLE =                             CSSM_CL_BASE_CL_ERROR + 3,
+       CSSMERR_CL_INVALID_BUNDLE_INFO =                                CSSM_CL_BASE_CL_ERROR + 4,
+       CSSMERR_CL_INVALID_CRL_INDEX =                                  CSSM_CL_BASE_CL_ERROR + 5,
+       CSSMERR_CL_INVALID_SCOPE =                                              CSSM_CL_BASE_CL_ERROR + 6,
+       CSSMERR_CL_NO_FIELD_VALUES =                                    CSSM_CL_BASE_CL_ERROR + 7,
+       CSSMERR_CL_SCOPE_NOT_SUPPORTED =                                CSSM_CL_BASE_CL_ERROR + 8
+};
+
+/* DL Error Values Derived from Common Error Codes For All Module Types. */
+enum {
+       CSSMERR_DL_INTERNAL_ERROR =
+               CSSM_DL_BASE_ERROR + CSSM_ERRCODE_INTERNAL_ERROR,
+       CSSMERR_DL_MEMORY_ERROR =
+               CSSM_DL_BASE_ERROR + CSSM_ERRCODE_MEMORY_ERROR,
+       CSSMERR_DL_MDS_ERROR =
+               CSSM_DL_BASE_ERROR + CSSM_ERRCODE_MDS_ERROR,
+       CSSMERR_DL_INVALID_POINTER =
+               CSSM_DL_BASE_ERROR + CSSM_ERRCODE_INVALID_POINTER,
+       CSSMERR_DL_INVALID_INPUT_POINTER =
+               CSSM_DL_BASE_ERROR + CSSM_ERRCODE_INVALID_INPUT_POINTER,
+       CSSMERR_DL_INVALID_OUTPUT_POINTER =
+               CSSM_DL_BASE_ERROR + CSSM_ERRCODE_INVALID_OUTPUT_POINTER,
+       CSSMERR_DL_FUNCTION_NOT_IMPLEMENTED =
+               CSSM_DL_BASE_ERROR + CSSM_ERRCODE_FUNCTION_NOT_IMPLEMENTED,
+       CSSMERR_DL_SELF_CHECK_FAILED =
+               CSSM_DL_BASE_ERROR + CSSM_ERRCODE_SELF_CHECK_FAILED,
+       CSSMERR_DL_OS_ACCESS_DENIED =
+               CSSM_DL_BASE_ERROR + CSSM_ERRCODE_OS_ACCESS_DENIED,
+       CSSMERR_DL_FUNCTION_FAILED =
+               CSSM_DL_BASE_ERROR + CSSM_ERRCODE_FUNCTION_FAILED,
+       CSSMERR_DL_INVALID_CSP_HANDLE =
+               CSSM_DL_BASE_ERROR + CSSM_ERRCODE_INVALID_CSP_HANDLE,
+       CSSMERR_DL_INVALID_DL_HANDLE =
+               CSSM_DL_BASE_ERROR + CSSM_ERRCODE_INVALID_DL_HANDLE,
+       CSSMERR_DL_INVALID_CL_HANDLE =
+               CSSM_DL_BASE_ERROR + CSSM_ERRCODE_INVALID_CL_HANDLE,
+       CSSMERR_DL_INVALID_DB_LIST_POINTER =
+               CSSM_DL_BASE_ERROR + CSSM_ERRCODE_INVALID_DB_LIST_POINTER
+};
+
+/* DL Error Values Derived from ACL-based Error Codes. */
+enum {
+       CSSMERR_DL_OPERATION_AUTH_DENIED =
+               CSSM_DL_BASE_ERROR + CSSM_ERRCODE_OPERATION_AUTH_DENIED,
+       CSSMERR_DL_OBJECT_USE_AUTH_DENIED =
+               CSSM_DL_BASE_ERROR + CSSM_ERRCODE_OBJECT_USE_AUTH_DENIED,
+       CSSMERR_DL_OBJECT_MANIP_AUTH_DENIED =
+               CSSM_DL_BASE_ERROR + CSSM_ERRCODE_OBJECT_MANIP_AUTH_DENIED,
+       CSSMERR_DL_OBJECT_ACL_NOT_SUPPORTED =
+               CSSM_DL_BASE_ERROR + CSSM_ERRCODE_OBJECT_ACL_NOT_SUPPORTED,
+       CSSMERR_DL_OBJECT_ACL_REQUIRED =
+               CSSM_DL_BASE_ERROR + CSSM_ERRCODE_OBJECT_ACL_REQUIRED,
+       CSSMERR_DL_INVALID_ACCESS_CREDENTIALS =
+               CSSM_DL_BASE_ERROR + CSSM_ERRCODE_INVALID_ACCESS_CREDENTIALS,
+       CSSMERR_DL_INVALID_ACL_BASE_CERTS =
+               CSSM_DL_BASE_ERROR + CSSM_ERRCODE_INVALID_ACL_BASE_CERTS,
+       CSSMERR_DL_ACL_BASE_CERTS_NOT_SUPPORTED =
+               CSSM_DL_BASE_ERROR + CSSM_ERRCODE_ACL_BASE_CERTS_NOT_SUPPORTED,
+       CSSMERR_DL_INVALID_SAMPLE_VALUE =
+               CSSM_DL_BASE_ERROR + CSSM_ERRCODE_INVALID_SAMPLE_VALUE,
+       CSSMERR_DL_SAMPLE_VALUE_NOT_SUPPORTED =
+               CSSM_DL_BASE_ERROR + CSSM_ERRCODE_SAMPLE_VALUE_NOT_SUPPORTED,
+       CSSMERR_DL_INVALID_ACL_SUBJECT_VALUE =
+               CSSM_DL_BASE_ERROR + CSSM_ERRCODE_INVALID_ACL_SUBJECT_VALUE,
+       CSSMERR_DL_ACL_SUBJECT_TYPE_NOT_SUPPORTED =
+               CSSM_DL_BASE_ERROR + CSSM_ERRCODE_ACL_SUBJECT_TYPE_NOT_SUPPORTED,
+       CSSMERR_DL_INVALID_ACL_CHALLENGE_CALLBACK =
+               CSSM_DL_BASE_ERROR + CSSM_ERRCODE_INVALID_ACL_CHALLENGE_CALLBACK,
+       CSSMERR_DL_ACL_CHALLENGE_CALLBACK_FAILED =
+               CSSM_DL_BASE_ERROR + CSSM_ERRCODE_ACL_CHALLENGE_CALLBACK_FAILED,
+       CSSMERR_DL_INVALID_ACL_ENTRY_TAG =
+               CSSM_DL_BASE_ERROR + CSSM_ERRCODE_INVALID_ACL_ENTRY_TAG,
+       CSSMERR_DL_ACL_ENTRY_TAG_NOT_FOUND =
+               CSSM_DL_BASE_ERROR + CSSM_ERRCODE_ACL_ENTRY_TAG_NOT_FOUND,
+       CSSMERR_DL_INVALID_ACL_EDIT_MODE =
+               CSSM_DL_BASE_ERROR + CSSM_ERRCODE_INVALID_ACL_EDIT_MODE,
+       CSSMERR_DL_ACL_CHANGE_FAILED =
+               CSSM_DL_BASE_ERROR + CSSM_ERRCODE_ACL_CHANGE_FAILED,
+       CSSMERR_DL_INVALID_NEW_ACL_ENTRY =
+               CSSM_DL_BASE_ERROR + CSSM_ERRCODE_INVALID_NEW_ACL_ENTRY,
+       CSSMERR_DL_INVALID_NEW_ACL_OWNER =
+               CSSM_DL_BASE_ERROR + CSSM_ERRCODE_INVALID_NEW_ACL_OWNER,
+       CSSMERR_DL_ACL_DELETE_FAILED =
+               CSSM_DL_BASE_ERROR + CSSM_ERRCODE_ACL_DELETE_FAILED,
+       CSSMERR_DL_ACL_REPLACE_FAILED =
+               CSSM_DL_BASE_ERROR + CSSM_ERRCODE_ACL_REPLACE_FAILED,
+       CSSMERR_DL_ACL_ADD_FAILED =
+               CSSM_DL_BASE_ERROR + CSSM_ERRCODE_ACL_ADD_FAILED
+};
+
+/* DL Error Values for Specific Data Types. */
+enum {
+       CSSMERR_DL_INVALID_DB_HANDLE =
+               CSSM_DL_BASE_ERROR + CSSM_ERRCODE_INVALID_DB_HANDLE,
+       CSSMERR_DL_INVALID_PASSTHROUGH_ID =
+               CSSM_DL_BASE_ERROR + CSSM_ERRCODE_INVALID_PASSTHROUGH_ID,
+       CSSMERR_DL_INVALID_NETWORK_ADDR =
+               CSSM_DL_BASE_ERROR + CSSM_ERRCODE_INVALID_NETWORK_ADDR
+};
+
+/* DL Module-Specific Error Values */
+enum {
+       CSSM_DL_BASE_DL_ERROR =
+               CSSM_DL_BASE_ERROR + CSSM_ERRORCODE_COMMON_EXTENT,
+       CSSMERR_DL_DATABASE_CORRUPT =                                   CSSM_DL_BASE_DL_ERROR + 1,
+       CSSMERR_DL_INVALID_RECORD_INDEX =                               CSSM_DL_BASE_DL_ERROR + 8,
+       CSSMERR_DL_INVALID_RECORDTYPE =                                 CSSM_DL_BASE_DL_ERROR + 9,
+       CSSMERR_DL_INVALID_FIELD_NAME =                                 CSSM_DL_BASE_DL_ERROR + 10,
+       CSSMERR_DL_UNSUPPORTED_FIELD_FORMAT =                   CSSM_DL_BASE_DL_ERROR + 11,
+       CSSMERR_DL_UNSUPPORTED_INDEX_INFO =                             CSSM_DL_BASE_DL_ERROR + 12,
+       CSSMERR_DL_UNSUPPORTED_LOCALITY =                               CSSM_DL_BASE_DL_ERROR + 13,
+       CSSMERR_DL_UNSUPPORTED_NUM_ATTRIBUTES =                 CSSM_DL_BASE_DL_ERROR + 14,
+       CSSMERR_DL_UNSUPPORTED_NUM_INDEXES =                    CSSM_DL_BASE_DL_ERROR + 15,
+       CSSMERR_DL_UNSUPPORTED_NUM_RECORDTYPES =                CSSM_DL_BASE_DL_ERROR + 16,
+       CSSMERR_DL_UNSUPPORTED_RECORDTYPE =                             CSSM_DL_BASE_DL_ERROR + 17,
+       CSSMERR_DL_FIELD_SPECIFIED_MULTIPLE =                   CSSM_DL_BASE_DL_ERROR + 18,
+       CSSMERR_DL_INCOMPATIBLE_FIELD_FORMAT =                  CSSM_DL_BASE_DL_ERROR + 19,
+       CSSMERR_DL_INVALID_PARSING_MODULE =                             CSSM_DL_BASE_DL_ERROR + 20,
+       CSSMERR_DL_INVALID_DB_NAME =                                    CSSM_DL_BASE_DL_ERROR + 22,
+       CSSMERR_DL_DATASTORE_DOESNOT_EXIST =                    CSSM_DL_BASE_DL_ERROR + 23,
+       CSSMERR_DL_DATASTORE_ALREADY_EXISTS =                   CSSM_DL_BASE_DL_ERROR + 24,
+       CSSMERR_DL_DB_LOCKED =                                                  CSSM_DL_BASE_DL_ERROR + 25,
+       CSSMERR_DL_DATASTORE_IS_OPEN =                                  CSSM_DL_BASE_DL_ERROR + 26,
+       CSSMERR_DL_RECORD_NOT_FOUND =                                   CSSM_DL_BASE_DL_ERROR + 27,
+       CSSMERR_DL_MISSING_VALUE =                                              CSSM_DL_BASE_DL_ERROR + 28,
+       CSSMERR_DL_UNSUPPORTED_QUERY =                                  CSSM_DL_BASE_DL_ERROR + 29,
+       CSSMERR_DL_UNSUPPORTED_QUERY_LIMITS =                   CSSM_DL_BASE_DL_ERROR + 30,
+       CSSMERR_DL_UNSUPPORTED_NUM_SELECTION_PREDS =    CSSM_DL_BASE_DL_ERROR + 31,
+       CSSMERR_DL_UNSUPPORTED_OPERATOR =                               CSSM_DL_BASE_DL_ERROR + 33,
+       CSSMERR_DL_INVALID_RESULTS_HANDLE =                             CSSM_DL_BASE_DL_ERROR + 34,
+       CSSMERR_DL_INVALID_DB_LOCATION =                                CSSM_DL_BASE_DL_ERROR + 35,
+       CSSMERR_DL_INVALID_ACCESS_REQUEST =                             CSSM_DL_BASE_DL_ERROR + 36,
+       CSSMERR_DL_INVALID_INDEX_INFO =                                 CSSM_DL_BASE_DL_ERROR + 37,
+       CSSMERR_DL_INVALID_SELECTION_TAG =                              CSSM_DL_BASE_DL_ERROR + 38,
+       CSSMERR_DL_INVALID_NEW_OWNER =                                  CSSM_DL_BASE_DL_ERROR + 39,
+       CSSMERR_DL_INVALID_RECORD_UID =                                 CSSM_DL_BASE_DL_ERROR + 40,
+       CSSMERR_DL_INVALID_UNIQUE_INDEX_DATA =                  CSSM_DL_BASE_DL_ERROR + 41,
+       CSSMERR_DL_INVALID_MODIFY_MODE =                                CSSM_DL_BASE_DL_ERROR + 42,
+       CSSMERR_DL_INVALID_OPEN_PARAMETERS =                    CSSM_DL_BASE_DL_ERROR + 43,
+       CSSMERR_DL_RECORD_MODIFIED =                                    CSSM_DL_BASE_DL_ERROR + 44,
+       CSSMERR_DL_ENDOFDATA =                                                  CSSM_DL_BASE_DL_ERROR + 45,
+       CSSMERR_DL_INVALID_QUERY =                                              CSSM_DL_BASE_DL_ERROR + 46,
+       CSSMERR_DL_INVALID_VALUE =                                              CSSM_DL_BASE_DL_ERROR + 47,
+       CSSMERR_DL_MULTIPLE_VALUES_UNSUPPORTED =                CSSM_DL_BASE_DL_ERROR + 48,
+       CSSMERR_DL_STALE_UNIQUE_RECORD =                                CSSM_DL_BASE_DL_ERROR + 49
+};
+
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _CSSMERR_H_ */