1/*
2 * Copyright (c) 1999-2002,2004 Apple Computer, Inc. All Rights Reserved.
3 *
4 * @APPLE_LICENSE_HEADER_START@
5 *
6 * This file contains Original Code and/or Modifications of Original Code
7 * as defined in and that are subject to the Apple Public Source License
8 * Version 2.0 (the 'License'). You may not use this file except in
9 * compliance with the License. Please obtain a copy of the License at
10 * http://www.opensource.apple.com/apsl/ and read it before using this
11 * file.
12 *
13 * The Original Code and all software distributed under the License are
14 * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
15 * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
16 * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
17 * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
18 * Please see the License for the specific language governing rights and
19 * limitations under the License.
20 *
21 * @APPLE_LICENSE_HEADER_END@
22 *
23 * cssmerr.h -- Error Code Definitions for CSSM
24 */
25
26#ifndef _CSSMERR_H_
27#define _CSSMERR_H_  1
28
29#ifdef __cplusplus
30extern "C" {
31#endif
32
33
34/*
35 * NOTE: To translate CSSM error codes into something vaguely
36 * human-readable, use the cssmPerror function in cssmapple.h.
37 * This function will also decode other Security layer errors
38 * (i.e. those with names like kSec...).
39 */
40
41
42/* Common error codes. */
43enum {
44	CSSM_BASE_ERROR =				-0x7FFF0000 /* 0x80010000 */
45};
46
47enum {
48	CSSM_ERRORCODE_MODULE_EXTENT =	0x00000800,
49	CSSM_ERRORCODE_CUSTOM_OFFSET =	0x00000400,
50	CSSM_ERRORCODE_COMMON_EXTENT =	0x100
51};
52
53/* Macros for convertible error code manipulation. */
54#define CSSM_ERRCODE(CODE) \
55	(((CODE) - CSSM_BASE_ERROR) & (CSSM_ERRORCODE_MODULE_EXTENT - 1))
56
57#define CSSM_ERRBASE(CODE) \
58	((((CODE) - CSSM_BASE_ERROR) & ~(CSSM_ERRORCODE_MODULE_EXTENT - 1)) + CSSM_BASE_ERROR)
59
60#define CSSM_ERR_IS_CONVERTIBLE(CODE) \
61	(CSSM_ERRCODE(CODE) < CSSM_ERRORCODE_COMMON_EXTENT)
62
63#define CSSM_ERR_TAG(CODE, BASE) \
64	(CSSM_ERRCODE(CODE) + (BASE))
65
66/* Error Bases for different module types. */
67enum {
68	CSSM_CSSM_BASE_ERROR =				CSSM_BASE_ERROR,
69	CSSM_CSSM_PRIVATE_ERROR =			CSSM_BASE_ERROR + CSSM_ERRORCODE_CUSTOM_OFFSET,
70	CSSM_CSP_BASE_ERROR =				CSSM_CSSM_BASE_ERROR + CSSM_ERRORCODE_MODULE_EXTENT,
71	CSSM_CSP_PRIVATE_ERROR =			CSSM_CSP_BASE_ERROR + CSSM_ERRORCODE_CUSTOM_OFFSET,
72	CSSM_DL_BASE_ERROR =				CSSM_CSP_BASE_ERROR + CSSM_ERRORCODE_MODULE_EXTENT,
73	CSSM_DL_PRIVATE_ERROR =				CSSM_DL_BASE_ERROR + CSSM_ERRORCODE_CUSTOM_OFFSET,
74	CSSM_CL_BASE_ERROR =				CSSM_DL_BASE_ERROR + CSSM_ERRORCODE_MODULE_EXTENT,
75	CSSM_CL_PRIVATE_ERROR =				CSSM_CL_BASE_ERROR + CSSM_ERRORCODE_CUSTOM_OFFSET,
76	CSSM_TP_BASE_ERROR =				CSSM_CL_BASE_ERROR + CSSM_ERRORCODE_MODULE_EXTENT,
77	CSSM_TP_PRIVATE_ERROR =				CSSM_TP_BASE_ERROR + CSSM_ERRORCODE_CUSTOM_OFFSET ,
78	CSSM_KR_BASE_ERROR =				CSSM_TP_BASE_ERROR + CSSM_ERRORCODE_MODULE_EXTENT,
79	CSSM_KR_PRIVATE_ERROR =				CSSM_KR_BASE_ERROR + CSSM_ERRORCODE_CUSTOM_OFFSET,
80	CSSM_AC_BASE_ERROR =				CSSM_KR_BASE_ERROR + CSSM_ERRORCODE_MODULE_EXTENT,
81	CSSM_AC_PRIVATE_ERROR =				CSSM_AC_BASE_ERROR + CSSM_ERRORCODE_CUSTOM_OFFSET
82};
83
84/* XXX @@@ MDS Error Bases same as DL for now. */
85enum {
86	CSSM_MDS_BASE_ERROR =				CSSM_CSP_BASE_ERROR + CSSM_ERRORCODE_MODULE_EXTENT,
87	CSSM_MDS_PRIVATE_ERROR =			CSSM_MDS_BASE_ERROR + CSSM_ERRORCODE_CUSTOM_OFFSET
88};
89
90/* General Error Values. */
91enum {
92	CSSMERR_CSSM_INVALID_ADDIN_HANDLE =
93		CSSM_CSSM_BASE_ERROR + CSSM_ERRORCODE_COMMON_EXTENT + 1,
94	CSSMERR_CSSM_NOT_INITIALIZED =
95		CSSM_CSSM_BASE_ERROR + CSSM_ERRORCODE_COMMON_EXTENT + 2,
96	CSSMERR_CSSM_INVALID_HANDLE_USAGE =
97		CSSM_CSSM_BASE_ERROR + CSSM_ERRORCODE_COMMON_EXTENT + 3,
98	CSSMERR_CSSM_PVC_REFERENT_NOT_FOUND =
99		CSSM_CSSM_BASE_ERROR + CSSM_ERRORCODE_COMMON_EXTENT + 4,
100	CSSMERR_CSSM_FUNCTION_INTEGRITY_FAIL =
101		CSSM_CSSM_BASE_ERROR + CSSM_ERRORCODE_COMMON_EXTENT + 5
102};
103
104/* Common Error Codes For All Module Types. */
105enum {
106	CSSM_ERRCODE_INTERNAL_ERROR =					0x0001,
107	CSSM_ERRCODE_MEMORY_ERROR =						0x0002,
108	CSSM_ERRCODE_MDS_ERROR =						0x0003,
109	CSSM_ERRCODE_INVALID_POINTER =					0x0004,
110	CSSM_ERRCODE_INVALID_INPUT_POINTER =			0x0005,
111	CSSM_ERRCODE_INVALID_OUTPUT_POINTER =			0x0006,
112	CSSM_ERRCODE_FUNCTION_NOT_IMPLEMENTED =			0x0007,
113	CSSM_ERRCODE_SELF_CHECK_FAILED =				0x0008,
114	CSSM_ERRCODE_OS_ACCESS_DENIED =					0x0009,
115	CSSM_ERRCODE_FUNCTION_FAILED =					0x000A,
116	CSSM_ERRCODE_MODULE_MANIFEST_VERIFY_FAILED =	0x000B,
117	CSSM_ERRCODE_INVALID_GUID =						0x000C
118};
119
120/* Common Error Codes for ACLs */
121enum {
122	CSSM_ERRCODE_OPERATION_AUTH_DENIED =			0x0020,
123	CSSM_ERRCODE_OBJECT_USE_AUTH_DENIED =			0x0021,
124	CSSM_ERRCODE_OBJECT_MANIP_AUTH_DENIED =			0x0022,
125	CSSM_ERRCODE_OBJECT_ACL_NOT_SUPPORTED =			0x0023,
126	CSSM_ERRCODE_OBJECT_ACL_REQUIRED =				0x0024,
127	CSSM_ERRCODE_INVALID_ACCESS_CREDENTIALS =		0x0025,
128	CSSM_ERRCODE_INVALID_ACL_BASE_CERTS =			0x0026,
129	CSSM_ERRCODE_ACL_BASE_CERTS_NOT_SUPPORTED =		0x0027,
130	CSSM_ERRCODE_INVALID_SAMPLE_VALUE =				0x0028,
131	CSSM_ERRCODE_SAMPLE_VALUE_NOT_SUPPORTED =		0x0029,
132	CSSM_ERRCODE_INVALID_ACL_SUBJECT_VALUE =		0x002A,
133	CSSM_ERRCODE_ACL_SUBJECT_TYPE_NOT_SUPPORTED =	0x002B,
134	CSSM_ERRCODE_INVALID_ACL_CHALLENGE_CALLBACK =	0x002C,
135	CSSM_ERRCODE_ACL_CHALLENGE_CALLBACK_FAILED =	0x002D,
136	CSSM_ERRCODE_INVALID_ACL_ENTRY_TAG =			0x002E,
137	CSSM_ERRCODE_ACL_ENTRY_TAG_NOT_FOUND =			0x002F,
138	CSSM_ERRCODE_INVALID_ACL_EDIT_MODE =			0x0030,
139	CSSM_ERRCODE_ACL_CHANGE_FAILED =				0x0031,
140	CSSM_ERRCODE_INVALID_NEW_ACL_ENTRY =			0x0032,
141	CSSM_ERRCODE_INVALID_NEW_ACL_OWNER =			0x0033,
142	CSSM_ERRCODE_ACL_DELETE_FAILED =				0x0034,
143	CSSM_ERRCODE_ACL_REPLACE_FAILED =				0x0035,
144	CSSM_ERRCODE_ACL_ADD_FAILED =					0x0036
145};
146
147/* Common Error Codes for Specific Data Types */
148enum {
149	CSSM_ERRCODE_INVALID_CONTEXT_HANDLE =			0x0040,
150	CSSM_ERRCODE_INCOMPATIBLE_VERSION =				0x0041,
151	CSSM_ERRCODE_INVALID_CERTGROUP_POINTER =		0x0042,
152	CSSM_ERRCODE_INVALID_CERT_POINTER =				0x0043,
153	CSSM_ERRCODE_INVALID_CRL_POINTER =				0x0044,
154	CSSM_ERRCODE_INVALID_FIELD_POINTER =			0x0045,
155	CSSM_ERRCODE_INVALID_DATA =						0x0046,
156	CSSM_ERRCODE_CRL_ALREADY_SIGNED =				0x0047,
157	CSSM_ERRCODE_INVALID_NUMBER_OF_FIELDS =			0x0048,
158	CSSM_ERRCODE_VERIFICATION_FAILURE =				0x0049,
159	CSSM_ERRCODE_INVALID_DB_HANDLE =				0x004A,
160	CSSM_ERRCODE_PRIVILEGE_NOT_GRANTED =			0x004B,
161	CSSM_ERRCODE_INVALID_DB_LIST =					0x004C,
162	CSSM_ERRCODE_INVALID_DB_LIST_POINTER =			0x004D,
163	CSSM_ERRCODE_UNKNOWN_FORMAT =					0x004E,
164	CSSM_ERRCODE_UNKNOWN_TAG =						0x004F,
165	CSSM_ERRCODE_INVALID_CSP_HANDLE =				0x0050,
166	CSSM_ERRCODE_INVALID_DL_HANDLE =				0x0051,
167	CSSM_ERRCODE_INVALID_CL_HANDLE =				0x0052,
168	CSSM_ERRCODE_INVALID_TP_HANDLE =				0x0053,
169	CSSM_ERRCODE_INVALID_KR_HANDLE =				0x0054,
170	CSSM_ERRCODE_INVALID_AC_HANDLE =				0x0055,
171	CSSM_ERRCODE_INVALID_PASSTHROUGH_ID =			0x0056,
172	CSSM_ERRCODE_INVALID_NETWORK_ADDR =				0x0057,
173	CSSM_ERRCODE_INVALID_CRYPTO_DATA =				0x0058
174};
175
176/* CSSM Error Values Derived from Common Error Codes For All Module Types. */
177enum {
178	CSSMERR_CSSM_INTERNAL_ERROR =
179		CSSM_CSSM_BASE_ERROR + CSSM_ERRCODE_INTERNAL_ERROR,
180	CSSMERR_CSSM_MEMORY_ERROR =
181		CSSM_CSSM_BASE_ERROR + CSSM_ERRCODE_MEMORY_ERROR,
182	CSSMERR_CSSM_MDS_ERROR =
183		CSSM_CSSM_BASE_ERROR + CSSM_ERRCODE_MDS_ERROR,
184	CSSMERR_CSSM_INVALID_POINTER =
185		CSSM_CSSM_BASE_ERROR + CSSM_ERRCODE_INVALID_POINTER,
186	CSSMERR_CSSM_INVALID_INPUT_POINTER =
187		CSSM_CSSM_BASE_ERROR + CSSM_ERRCODE_INVALID_INPUT_POINTER,
188	CSSMERR_CSSM_INVALID_OUTPUT_POINTER =
189		CSSM_CSSM_BASE_ERROR + CSSM_ERRCODE_INVALID_OUTPUT_POINTER,
190	CSSMERR_CSSM_FUNCTION_NOT_IMPLEMENTED =
191		CSSM_CSSM_BASE_ERROR + CSSM_ERRCODE_FUNCTION_NOT_IMPLEMENTED,
192	CSSMERR_CSSM_SELF_CHECK_FAILED =
193		CSSM_CSSM_BASE_ERROR + CSSM_ERRCODE_SELF_CHECK_FAILED,
194	CSSMERR_CSSM_OS_ACCESS_DENIED =
195		CSSM_CSSM_BASE_ERROR + CSSM_ERRCODE_OS_ACCESS_DENIED,
196	CSSMERR_CSSM_FUNCTION_FAILED =
197		CSSM_CSSM_BASE_ERROR + CSSM_ERRCODE_FUNCTION_FAILED,
198	CSSMERR_CSSM_MODULE_MANIFEST_VERIFY_FAILED =
199		CSSM_CSSM_BASE_ERROR + CSSM_ERRCODE_MODULE_MANIFEST_VERIFY_FAILED,
200	CSSMERR_CSSM_INVALID_GUID =
201		CSSM_CSSM_BASE_ERROR + CSSM_ERRCODE_INVALID_GUID
202};
203
204/* CSSM Error Values for Specific Data Types. */
205enum {
206	CSSMERR_CSSM_INVALID_CONTEXT_HANDLE =
207		CSSM_CSSM_BASE_ERROR + CSSM_ERRCODE_INVALID_CONTEXT_HANDLE,
208	CSSMERR_CSSM_INCOMPATIBLE_VERSION =
209		CSSM_CSSM_BASE_ERROR + CSSM_ERRCODE_INCOMPATIBLE_VERSION,
210	CSSMERR_CSSM_PRIVILEGE_NOT_GRANTED =
211		CSSM_CSSM_BASE_ERROR + CSSM_ERRCODE_PRIVILEGE_NOT_GRANTED
212};
213
214/* CSSM Module-Specific Error Values */
215enum {
216	CSSM_CSSM_BASE_CSSM_ERROR =
217		CSSM_CSSM_BASE_ERROR + CSSM_ERRORCODE_COMMON_EXTENT + 0x10,
218	CSSMERR_CSSM_SCOPE_NOT_SUPPORTED =				CSSM_CSSM_BASE_CSSM_ERROR + 1,
219	CSSMERR_CSSM_PVC_ALREADY_CONFIGURED =			CSSM_CSSM_BASE_CSSM_ERROR + 2,
220	CSSMERR_CSSM_INVALID_PVC =						CSSM_CSSM_BASE_CSSM_ERROR + 3,
221	CSSMERR_CSSM_EMM_LOAD_FAILED =					CSSM_CSSM_BASE_CSSM_ERROR + 4,
222	CSSMERR_CSSM_EMM_UNLOAD_FAILED =				CSSM_CSSM_BASE_CSSM_ERROR + 5,
223	CSSMERR_CSSM_ADDIN_LOAD_FAILED =				CSSM_CSSM_BASE_CSSM_ERROR + 6,
224	CSSMERR_CSSM_INVALID_KEY_HIERARCHY =			CSSM_CSSM_BASE_CSSM_ERROR + 7,
225	CSSMERR_CSSM_ADDIN_UNLOAD_FAILED =				CSSM_CSSM_BASE_CSSM_ERROR + 8,
226	CSSMERR_CSSM_LIB_REF_NOT_FOUND =				CSSM_CSSM_BASE_CSSM_ERROR + 9,
227	CSSMERR_CSSM_INVALID_ADDIN_FUNCTION_TABLE =		CSSM_CSSM_BASE_CSSM_ERROR + 10,
228	CSSMERR_CSSM_EMM_AUTHENTICATE_FAILED =			CSSM_CSSM_BASE_CSSM_ERROR + 11,
229	CSSMERR_CSSM_ADDIN_AUTHENTICATE_FAILED =		CSSM_CSSM_BASE_CSSM_ERROR + 12,
230	CSSMERR_CSSM_INVALID_SERVICE_MASK =				CSSM_CSSM_BASE_CSSM_ERROR + 13,
231	CSSMERR_CSSM_MODULE_NOT_LOADED =				CSSM_CSSM_BASE_CSSM_ERROR + 14,
232	CSSMERR_CSSM_INVALID_SUBSERVICEID =				CSSM_CSSM_BASE_CSSM_ERROR + 15,
233	CSSMERR_CSSM_BUFFER_TOO_SMALL =					CSSM_CSSM_BASE_CSSM_ERROR + 16,
234	CSSMERR_CSSM_INVALID_ATTRIBUTE =				CSSM_CSSM_BASE_CSSM_ERROR + 17,
235	CSSMERR_CSSM_ATTRIBUTE_NOT_IN_CONTEXT =			CSSM_CSSM_BASE_CSSM_ERROR + 18,
236	CSSMERR_CSSM_MODULE_MANAGER_INITIALIZE_FAIL =	CSSM_CSSM_BASE_CSSM_ERROR + 19,
237	CSSMERR_CSSM_MODULE_MANAGER_NOT_FOUND =			CSSM_CSSM_BASE_CSSM_ERROR + 20,
238	CSSMERR_CSSM_EVENT_NOTIFICATION_CALLBACK_NOT_FOUND = CSSM_CSSM_BASE_CSSM_ERROR + 21
239};
240
241/* CSP Error Values Derived from Common Error Codes For All Module Types. */
242enum {
243	CSSMERR_CSP_INTERNAL_ERROR =
244		CSSM_CSP_BASE_ERROR + CSSM_ERRCODE_INTERNAL_ERROR,
245	CSSMERR_CSP_MEMORY_ERROR =
246		CSSM_CSP_BASE_ERROR + CSSM_ERRCODE_MEMORY_ERROR,
247	CSSMERR_CSP_MDS_ERROR =
248		CSSM_CSP_BASE_ERROR + CSSM_ERRCODE_MDS_ERROR,
249	CSSMERR_CSP_INVALID_POINTER =
250		CSSM_CSP_BASE_ERROR + CSSM_ERRCODE_INVALID_POINTER,
251	CSSMERR_CSP_INVALID_INPUT_POINTER =
252		CSSM_CSP_BASE_ERROR + CSSM_ERRCODE_INVALID_INPUT_POINTER,
253	CSSMERR_CSP_INVALID_OUTPUT_POINTER =
254		CSSM_CSP_BASE_ERROR + CSSM_ERRCODE_INVALID_OUTPUT_POINTER,
255	CSSMERR_CSP_FUNCTION_NOT_IMPLEMENTED =
256		CSSM_CSP_BASE_ERROR + CSSM_ERRCODE_FUNCTION_NOT_IMPLEMENTED,
257	CSSMERR_CSP_SELF_CHECK_FAILED =
258		CSSM_CSP_BASE_ERROR + CSSM_ERRCODE_SELF_CHECK_FAILED,
259	CSSMERR_CSP_OS_ACCESS_DENIED =
260		CSSM_CSP_BASE_ERROR + CSSM_ERRCODE_OS_ACCESS_DENIED,
261	CSSMERR_CSP_FUNCTION_FAILED =
262		CSSM_CSP_BASE_ERROR + CSSM_ERRCODE_FUNCTION_FAILED
263};
264
265/* CSP Error Values Derived from ACL-based Error Codes. */
266enum {
267	CSSMERR_CSP_OPERATION_AUTH_DENIED =
268		CSSM_CSP_BASE_ERROR + CSSM_ERRCODE_OPERATION_AUTH_DENIED,
269	CSSMERR_CSP_OBJECT_USE_AUTH_DENIED =
270		CSSM_CSP_BASE_ERROR + CSSM_ERRCODE_OBJECT_USE_AUTH_DENIED,
271	CSSMERR_CSP_OBJECT_MANIP_AUTH_DENIED =
272		CSSM_CSP_BASE_ERROR + CSSM_ERRCODE_OBJECT_MANIP_AUTH_DENIED,
273	CSSMERR_CSP_OBJECT_ACL_NOT_SUPPORTED =
274		CSSM_CSP_BASE_ERROR + CSSM_ERRCODE_OBJECT_ACL_NOT_SUPPORTED,
275	CSSMERR_CSP_OBJECT_ACL_REQUIRED =
276		CSSM_CSP_BASE_ERROR + CSSM_ERRCODE_OBJECT_ACL_REQUIRED,
277	CSSMERR_CSP_INVALID_ACCESS_CREDENTIALS =
278		CSSM_CSP_BASE_ERROR + CSSM_ERRCODE_INVALID_ACCESS_CREDENTIALS,
279	CSSMERR_CSP_INVALID_ACL_BASE_CERTS =
280		CSSM_CSP_BASE_ERROR + CSSM_ERRCODE_INVALID_ACL_BASE_CERTS,
281	CSSMERR_CSP_ACL_BASE_CERTS_NOT_SUPPORTED =
282		CSSM_CSP_BASE_ERROR + CSSM_ERRCODE_ACL_BASE_CERTS_NOT_SUPPORTED,
283	CSSMERR_CSP_INVALID_SAMPLE_VALUE =
284		CSSM_CSP_BASE_ERROR + CSSM_ERRCODE_INVALID_SAMPLE_VALUE,
285	CSSMERR_CSP_SAMPLE_VALUE_NOT_SUPPORTED =
286		CSSM_CSP_BASE_ERROR + CSSM_ERRCODE_SAMPLE_VALUE_NOT_SUPPORTED,
287	CSSMERR_CSP_INVALID_ACL_SUBJECT_VALUE =
288		CSSM_CSP_BASE_ERROR + CSSM_ERRCODE_INVALID_ACL_SUBJECT_VALUE,
289	CSSMERR_CSP_ACL_SUBJECT_TYPE_NOT_SUPPORTED =
290		CSSM_CSP_BASE_ERROR + CSSM_ERRCODE_ACL_SUBJECT_TYPE_NOT_SUPPORTED,
291	CSSMERR_CSP_INVALID_ACL_CHALLENGE_CALLBACK =
292		CSSM_CSP_BASE_ERROR + CSSM_ERRCODE_INVALID_ACL_CHALLENGE_CALLBACK,
293	CSSMERR_CSP_ACL_CHALLENGE_CALLBACK_FAILED =
294		CSSM_CSP_BASE_ERROR + CSSM_ERRCODE_ACL_CHALLENGE_CALLBACK_FAILED,
295	CSSMERR_CSP_INVALID_ACL_ENTRY_TAG =
296		CSSM_CSP_BASE_ERROR + CSSM_ERRCODE_INVALID_ACL_ENTRY_TAG,
297	CSSMERR_CSP_ACL_ENTRY_TAG_NOT_FOUND =
298		CSSM_CSP_BASE_ERROR + CSSM_ERRCODE_ACL_ENTRY_TAG_NOT_FOUND,
299	CSSMERR_CSP_INVALID_ACL_EDIT_MODE =
300		CSSM_CSP_BASE_ERROR + CSSM_ERRCODE_INVALID_ACL_EDIT_MODE,
301	CSSMERR_CSP_ACL_CHANGE_FAILED =
302		CSSM_CSP_BASE_ERROR + CSSM_ERRCODE_ACL_CHANGE_FAILED,
303	CSSMERR_CSP_INVALID_NEW_ACL_ENTRY =
304		CSSM_CSP_BASE_ERROR + CSSM_ERRCODE_INVALID_NEW_ACL_ENTRY,
305	CSSMERR_CSP_INVALID_NEW_ACL_OWNER =
306		CSSM_CSP_BASE_ERROR + CSSM_ERRCODE_INVALID_NEW_ACL_OWNER,
307	CSSMERR_CSP_ACL_DELETE_FAILED =
308		CSSM_CSP_BASE_ERROR + CSSM_ERRCODE_ACL_DELETE_FAILED,
309	CSSMERR_CSP_ACL_REPLACE_FAILED =
310		CSSM_CSP_BASE_ERROR + CSSM_ERRCODE_ACL_REPLACE_FAILED,
311	CSSMERR_CSP_ACL_ADD_FAILED =
312		CSSM_CSP_BASE_ERROR + CSSM_ERRCODE_ACL_ADD_FAILED
313};
314
315/* CSP Error Values for Specific Data Types. */
316enum {
317	CSSMERR_CSP_INVALID_CONTEXT_HANDLE =
318		CSSM_CSP_BASE_ERROR + CSSM_ERRCODE_INVALID_CONTEXT_HANDLE,
319	CSSMERR_CSP_PRIVILEGE_NOT_GRANTED =
320		CSSM_CSP_BASE_ERROR + CSSM_ERRCODE_PRIVILEGE_NOT_GRANTED,
321	CSSMERR_CSP_INVALID_DATA =
322		CSSM_CSP_BASE_ERROR + CSSM_ERRCODE_INVALID_DATA,
323	CSSMERR_CSP_INVALID_PASSTHROUGH_ID =
324		CSSM_CSP_BASE_ERROR + CSSM_ERRCODE_INVALID_PASSTHROUGH_ID,
325	CSSMERR_CSP_INVALID_CRYPTO_DATA =
326		CSSM_CSP_BASE_ERROR + CSSM_ERRCODE_INVALID_CRYPTO_DATA
327};
328
329/* CSP Module-Specific Error Values */
330enum {
331	/* General CSP Error Values */
332	CSSM_CSP_BASE_CSP_ERROR =
333		CSSM_CSP_BASE_ERROR + CSSM_ERRORCODE_COMMON_EXTENT,
334	CSSMERR_CSP_INPUT_LENGTH_ERROR =				CSSM_CSP_BASE_CSP_ERROR + 1,
335	CSSMERR_CSP_OUTPUT_LENGTH_ERROR =				CSSM_CSP_BASE_CSP_ERROR + 2,
336	CSSMERR_CSP_PRIVILEGE_NOT_SUPPORTED =			CSSM_CSP_BASE_CSP_ERROR + 3,
337	CSSMERR_CSP_DEVICE_ERROR =						CSSM_CSP_BASE_CSP_ERROR + 4,
338	CSSMERR_CSP_DEVICE_MEMORY_ERROR =				CSSM_CSP_BASE_CSP_ERROR + 5,
339	CSSMERR_CSP_ATTACH_HANDLE_BUSY =				CSSM_CSP_BASE_CSP_ERROR + 6,
340	CSSMERR_CSP_NOT_LOGGED_IN =						CSSM_CSP_BASE_CSP_ERROR + 7,
341	CSSMERR_CSP_INVALID_KEY =						CSSM_CSP_BASE_CSP_ERROR + 16,
342	CSSMERR_CSP_INVALID_KEY_REFERENCE =				CSSM_CSP_BASE_CSP_ERROR + 17,
343	CSSMERR_CSP_INVALID_KEY_CLASS =					CSSM_CSP_BASE_CSP_ERROR + 18,
344	CSSMERR_CSP_ALGID_MISMATCH =					CSSM_CSP_BASE_CSP_ERROR + 19,
345	CSSMERR_CSP_KEY_USAGE_INCORRECT =				CSSM_CSP_BASE_CSP_ERROR + 20,
346	CSSMERR_CSP_KEY_BLOB_TYPE_INCORRECT =			CSSM_CSP_BASE_CSP_ERROR + 21,
347	CSSMERR_CSP_KEY_HEADER_INCONSISTENT =			CSSM_CSP_BASE_CSP_ERROR + 22,
348	CSSMERR_CSP_UNSUPPORTED_KEY_FORMAT =			CSSM_CSP_BASE_CSP_ERROR + 23,
349	CSSMERR_CSP_UNSUPPORTED_KEY_SIZE =				CSSM_CSP_BASE_CSP_ERROR + 24,
350	CSSMERR_CSP_INVALID_KEY_POINTER =				CSSM_CSP_BASE_CSP_ERROR + 25,
351	CSSMERR_CSP_INVALID_KEYUSAGE_MASK =				CSSM_CSP_BASE_CSP_ERROR + 26,
352	CSSMERR_CSP_UNSUPPORTED_KEYUSAGE_MASK =			CSSM_CSP_BASE_CSP_ERROR + 27,
353	CSSMERR_CSP_INVALID_KEYATTR_MASK =				CSSM_CSP_BASE_CSP_ERROR + 28,
354	CSSMERR_CSP_UNSUPPORTED_KEYATTR_MASK =			CSSM_CSP_BASE_CSP_ERROR + 29,
355	CSSMERR_CSP_INVALID_KEY_LABEL =					CSSM_CSP_BASE_CSP_ERROR + 30,
356	CSSMERR_CSP_UNSUPPORTED_KEY_LABEL =				CSSM_CSP_BASE_CSP_ERROR + 31,
357	CSSMERR_CSP_INVALID_KEY_FORMAT =				CSSM_CSP_BASE_CSP_ERROR + 32,
358
359	/* CSP Vector of Buffers Error Values. */
360	CSSMERR_CSP_INVALID_DATA_COUNT =				CSSM_CSP_BASE_CSP_ERROR + 40,
361	CSSMERR_CSP_VECTOR_OF_BUFS_UNSUPPORTED =		CSSM_CSP_BASE_CSP_ERROR + 41,
362	CSSMERR_CSP_INVALID_INPUT_VECTOR =				CSSM_CSP_BASE_CSP_ERROR + 42,
363	CSSMERR_CSP_INVALID_OUTPUT_VECTOR =				CSSM_CSP_BASE_CSP_ERROR + 43,
364
365	/* CSP Cryptographic Context Error Values. */
366	CSSMERR_CSP_INVALID_CONTEXT =					CSSM_CSP_BASE_CSP_ERROR + 48,
367	CSSMERR_CSP_INVALID_ALGORITHM =					CSSM_CSP_BASE_CSP_ERROR + 49,
368	CSSMERR_CSP_INVALID_ATTR_KEY = 					CSSM_CSP_BASE_CSP_ERROR + 54,
369	CSSMERR_CSP_MISSING_ATTR_KEY = 					CSSM_CSP_BASE_CSP_ERROR + 55,
370	CSSMERR_CSP_INVALID_ATTR_INIT_VECTOR = 			CSSM_CSP_BASE_CSP_ERROR + 56,
371	CSSMERR_CSP_MISSING_ATTR_INIT_VECTOR = 			CSSM_CSP_BASE_CSP_ERROR + 57,
372	CSSMERR_CSP_INVALID_ATTR_SALT = 				CSSM_CSP_BASE_CSP_ERROR + 58,
373	CSSMERR_CSP_MISSING_ATTR_SALT = 				CSSM_CSP_BASE_CSP_ERROR + 59,
374	CSSMERR_CSP_INVALID_ATTR_PADDING = 				CSSM_CSP_BASE_CSP_ERROR + 60,
375	CSSMERR_CSP_MISSING_ATTR_PADDING = 				CSSM_CSP_BASE_CSP_ERROR + 61,
376	CSSMERR_CSP_INVALID_ATTR_RANDOM = 				CSSM_CSP_BASE_CSP_ERROR + 62,
377	CSSMERR_CSP_MISSING_ATTR_RANDOM = 				CSSM_CSP_BASE_CSP_ERROR + 63,
378	CSSMERR_CSP_INVALID_ATTR_SEED = 				CSSM_CSP_BASE_CSP_ERROR + 64,
379	CSSMERR_CSP_MISSING_ATTR_SEED = 				CSSM_CSP_BASE_CSP_ERROR + 65,
380	CSSMERR_CSP_INVALID_ATTR_PASSPHRASE = 			CSSM_CSP_BASE_CSP_ERROR + 66,
381	CSSMERR_CSP_MISSING_ATTR_PASSPHRASE = 			CSSM_CSP_BASE_CSP_ERROR + 67,
382	CSSMERR_CSP_INVALID_ATTR_KEY_LENGTH = 			CSSM_CSP_BASE_CSP_ERROR + 68,
383	CSSMERR_CSP_MISSING_ATTR_KEY_LENGTH = 			CSSM_CSP_BASE_CSP_ERROR + 69,
384	CSSMERR_CSP_INVALID_ATTR_BLOCK_SIZE = 			CSSM_CSP_BASE_CSP_ERROR + 70,
385	CSSMERR_CSP_MISSING_ATTR_BLOCK_SIZE = 			CSSM_CSP_BASE_CSP_ERROR + 71,
386	CSSMERR_CSP_INVALID_ATTR_OUTPUT_SIZE = 			CSSM_CSP_BASE_CSP_ERROR + 100,
387	CSSMERR_CSP_MISSING_ATTR_OUTPUT_SIZE = 			CSSM_CSP_BASE_CSP_ERROR + 101,
388	CSSMERR_CSP_INVALID_ATTR_ROUNDS = 				CSSM_CSP_BASE_CSP_ERROR + 102,
389	CSSMERR_CSP_MISSING_ATTR_ROUNDS = 				CSSM_CSP_BASE_CSP_ERROR + 103,
390	CSSMERR_CSP_INVALID_ATTR_ALG_PARAMS = 			CSSM_CSP_BASE_CSP_ERROR + 104,
391	CSSMERR_CSP_MISSING_ATTR_ALG_PARAMS = 			CSSM_CSP_BASE_CSP_ERROR + 105,
392	CSSMERR_CSP_INVALID_ATTR_LABEL = 				CSSM_CSP_BASE_CSP_ERROR + 106,
393	CSSMERR_CSP_MISSING_ATTR_LABEL = 				CSSM_CSP_BASE_CSP_ERROR + 107,
394	CSSMERR_CSP_INVALID_ATTR_KEY_TYPE = 			CSSM_CSP_BASE_CSP_ERROR + 108,
395	CSSMERR_CSP_MISSING_ATTR_KEY_TYPE = 			CSSM_CSP_BASE_CSP_ERROR + 109,
396	CSSMERR_CSP_INVALID_ATTR_MODE = 				CSSM_CSP_BASE_CSP_ERROR + 110,
397	CSSMERR_CSP_MISSING_ATTR_MODE = 				CSSM_CSP_BASE_CSP_ERROR + 111,
398	CSSMERR_CSP_INVALID_ATTR_EFFECTIVE_BITS = 		CSSM_CSP_BASE_CSP_ERROR + 112,
399	CSSMERR_CSP_MISSING_ATTR_EFFECTIVE_BITS = 		CSSM_CSP_BASE_CSP_ERROR + 113,
400	CSSMERR_CSP_INVALID_ATTR_START_DATE = 			CSSM_CSP_BASE_CSP_ERROR + 114,
401	CSSMERR_CSP_MISSING_ATTR_START_DATE = 			CSSM_CSP_BASE_CSP_ERROR + 115,
402	CSSMERR_CSP_INVALID_ATTR_END_DATE = 			CSSM_CSP_BASE_CSP_ERROR + 116,
403	CSSMERR_CSP_MISSING_ATTR_END_DATE = 			CSSM_CSP_BASE_CSP_ERROR + 117,
404	CSSMERR_CSP_INVALID_ATTR_VERSION = 				CSSM_CSP_BASE_CSP_ERROR + 118,
405	CSSMERR_CSP_MISSING_ATTR_VERSION = 				CSSM_CSP_BASE_CSP_ERROR + 119,
406	CSSMERR_CSP_INVALID_ATTR_PRIME = 				CSSM_CSP_BASE_CSP_ERROR + 120,
407	CSSMERR_CSP_MISSING_ATTR_PRIME = 				CSSM_CSP_BASE_CSP_ERROR + 121,
408	CSSMERR_CSP_INVALID_ATTR_BASE = 				CSSM_CSP_BASE_CSP_ERROR + 122,
409	CSSMERR_CSP_MISSING_ATTR_BASE = 				CSSM_CSP_BASE_CSP_ERROR + 123,
410	CSSMERR_CSP_INVALID_ATTR_SUBPRIME = 			CSSM_CSP_BASE_CSP_ERROR + 124,
411	CSSMERR_CSP_MISSING_ATTR_SUBPRIME = 			CSSM_CSP_BASE_CSP_ERROR + 125,
412	CSSMERR_CSP_INVALID_ATTR_ITERATION_COUNT = 		CSSM_CSP_BASE_CSP_ERROR + 126,
413	CSSMERR_CSP_MISSING_ATTR_ITERATION_COUNT = 		CSSM_CSP_BASE_CSP_ERROR + 127,
414	CSSMERR_CSP_INVALID_ATTR_DL_DB_HANDLE = 		CSSM_CSP_BASE_CSP_ERROR + 128,
415	CSSMERR_CSP_MISSING_ATTR_DL_DB_HANDLE = 		CSSM_CSP_BASE_CSP_ERROR + 129,
416	CSSMERR_CSP_INVALID_ATTR_ACCESS_CREDENTIALS = 	CSSM_CSP_BASE_CSP_ERROR + 130,
417	CSSMERR_CSP_MISSING_ATTR_ACCESS_CREDENTIALS = 	CSSM_CSP_BASE_CSP_ERROR + 131,
418	CSSMERR_CSP_INVALID_ATTR_PUBLIC_KEY_FORMAT = 	CSSM_CSP_BASE_CSP_ERROR + 132,
419	CSSMERR_CSP_MISSING_ATTR_PUBLIC_KEY_FORMAT = 	CSSM_CSP_BASE_CSP_ERROR + 133,
420	CSSMERR_CSP_INVALID_ATTR_PRIVATE_KEY_FORMAT = 	CSSM_CSP_BASE_CSP_ERROR + 134,
421	CSSMERR_CSP_MISSING_ATTR_PRIVATE_KEY_FORMAT = 	CSSM_CSP_BASE_CSP_ERROR + 135,
422	CSSMERR_CSP_INVALID_ATTR_SYMMETRIC_KEY_FORMAT = CSSM_CSP_BASE_CSP_ERROR + 136,
423	CSSMERR_CSP_MISSING_ATTR_SYMMETRIC_KEY_FORMAT = CSSM_CSP_BASE_CSP_ERROR + 137,
424	CSSMERR_CSP_INVALID_ATTR_WRAPPED_KEY_FORMAT = 	CSSM_CSP_BASE_CSP_ERROR + 138,
425	CSSMERR_CSP_MISSING_ATTR_WRAPPED_KEY_FORMAT = 	CSSM_CSP_BASE_CSP_ERROR + 139,
426
427	/* CSP Staged Cryptographic API Error Values. */
428	CSSMERR_CSP_STAGED_OPERATION_IN_PROGRESS =		CSSM_CSP_BASE_CSP_ERROR + 72,
429	CSSMERR_CSP_STAGED_OPERATION_NOT_STARTED =		CSSM_CSP_BASE_CSP_ERROR + 73,
430	CSSMERR_CSP_VERIFY_FAILED =						CSSM_CSP_BASE_CSP_ERROR + 74,
431	CSSMERR_CSP_INVALID_SIGNATURE =					CSSM_CSP_BASE_CSP_ERROR + 75,
432	CSSMERR_CSP_QUERY_SIZE_UNKNOWN =				CSSM_CSP_BASE_CSP_ERROR + 76,
433	CSSMERR_CSP_BLOCK_SIZE_MISMATCH =				CSSM_CSP_BASE_CSP_ERROR + 77,
434	CSSMERR_CSP_PRIVATE_KEY_NOT_FOUND =				CSSM_CSP_BASE_CSP_ERROR + 78,
435	CSSMERR_CSP_PUBLIC_KEY_INCONSISTENT =			CSSM_CSP_BASE_CSP_ERROR + 79,
436	CSSMERR_CSP_DEVICE_VERIFY_FAILED =				CSSM_CSP_BASE_CSP_ERROR + 80,
437	CSSMERR_CSP_INVALID_LOGIN_NAME =				CSSM_CSP_BASE_CSP_ERROR + 81,
438	CSSMERR_CSP_ALREADY_LOGGED_IN =					CSSM_CSP_BASE_CSP_ERROR + 82,
439	CSSMERR_CSP_PRIVATE_KEY_ALREADY_EXISTS =		CSSM_CSP_BASE_CSP_ERROR + 83,
440	CSSMERR_CSP_KEY_LABEL_ALREADY_EXISTS =			CSSM_CSP_BASE_CSP_ERROR + 84,
441	CSSMERR_CSP_INVALID_DIGEST_ALGORITHM =			CSSM_CSP_BASE_CSP_ERROR + 85,
442	CSSMERR_CSP_CRYPTO_DATA_CALLBACK_FAILED =		CSSM_CSP_BASE_CSP_ERROR + 86
443};
444
445
446/* TP Error Values Derived from Common Error Codes For All Module Types. */
447enum {
448	CSSMERR_TP_INTERNAL_ERROR =
449		CSSM_TP_BASE_ERROR + CSSM_ERRCODE_INTERNAL_ERROR,
450	CSSMERR_TP_MEMORY_ERROR =
451		CSSM_TP_BASE_ERROR + CSSM_ERRCODE_MEMORY_ERROR,
452	CSSMERR_TP_MDS_ERROR =
453		CSSM_TP_BASE_ERROR + CSSM_ERRCODE_MDS_ERROR,
454	CSSMERR_TP_INVALID_POINTER =
455		CSSM_TP_BASE_ERROR + CSSM_ERRCODE_INVALID_POINTER,
456	CSSMERR_TP_INVALID_INPUT_POINTER =
457		CSSM_TP_BASE_ERROR + CSSM_ERRCODE_INVALID_INPUT_POINTER,
458	CSSMERR_TP_INVALID_OUTPUT_POINTER =
459		CSSM_TP_BASE_ERROR + CSSM_ERRCODE_INVALID_OUTPUT_POINTER,
460	CSSMERR_TP_FUNCTION_NOT_IMPLEMENTED =
461		CSSM_TP_BASE_ERROR + CSSM_ERRCODE_FUNCTION_NOT_IMPLEMENTED,
462	CSSMERR_TP_SELF_CHECK_FAILED =
463		CSSM_TP_BASE_ERROR + CSSM_ERRCODE_SELF_CHECK_FAILED,
464	CSSMERR_TP_OS_ACCESS_DENIED =
465		CSSM_TP_BASE_ERROR + CSSM_ERRCODE_OS_ACCESS_DENIED,
466	CSSMERR_TP_FUNCTION_FAILED =
467		CSSM_TP_BASE_ERROR + CSSM_ERRCODE_FUNCTION_FAILED,
468	CSSMERR_TP_INVALID_CONTEXT_HANDLE =
469		CSSM_TP_BASE_ERROR + CSSM_ERRCODE_INVALID_CONTEXT_HANDLE,
470	CSSMERR_TP_INVALID_DATA =
471		CSSM_TP_BASE_ERROR + CSSM_ERRCODE_INVALID_DATA,
472	CSSMERR_TP_INVALID_DB_LIST =
473		CSSM_TP_BASE_ERROR + CSSM_ERRCODE_INVALID_DB_LIST,
474	CSSMERR_TP_INVALID_CERTGROUP_POINTER =
475		CSSM_TP_BASE_ERROR + CSSM_ERRCODE_INVALID_CERTGROUP_POINTER,
476	CSSMERR_TP_INVALID_CERT_POINTER =
477		CSSM_TP_BASE_ERROR + CSSM_ERRCODE_INVALID_CERT_POINTER,
478	CSSMERR_TP_INVALID_CRL_POINTER =
479		CSSM_TP_BASE_ERROR + CSSM_ERRCODE_INVALID_CRL_POINTER,
480	CSSMERR_TP_INVALID_FIELD_POINTER =
481		CSSM_TP_BASE_ERROR + CSSM_ERRCODE_INVALID_FIELD_POINTER,
482	CSSMERR_TP_INVALID_NETWORK_ADDR =
483		CSSM_TP_BASE_ERROR + CSSM_ERRCODE_INVALID_NETWORK_ADDR,
484	CSSMERR_TP_CRL_ALREADY_SIGNED =
485		CSSM_TP_BASE_ERROR + CSSM_ERRCODE_CRL_ALREADY_SIGNED,
486	CSSMERR_TP_INVALID_NUMBER_OF_FIELDS =
487		CSSM_TP_BASE_ERROR + CSSM_ERRCODE_INVALID_NUMBER_OF_FIELDS,
488	CSSMERR_TP_VERIFICATION_FAILURE =
489		CSSM_TP_BASE_ERROR + CSSM_ERRCODE_VERIFICATION_FAILURE,
490	CSSMERR_TP_INVALID_DB_HANDLE =
491		CSSM_TP_BASE_ERROR + CSSM_ERRCODE_INVALID_DB_HANDLE,
492	CSSMERR_TP_UNKNOWN_FORMAT =
493		CSSM_TP_BASE_ERROR + CSSM_ERRCODE_UNKNOWN_FORMAT,
494	CSSMERR_TP_UNKNOWN_TAG =
495		CSSM_TP_BASE_ERROR + CSSM_ERRCODE_UNKNOWN_TAG,
496	CSSMERR_TP_INVALID_PASSTHROUGH_ID =
497		CSSM_TP_BASE_ERROR + CSSM_ERRCODE_INVALID_PASSTHROUGH_ID,
498	CSSMERR_TP_INVALID_CSP_HANDLE =
499		CSSM_TP_BASE_ERROR + CSSM_ERRCODE_INVALID_CSP_HANDLE,
500	CSSMERR_TP_INVALID_DL_HANDLE =
501		CSSM_TP_BASE_ERROR + CSSM_ERRCODE_INVALID_DL_HANDLE,
502	CSSMERR_TP_INVALID_CL_HANDLE =
503		CSSM_TP_BASE_ERROR + CSSM_ERRCODE_INVALID_CL_HANDLE,
504	CSSMERR_TP_INVALID_DB_LIST_POINTER =
505		CSSM_TP_BASE_ERROR + CSSM_ERRCODE_INVALID_DB_LIST_POINTER
506};
507
508/* TP Module-Specific Error Values */
509enum {
510	CSSM_TP_BASE_TP_ERROR =
511		CSSM_TP_BASE_ERROR + CSSM_ERRORCODE_COMMON_EXTENT,
512	CSSMERR_TP_INVALID_CALLERAUTH_CONTEXT_POINTER =	CSSM_TP_BASE_TP_ERROR + 1,
513	CSSMERR_TP_INVALID_IDENTIFIER_POINTER =			CSSM_TP_BASE_TP_ERROR + 2,
514	CSSMERR_TP_INVALID_KEYCACHE_HANDLE =			CSSM_TP_BASE_TP_ERROR + 3,
515	CSSMERR_TP_INVALID_CERTGROUP =					CSSM_TP_BASE_TP_ERROR + 4,
516	CSSMERR_TP_INVALID_CRLGROUP =					CSSM_TP_BASE_TP_ERROR + 5,
517	CSSMERR_TP_INVALID_CRLGROUP_POINTER =			CSSM_TP_BASE_TP_ERROR + 6,
518	CSSMERR_TP_AUTHENTICATION_FAILED =				CSSM_TP_BASE_TP_ERROR + 7,
519	CSSMERR_TP_CERTGROUP_INCOMPLETE =				CSSM_TP_BASE_TP_ERROR + 8,
520	CSSMERR_TP_CERTIFICATE_CANT_OPERATE =			CSSM_TP_BASE_TP_ERROR + 9,
521	CSSMERR_TP_CERT_EXPIRED =						CSSM_TP_BASE_TP_ERROR + 10,
522	CSSMERR_TP_CERT_NOT_VALID_YET =					CSSM_TP_BASE_TP_ERROR + 11,
523	CSSMERR_TP_CERT_REVOKED =						CSSM_TP_BASE_TP_ERROR + 12,
524	CSSMERR_TP_CERT_SUSPENDED =						CSSM_TP_BASE_TP_ERROR + 13,
525	CSSMERR_TP_INSUFFICIENT_CREDENTIALS =			CSSM_TP_BASE_TP_ERROR + 14,
526	CSSMERR_TP_INVALID_ACTION =						CSSM_TP_BASE_TP_ERROR + 15,
527	CSSMERR_TP_INVALID_ACTION_DATA =				CSSM_TP_BASE_TP_ERROR + 16,
528	CSSMERR_TP_INVALID_ANCHOR_CERT =				CSSM_TP_BASE_TP_ERROR + 18,
529	CSSMERR_TP_INVALID_AUTHORITY =					CSSM_TP_BASE_TP_ERROR + 19,
530	CSSMERR_TP_VERIFY_ACTION_FAILED =				CSSM_TP_BASE_TP_ERROR + 20,
531	CSSMERR_TP_INVALID_CERTIFICATE =				CSSM_TP_BASE_TP_ERROR + 21,
532	CSSMERR_TP_INVALID_CERT_AUTHORITY =				CSSM_TP_BASE_TP_ERROR + 22,
533	CSSMERR_TP_INVALID_CRL_AUTHORITY =				CSSM_TP_BASE_TP_ERROR + 23,
534	CSSMERR_TP_INVALID_CRL_ENCODING =				CSSM_TP_BASE_TP_ERROR + 24,
535	CSSMERR_TP_INVALID_CRL_TYPE =					CSSM_TP_BASE_TP_ERROR + 25,
536	CSSMERR_TP_INVALID_CRL =						CSSM_TP_BASE_TP_ERROR + 26,
537	CSSMERR_TP_INVALID_FORM_TYPE =					CSSM_TP_BASE_TP_ERROR + 27,
538	CSSMERR_TP_INVALID_ID =							CSSM_TP_BASE_TP_ERROR + 28,
539	CSSMERR_TP_INVALID_IDENTIFIER =					CSSM_TP_BASE_TP_ERROR + 29,
540	CSSMERR_TP_INVALID_INDEX =						CSSM_TP_BASE_TP_ERROR + 30,
541	CSSMERR_TP_INVALID_NAME =						CSSM_TP_BASE_TP_ERROR + 31,
542	CSSMERR_TP_INVALID_POLICY_IDENTIFIERS =			CSSM_TP_BASE_TP_ERROR + 32,
543	CSSMERR_TP_INVALID_TIMESTRING =					CSSM_TP_BASE_TP_ERROR + 33,
544	CSSMERR_TP_INVALID_REASON =						CSSM_TP_BASE_TP_ERROR + 34,
545	CSSMERR_TP_INVALID_REQUEST_INPUTS =				CSSM_TP_BASE_TP_ERROR + 35,
546	CSSMERR_TP_INVALID_RESPONSE_VECTOR =			CSSM_TP_BASE_TP_ERROR + 36,
547	CSSMERR_TP_INVALID_SIGNATURE =					CSSM_TP_BASE_TP_ERROR + 37,
548	CSSMERR_TP_INVALID_STOP_ON_POLICY =				CSSM_TP_BASE_TP_ERROR + 38,
549	CSSMERR_TP_INVALID_CALLBACK =					CSSM_TP_BASE_TP_ERROR + 39,
550	CSSMERR_TP_INVALID_TUPLE =						CSSM_TP_BASE_TP_ERROR + 40,
551	CSSMERR_TP_NOT_SIGNER =							CSSM_TP_BASE_TP_ERROR + 41,
552	CSSMERR_TP_NOT_TRUSTED =						CSSM_TP_BASE_TP_ERROR + 42,
553	CSSMERR_TP_NO_DEFAULT_AUTHORITY =				CSSM_TP_BASE_TP_ERROR + 43,
554	CSSMERR_TP_REJECTED_FORM =						CSSM_TP_BASE_TP_ERROR + 44,
555	CSSMERR_TP_REQUEST_LOST =						CSSM_TP_BASE_TP_ERROR + 45,
556	CSSMERR_TP_REQUEST_REJECTED =					CSSM_TP_BASE_TP_ERROR + 46,
557	CSSMERR_TP_UNSUPPORTED_ADDR_TYPE =				CSSM_TP_BASE_TP_ERROR + 47,
558	CSSMERR_TP_UNSUPPORTED_SERVICE =				CSSM_TP_BASE_TP_ERROR + 48,
559	CSSMERR_TP_INVALID_TUPLEGROUP_POINTER =			CSSM_TP_BASE_TP_ERROR + 49,
560	CSSMERR_TP_INVALID_TUPLEGROUP =					CSSM_TP_BASE_TP_ERROR + 50
561};
562
563/* AC Error Values Derived from Common Error Codes For All Module Types. */
564enum {
565	CSSMERR_AC_INTERNAL_ERROR =
566		CSSM_AC_BASE_ERROR + CSSM_ERRCODE_INTERNAL_ERROR,
567	CSSMERR_AC_MEMORY_ERROR =
568		CSSM_AC_BASE_ERROR + CSSM_ERRCODE_MEMORY_ERROR,
569	CSSMERR_AC_MDS_ERROR =
570		CSSM_AC_BASE_ERROR + CSSM_ERRCODE_MDS_ERROR,
571	CSSMERR_AC_INVALID_POINTER =
572		CSSM_AC_BASE_ERROR + CSSM_ERRCODE_INVALID_POINTER,
573	CSSMERR_AC_INVALID_INPUT_POINTER =
574		CSSM_AC_BASE_ERROR + CSSM_ERRCODE_INVALID_INPUT_POINTER,
575	CSSMERR_AC_INVALID_OUTPUT_POINTER =
576		CSSM_AC_BASE_ERROR + CSSM_ERRCODE_INVALID_OUTPUT_POINTER,
577	CSSMERR_AC_FUNCTION_NOT_IMPLEMENTED =
578		CSSM_AC_BASE_ERROR + CSSM_ERRCODE_FUNCTION_NOT_IMPLEMENTED,
579	CSSMERR_AC_SELF_CHECK_FAILED =
580		CSSM_AC_BASE_ERROR + CSSM_ERRCODE_SELF_CHECK_FAILED,
581	CSSMERR_AC_OS_ACCESS_DENIED =
582		CSSM_AC_BASE_ERROR + CSSM_ERRCODE_OS_ACCESS_DENIED,
583	CSSMERR_AC_FUNCTION_FAILED =
584		CSSM_AC_BASE_ERROR + CSSM_ERRCODE_FUNCTION_FAILED,
585	CSSMERR_AC_INVALID_CONTEXT_HANDLE =
586		CSSM_AC_BASE_ERROR + CSSM_ERRCODE_INVALID_CONTEXT_HANDLE,
587	CSSMERR_AC_INVALID_DATA =
588		CSSM_AC_BASE_ERROR + CSSM_ERRCODE_INVALID_DATA,
589	CSSMERR_AC_INVALID_DB_LIST =
590		CSSM_AC_BASE_ERROR + CSSM_ERRCODE_INVALID_DB_LIST,
591	CSSMERR_AC_INVALID_PASSTHROUGH_ID =
592		CSSM_AC_BASE_ERROR + CSSM_ERRCODE_INVALID_PASSTHROUGH_ID,
593	CSSMERR_AC_INVALID_DL_HANDLE =
594		CSSM_AC_BASE_ERROR + CSSM_ERRCODE_INVALID_DL_HANDLE,
595	CSSMERR_AC_INVALID_CL_HANDLE =
596		CSSM_AC_BASE_ERROR + CSSM_ERRCODE_INVALID_CL_HANDLE,
597	CSSMERR_AC_INVALID_TP_HANDLE =
598		CSSM_AC_BASE_ERROR + CSSM_ERRCODE_INVALID_TP_HANDLE,
599	CSSMERR_AC_INVALID_DB_HANDLE =
600		CSSM_AC_BASE_ERROR + CSSM_ERRCODE_INVALID_DB_HANDLE,
601	CSSMERR_AC_INVALID_DB_LIST_POINTER =
602		CSSM_AC_BASE_ERROR + CSSM_ERRCODE_INVALID_DB_LIST_POINTER
603};
604
605/* AC Module-Specific Error Values */
606enum {
607	CSSM_AC_BASE_AC_ERROR =
608		CSSM_AC_BASE_ERROR + CSSM_ERRORCODE_COMMON_EXTENT,
609	CSSMERR_AC_INVALID_BASE_ACLS =					CSSM_AC_BASE_AC_ERROR + 1,
610	CSSMERR_AC_INVALID_TUPLE_CREDENTIALS =			CSSM_AC_BASE_AC_ERROR + 2,
611	CSSMERR_AC_INVALID_ENCODING =					CSSM_AC_BASE_AC_ERROR + 3,
612	CSSMERR_AC_INVALID_VALIDITY_PERIOD =			CSSM_AC_BASE_AC_ERROR + 4,
613	CSSMERR_AC_INVALID_REQUESTOR =					CSSM_AC_BASE_AC_ERROR + 5,
614	CSSMERR_AC_INVALID_REQUEST_DESCRIPTOR =			CSSM_AC_BASE_AC_ERROR + 6
615};
616
617/* CL Error Values Derived from Common Error Codes For All Module Types. */
618enum {
619	CSSMERR_CL_INTERNAL_ERROR =
620		CSSM_CL_BASE_ERROR + CSSM_ERRCODE_INTERNAL_ERROR,
621	CSSMERR_CL_MEMORY_ERROR =
622		CSSM_CL_BASE_ERROR + CSSM_ERRCODE_MEMORY_ERROR,
623	CSSMERR_CL_MDS_ERROR =
624		CSSM_CL_BASE_ERROR + CSSM_ERRCODE_MDS_ERROR,
625	CSSMERR_CL_INVALID_POINTER =
626		CSSM_CL_BASE_ERROR + CSSM_ERRCODE_INVALID_POINTER,
627	CSSMERR_CL_INVALID_INPUT_POINTER =
628		CSSM_CL_BASE_ERROR + CSSM_ERRCODE_INVALID_INPUT_POINTER,
629	CSSMERR_CL_INVALID_OUTPUT_POINTER =
630		CSSM_CL_BASE_ERROR + CSSM_ERRCODE_INVALID_OUTPUT_POINTER,
631	CSSMERR_CL_FUNCTION_NOT_IMPLEMENTED =
632		CSSM_CL_BASE_ERROR + CSSM_ERRCODE_FUNCTION_NOT_IMPLEMENTED,
633	CSSMERR_CL_SELF_CHECK_FAILED =
634		CSSM_CL_BASE_ERROR + CSSM_ERRCODE_SELF_CHECK_FAILED,
635	CSSMERR_CL_OS_ACCESS_DENIED =
636		CSSM_CL_BASE_ERROR + CSSM_ERRCODE_OS_ACCESS_DENIED,
637	CSSMERR_CL_FUNCTION_FAILED =
638		CSSM_CL_BASE_ERROR + CSSM_ERRCODE_FUNCTION_FAILED,
639	CSSMERR_CL_INVALID_CONTEXT_HANDLE =
640		CSSM_CL_BASE_ERROR + CSSM_ERRCODE_INVALID_CONTEXT_HANDLE,
641	CSSMERR_CL_INVALID_CERTGROUP_POINTER =
642		CSSM_CL_BASE_ERROR + CSSM_ERRCODE_INVALID_CERTGROUP_POINTER,
643	CSSMERR_CL_INVALID_CERT_POINTER =
644		CSSM_CL_BASE_ERROR + CSSM_ERRCODE_INVALID_CERT_POINTER,
645	CSSMERR_CL_INVALID_CRL_POINTER =
646		CSSM_CL_BASE_ERROR + CSSM_ERRCODE_INVALID_CRL_POINTER,
647	CSSMERR_CL_INVALID_FIELD_POINTER =
648		CSSM_CL_BASE_ERROR + CSSM_ERRCODE_INVALID_FIELD_POINTER,
649	CSSMERR_CL_INVALID_DATA =
650		CSSM_CL_BASE_ERROR + CSSM_ERRCODE_INVALID_DATA,
651	CSSMERR_CL_CRL_ALREADY_SIGNED =
652		CSSM_CL_BASE_ERROR + CSSM_ERRCODE_CRL_ALREADY_SIGNED,
653	CSSMERR_CL_INVALID_NUMBER_OF_FIELDS =
654		CSSM_CL_BASE_ERROR + CSSM_ERRCODE_INVALID_NUMBER_OF_FIELDS,
655	CSSMERR_CL_VERIFICATION_FAILURE =
656		CSSM_CL_BASE_ERROR + CSSM_ERRCODE_VERIFICATION_FAILURE,
657	CSSMERR_CL_UNKNOWN_FORMAT =
658		CSSM_CL_BASE_ERROR + CSSM_ERRCODE_UNKNOWN_FORMAT,
659	CSSMERR_CL_UNKNOWN_TAG =
660		CSSM_CL_BASE_ERROR + CSSM_ERRCODE_UNKNOWN_TAG,
661	CSSMERR_CL_INVALID_PASSTHROUGH_ID =
662		CSSM_CL_BASE_ERROR + CSSM_ERRCODE_INVALID_PASSTHROUGH_ID
663};
664
665/* CL Module-Specific Error Values */
666enum {
667	CSSM_CL_BASE_CL_ERROR =
668		CSSM_CL_BASE_ERROR + CSSM_ERRORCODE_COMMON_EXTENT,
669	CSSMERR_CL_INVALID_BUNDLE_POINTER =				CSSM_CL_BASE_CL_ERROR + 1,
670	CSSMERR_CL_INVALID_CACHE_HANDLE =				CSSM_CL_BASE_CL_ERROR + 2,
671	CSSMERR_CL_INVALID_RESULTS_HANDLE =				CSSM_CL_BASE_CL_ERROR + 3,
672	CSSMERR_CL_INVALID_BUNDLE_INFO =				CSSM_CL_BASE_CL_ERROR + 4,
673	CSSMERR_CL_INVALID_CRL_INDEX =					CSSM_CL_BASE_CL_ERROR + 5,
674	CSSMERR_CL_INVALID_SCOPE =						CSSM_CL_BASE_CL_ERROR + 6,
675	CSSMERR_CL_NO_FIELD_VALUES =					CSSM_CL_BASE_CL_ERROR + 7,
676	CSSMERR_CL_SCOPE_NOT_SUPPORTED =				CSSM_CL_BASE_CL_ERROR + 8
677};
678
679/* DL Error Values Derived from Common Error Codes For All Module Types. */
680enum {
681	CSSMERR_DL_INTERNAL_ERROR =
682		CSSM_DL_BASE_ERROR + CSSM_ERRCODE_INTERNAL_ERROR,
683	CSSMERR_DL_MEMORY_ERROR =
684		CSSM_DL_BASE_ERROR + CSSM_ERRCODE_MEMORY_ERROR,
685	CSSMERR_DL_MDS_ERROR =
686		CSSM_DL_BASE_ERROR + CSSM_ERRCODE_MDS_ERROR,
687	CSSMERR_DL_INVALID_POINTER =
688		CSSM_DL_BASE_ERROR + CSSM_ERRCODE_INVALID_POINTER,
689	CSSMERR_DL_INVALID_INPUT_POINTER =
690		CSSM_DL_BASE_ERROR + CSSM_ERRCODE_INVALID_INPUT_POINTER,
691	CSSMERR_DL_INVALID_OUTPUT_POINTER =
692		CSSM_DL_BASE_ERROR + CSSM_ERRCODE_INVALID_OUTPUT_POINTER,
693	CSSMERR_DL_FUNCTION_NOT_IMPLEMENTED =
694		CSSM_DL_BASE_ERROR + CSSM_ERRCODE_FUNCTION_NOT_IMPLEMENTED,
695	CSSMERR_DL_SELF_CHECK_FAILED =
696		CSSM_DL_BASE_ERROR + CSSM_ERRCODE_SELF_CHECK_FAILED,
697	CSSMERR_DL_OS_ACCESS_DENIED =
698		CSSM_DL_BASE_ERROR + CSSM_ERRCODE_OS_ACCESS_DENIED,
699	CSSMERR_DL_FUNCTION_FAILED =
700		CSSM_DL_BASE_ERROR + CSSM_ERRCODE_FUNCTION_FAILED,
701	CSSMERR_DL_INVALID_CSP_HANDLE =
702		CSSM_DL_BASE_ERROR + CSSM_ERRCODE_INVALID_CSP_HANDLE,
703	CSSMERR_DL_INVALID_DL_HANDLE =
704		CSSM_DL_BASE_ERROR + CSSM_ERRCODE_INVALID_DL_HANDLE,
705	CSSMERR_DL_INVALID_CL_HANDLE =
706		CSSM_DL_BASE_ERROR + CSSM_ERRCODE_INVALID_CL_HANDLE,
707	CSSMERR_DL_INVALID_DB_LIST_POINTER =
708		CSSM_DL_BASE_ERROR + CSSM_ERRCODE_INVALID_DB_LIST_POINTER
709};
710
711/* DL Error Values Derived from ACL-based Error Codes. */
712enum {
713	CSSMERR_DL_OPERATION_AUTH_DENIED =
714		CSSM_DL_BASE_ERROR + CSSM_ERRCODE_OPERATION_AUTH_DENIED,
715	CSSMERR_DL_OBJECT_USE_AUTH_DENIED =
716		CSSM_DL_BASE_ERROR + CSSM_ERRCODE_OBJECT_USE_AUTH_DENIED,
717	CSSMERR_DL_OBJECT_MANIP_AUTH_DENIED =
718		CSSM_DL_BASE_ERROR + CSSM_ERRCODE_OBJECT_MANIP_AUTH_DENIED,
719	CSSMERR_DL_OBJECT_ACL_NOT_SUPPORTED =
720		CSSM_DL_BASE_ERROR + CSSM_ERRCODE_OBJECT_ACL_NOT_SUPPORTED,
721	CSSMERR_DL_OBJECT_ACL_REQUIRED =
722		CSSM_DL_BASE_ERROR + CSSM_ERRCODE_OBJECT_ACL_REQUIRED,
723	CSSMERR_DL_INVALID_ACCESS_CREDENTIALS =
724		CSSM_DL_BASE_ERROR + CSSM_ERRCODE_INVALID_ACCESS_CREDENTIALS,
725	CSSMERR_DL_INVALID_ACL_BASE_CERTS =
726		CSSM_DL_BASE_ERROR + CSSM_ERRCODE_INVALID_ACL_BASE_CERTS,
727	CSSMERR_DL_ACL_BASE_CERTS_NOT_SUPPORTED =
728		CSSM_DL_BASE_ERROR + CSSM_ERRCODE_ACL_BASE_CERTS_NOT_SUPPORTED,
729	CSSMERR_DL_INVALID_SAMPLE_VALUE =
730		CSSM_DL_BASE_ERROR + CSSM_ERRCODE_INVALID_SAMPLE_VALUE,
731	CSSMERR_DL_SAMPLE_VALUE_NOT_SUPPORTED =
732		CSSM_DL_BASE_ERROR + CSSM_ERRCODE_SAMPLE_VALUE_NOT_SUPPORTED,
733	CSSMERR_DL_INVALID_ACL_SUBJECT_VALUE =
734		CSSM_DL_BASE_ERROR + CSSM_ERRCODE_INVALID_ACL_SUBJECT_VALUE,
735	CSSMERR_DL_ACL_SUBJECT_TYPE_NOT_SUPPORTED =
736		CSSM_DL_BASE_ERROR + CSSM_ERRCODE_ACL_SUBJECT_TYPE_NOT_SUPPORTED,
737	CSSMERR_DL_INVALID_ACL_CHALLENGE_CALLBACK =
738		CSSM_DL_BASE_ERROR + CSSM_ERRCODE_INVALID_ACL_CHALLENGE_CALLBACK,
739	CSSMERR_DL_ACL_CHALLENGE_CALLBACK_FAILED =
740		CSSM_DL_BASE_ERROR + CSSM_ERRCODE_ACL_CHALLENGE_CALLBACK_FAILED,
741	CSSMERR_DL_INVALID_ACL_ENTRY_TAG =
742		CSSM_DL_BASE_ERROR + CSSM_ERRCODE_INVALID_ACL_ENTRY_TAG,
743	CSSMERR_DL_ACL_ENTRY_TAG_NOT_FOUND =
744		CSSM_DL_BASE_ERROR + CSSM_ERRCODE_ACL_ENTRY_TAG_NOT_FOUND,
745	CSSMERR_DL_INVALID_ACL_EDIT_MODE =
746		CSSM_DL_BASE_ERROR + CSSM_ERRCODE_INVALID_ACL_EDIT_MODE,
747	CSSMERR_DL_ACL_CHANGE_FAILED =
748		CSSM_DL_BASE_ERROR + CSSM_ERRCODE_ACL_CHANGE_FAILED,
749	CSSMERR_DL_INVALID_NEW_ACL_ENTRY =
750		CSSM_DL_BASE_ERROR + CSSM_ERRCODE_INVALID_NEW_ACL_ENTRY,
751	CSSMERR_DL_INVALID_NEW_ACL_OWNER =
752		CSSM_DL_BASE_ERROR + CSSM_ERRCODE_INVALID_NEW_ACL_OWNER,
753	CSSMERR_DL_ACL_DELETE_FAILED =
754		CSSM_DL_BASE_ERROR + CSSM_ERRCODE_ACL_DELETE_FAILED,
755	CSSMERR_DL_ACL_REPLACE_FAILED =
756		CSSM_DL_BASE_ERROR + CSSM_ERRCODE_ACL_REPLACE_FAILED,
757	CSSMERR_DL_ACL_ADD_FAILED =
758		CSSM_DL_BASE_ERROR + CSSM_ERRCODE_ACL_ADD_FAILED
759};
760
761/* DL Error Values for Specific Data Types. */
762enum {
763	CSSMERR_DL_INVALID_DB_HANDLE =
764		CSSM_DL_BASE_ERROR + CSSM_ERRCODE_INVALID_DB_HANDLE,
765	CSSMERR_DL_INVALID_PASSTHROUGH_ID =
766		CSSM_DL_BASE_ERROR + CSSM_ERRCODE_INVALID_PASSTHROUGH_ID,
767	CSSMERR_DL_INVALID_NETWORK_ADDR =
768		CSSM_DL_BASE_ERROR + CSSM_ERRCODE_INVALID_NETWORK_ADDR
769};
770
771/* DL Module-Specific Error Values */
772enum {
773	CSSM_DL_BASE_DL_ERROR =
774		CSSM_DL_BASE_ERROR + CSSM_ERRORCODE_COMMON_EXTENT,
775	CSSMERR_DL_DATABASE_CORRUPT =					CSSM_DL_BASE_DL_ERROR + 1,
776	CSSMERR_DL_INVALID_RECORD_INDEX =				CSSM_DL_BASE_DL_ERROR + 8,
777	CSSMERR_DL_INVALID_RECORDTYPE =					CSSM_DL_BASE_DL_ERROR + 9,
778	CSSMERR_DL_INVALID_FIELD_NAME =					CSSM_DL_BASE_DL_ERROR + 10,
779	CSSMERR_DL_UNSUPPORTED_FIELD_FORMAT =			CSSM_DL_BASE_DL_ERROR + 11,
780	CSSMERR_DL_UNSUPPORTED_INDEX_INFO =				CSSM_DL_BASE_DL_ERROR + 12,
781	CSSMERR_DL_UNSUPPORTED_LOCALITY =				CSSM_DL_BASE_DL_ERROR + 13,
782	CSSMERR_DL_UNSUPPORTED_NUM_ATTRIBUTES =			CSSM_DL_BASE_DL_ERROR + 14,
783	CSSMERR_DL_UNSUPPORTED_NUM_INDEXES =			CSSM_DL_BASE_DL_ERROR + 15,
784	CSSMERR_DL_UNSUPPORTED_NUM_RECORDTYPES =		CSSM_DL_BASE_DL_ERROR + 16,
785	CSSMERR_DL_UNSUPPORTED_RECORDTYPE =				CSSM_DL_BASE_DL_ERROR + 17,
786	CSSMERR_DL_FIELD_SPECIFIED_MULTIPLE =			CSSM_DL_BASE_DL_ERROR + 18,
787	CSSMERR_DL_INCOMPATIBLE_FIELD_FORMAT =			CSSM_DL_BASE_DL_ERROR + 19,
788	CSSMERR_DL_INVALID_PARSING_MODULE =				CSSM_DL_BASE_DL_ERROR + 20,
789	CSSMERR_DL_INVALID_DB_NAME =					CSSM_DL_BASE_DL_ERROR + 22,
790	CSSMERR_DL_DATASTORE_DOESNOT_EXIST =			CSSM_DL_BASE_DL_ERROR + 23,
791	CSSMERR_DL_DATASTORE_ALREADY_EXISTS =			CSSM_DL_BASE_DL_ERROR + 24,
792	CSSMERR_DL_DB_LOCKED =							CSSM_DL_BASE_DL_ERROR + 25,
793	CSSMERR_DL_DATASTORE_IS_OPEN =					CSSM_DL_BASE_DL_ERROR + 26,
794	CSSMERR_DL_RECORD_NOT_FOUND =					CSSM_DL_BASE_DL_ERROR + 27,
795	CSSMERR_DL_MISSING_VALUE =						CSSM_DL_BASE_DL_ERROR + 28,
796	CSSMERR_DL_UNSUPPORTED_QUERY =					CSSM_DL_BASE_DL_ERROR + 29,
797	CSSMERR_DL_UNSUPPORTED_QUERY_LIMITS =			CSSM_DL_BASE_DL_ERROR + 30,
798	CSSMERR_DL_UNSUPPORTED_NUM_SELECTION_PREDS =	CSSM_DL_BASE_DL_ERROR + 31,
799	CSSMERR_DL_UNSUPPORTED_OPERATOR =				CSSM_DL_BASE_DL_ERROR + 33,
800	CSSMERR_DL_INVALID_RESULTS_HANDLE =				CSSM_DL_BASE_DL_ERROR + 34,
801	CSSMERR_DL_INVALID_DB_LOCATION =				CSSM_DL_BASE_DL_ERROR + 35,
802	CSSMERR_DL_INVALID_ACCESS_REQUEST =				CSSM_DL_BASE_DL_ERROR + 36,
803	CSSMERR_DL_INVALID_INDEX_INFO =					CSSM_DL_BASE_DL_ERROR + 37,
804	CSSMERR_DL_INVALID_SELECTION_TAG =				CSSM_DL_BASE_DL_ERROR + 38,
805	CSSMERR_DL_INVALID_NEW_OWNER =					CSSM_DL_BASE_DL_ERROR + 39,
806	CSSMERR_DL_INVALID_RECORD_UID =					CSSM_DL_BASE_DL_ERROR + 40,
807	CSSMERR_DL_INVALID_UNIQUE_INDEX_DATA =			CSSM_DL_BASE_DL_ERROR + 41,
808	CSSMERR_DL_INVALID_MODIFY_MODE =				CSSM_DL_BASE_DL_ERROR + 42,
809	CSSMERR_DL_INVALID_OPEN_PARAMETERS =			CSSM_DL_BASE_DL_ERROR + 43,
810	CSSMERR_DL_RECORD_MODIFIED =					CSSM_DL_BASE_DL_ERROR + 44,
811	CSSMERR_DL_ENDOFDATA =							CSSM_DL_BASE_DL_ERROR + 45,
812	CSSMERR_DL_INVALID_QUERY =						CSSM_DL_BASE_DL_ERROR + 46,
813	CSSMERR_DL_INVALID_VALUE =						CSSM_DL_BASE_DL_ERROR + 47,
814	CSSMERR_DL_MULTIPLE_VALUES_UNSUPPORTED =		CSSM_DL_BASE_DL_ERROR + 48,
815	CSSMERR_DL_STALE_UNIQUE_RECORD =				CSSM_DL_BASE_DL_ERROR + 49
816};
817
818
819#ifdef __cplusplus
820}
821#endif
822
823#endif /* _CSSMERR_H_ */
824