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 {  Pascal Translation Updated:  Jonas Maebe, <jonas@freepascal.org>, September 2010 }
26 {  Pascal Translation Update: Jonas Maebe <jonas@freepascal.org>, October 2012 }
27 {  Pascal Translation Update: Jonas Maebe <jonas@freepascal.org>, August 2015 }
28 {
29     Modified for use with Free Pascal
30     Version 308
31     Please report any bugs to <gpc@microbizz.nl>
32 }
33 
34 {$ifc not defined MACOSALLINCLUDE or not MACOSALLINCLUDE}
35 {$mode macpas}
36 {$modeswitch cblocks}
37 {$packenum 1}
38 {$macro on}
39 {$inline on}
40 {$calling mwpascal}
41 
42 unit cssmerr;
43 interface
44 {$setc UNIVERSAL_INTERFACES_VERSION := $0400}
45 {$setc GAP_INTERFACES_VERSION := $0308}
46 
47 {$ifc not defined USE_CFSTR_CONSTANT_MACROS}
48     {$setc USE_CFSTR_CONSTANT_MACROS := TRUE}
49 {$endc}
50 
51 {$ifc defined CPUPOWERPC and defined CPUI386}
52 	{$error Conflicting initial definitions for CPUPOWERPC and CPUI386}
53 {$endc}
54 {$ifc defined FPC_BIG_ENDIAN and defined FPC_LITTLE_ENDIAN}
55 	{$error Conflicting initial definitions for FPC_BIG_ENDIAN and FPC_LITTLE_ENDIAN}
56 {$endc}
57 
58 {$ifc not defined __ppc__ and defined CPUPOWERPC32}
59 	{$setc __ppc__ := 1}
60 {$elsec}
61 	{$setc __ppc__ := 0}
62 {$endc}
63 {$ifc not defined __ppc64__ and defined CPUPOWERPC64}
64 	{$setc __ppc64__ := 1}
65 {$elsec}
66 	{$setc __ppc64__ := 0}
67 {$endc}
68 {$ifc not defined __i386__ and defined CPUI386}
69 	{$setc __i386__ := 1}
70 {$elsec}
71 	{$setc __i386__ := 0}
72 {$endc}
73 {$ifc not defined __x86_64__ and defined CPUX86_64}
74 	{$setc __x86_64__ := 1}
75 {$elsec}
76 	{$setc __x86_64__ := 0}
77 {$endc}
78 {$ifc not defined __arm__ and defined CPUARM}
79 	{$setc __arm__ := 1}
80 {$elsec}
81 	{$setc __arm__ := 0}
82 {$endc}
83 {$ifc not defined __arm64__ and defined CPUAARCH64}
84   {$setc __arm64__ := 1}
85 {$elsec}
86   {$setc __arm64__ := 0}
87 {$endc}
88 
89 {$ifc defined cpu64}
90   {$setc __LP64__ := 1}
91 {$elsec}
92   {$setc __LP64__ := 0}
93 {$endc}
94 
95 
96 {$ifc defined __ppc__ and __ppc__ and defined __i386__ and __i386__}
97 	{$error Conflicting definitions for __ppc__ and __i386__}
98 {$endc}
99 
100 {$ifc defined __ppc__ and __ppc__}
101 	{$setc TARGET_CPU_PPC := TRUE}
102 	{$setc TARGET_CPU_PPC64 := FALSE}
103 	{$setc TARGET_CPU_X86 := FALSE}
104 	{$setc TARGET_CPU_X86_64 := FALSE}
105 	{$setc TARGET_CPU_ARM := FALSE}
106 	{$setc TARGET_CPU_ARM64 := FALSE}
107 	{$setc TARGET_OS_MAC := TRUE}
108 	{$setc TARGET_OS_IPHONE := FALSE}
109 	{$setc TARGET_IPHONE_SIMULATOR := FALSE}
110 	{$setc TARGET_OS_EMBEDDED := FALSE}
111 {$elifc defined __ppc64__ and __ppc64__}
112 	{$setc TARGET_CPU_PPC := FALSE}
113 	{$setc TARGET_CPU_PPC64 := TRUE}
114 	{$setc TARGET_CPU_X86 := FALSE}
115 	{$setc TARGET_CPU_X86_64 := FALSE}
116 	{$setc TARGET_CPU_ARM := FALSE}
117 	{$setc TARGET_CPU_ARM64 := FALSE}
118 	{$setc TARGET_OS_MAC := TRUE}
119 	{$setc TARGET_OS_IPHONE := FALSE}
120 	{$setc TARGET_IPHONE_SIMULATOR := FALSE}
121 	{$setc TARGET_OS_EMBEDDED := FALSE}
122 {$elifc defined __i386__ and __i386__}
123 	{$setc TARGET_CPU_PPC := FALSE}
124 	{$setc TARGET_CPU_PPC64 := FALSE}
125 	{$setc TARGET_CPU_X86 := TRUE}
126 	{$setc TARGET_CPU_X86_64 := FALSE}
127 	{$setc TARGET_CPU_ARM := FALSE}
128 	{$setc TARGET_CPU_ARM64 := FALSE}
129 {$ifc defined iphonesim}
130  	{$setc TARGET_OS_MAC := FALSE}
131 	{$setc TARGET_OS_IPHONE := TRUE}
132 	{$setc TARGET_IPHONE_SIMULATOR := TRUE}
133 {$elsec}
134 	{$setc TARGET_OS_MAC := TRUE}
135 	{$setc TARGET_OS_IPHONE := FALSE}
136 	{$setc TARGET_IPHONE_SIMULATOR := FALSE}
137 {$endc}
138 	{$setc TARGET_OS_EMBEDDED := FALSE}
139 {$elifc defined __x86_64__ and __x86_64__}
140 	{$setc TARGET_CPU_PPC := FALSE}
141 	{$setc TARGET_CPU_PPC64 := FALSE}
142 	{$setc TARGET_CPU_X86 := FALSE}
143 	{$setc TARGET_CPU_X86_64 := TRUE}
144 	{$setc TARGET_CPU_ARM := FALSE}
145 	{$setc TARGET_CPU_ARM64 := FALSE}
146 {$ifc defined iphonesim}
147  	{$setc TARGET_OS_MAC := FALSE}
148 	{$setc TARGET_OS_IPHONE := TRUE}
149 	{$setc TARGET_IPHONE_SIMULATOR := TRUE}
150 {$elsec}
151 	{$setc TARGET_OS_MAC := TRUE}
152 	{$setc TARGET_OS_IPHONE := FALSE}
153 	{$setc TARGET_IPHONE_SIMULATOR := FALSE}
154 {$endc}
155 	{$setc TARGET_OS_EMBEDDED := FALSE}
156 {$elifc defined __arm__ and __arm__}
157 	{$setc TARGET_CPU_PPC := FALSE}
158 	{$setc TARGET_CPU_PPC64 := FALSE}
159 	{$setc TARGET_CPU_X86 := FALSE}
160 	{$setc TARGET_CPU_X86_64 := FALSE}
161 	{$setc TARGET_CPU_ARM := TRUE}
162 	{$setc TARGET_CPU_ARM64 := FALSE}
163 	{$setc TARGET_OS_MAC := FALSE}
164 	{$setc TARGET_OS_IPHONE := TRUE}
165 	{$setc TARGET_IPHONE_SIMULATOR := FALSE}
166 	{$setc TARGET_OS_EMBEDDED := TRUE}
167 {$elifc defined __arm64__ and __arm64__}
168 	{$setc TARGET_CPU_PPC := FALSE}
169 	{$setc TARGET_CPU_PPC64 := FALSE}
170 	{$setc TARGET_CPU_X86 := FALSE}
171 	{$setc TARGET_CPU_X86_64 := FALSE}
172 	{$setc TARGET_CPU_ARM := FALSE}
173 	{$setc TARGET_CPU_ARM64 := TRUE}
174 {$ifc defined ios}
175 	{$setc TARGET_OS_MAC := FALSE}
176 	{$setc TARGET_OS_IPHONE := TRUE}
177 	{$setc TARGET_OS_EMBEDDED := TRUE}
178 {$elsec}
179 	{$setc TARGET_OS_MAC := TRUE}
180 	{$setc TARGET_OS_IPHONE := FALSE}
181 	{$setc TARGET_OS_EMBEDDED := FALSE}
182 {$endc}
183 	{$setc TARGET_IPHONE_SIMULATOR := FALSE}
184 {$elsec}
185 	{$error __ppc__ nor __ppc64__ nor __i386__ nor __x86_64__ nor __arm__ nor __arm64__ is defined.}
186 {$endc}
187 
188 {$ifc defined __LP64__ and __LP64__ }
189   {$setc TARGET_CPU_64 := TRUE}
190 {$elsec}
191   {$setc TARGET_CPU_64 := FALSE}
192 {$endc}
193 
194 {$ifc defined FPC_BIG_ENDIAN}
195 	{$setc TARGET_RT_BIG_ENDIAN := TRUE}
196 	{$setc TARGET_RT_LITTLE_ENDIAN := FALSE}
197 {$elifc defined FPC_LITTLE_ENDIAN}
198 	{$setc TARGET_RT_BIG_ENDIAN := FALSE}
199 	{$setc TARGET_RT_LITTLE_ENDIAN := TRUE}
200 {$elsec}
201 	{$error Neither FPC_BIG_ENDIAN nor FPC_LITTLE_ENDIAN are defined.}
202 {$endc}
203 {$setc ACCESSOR_CALLS_ARE_FUNCTIONS := TRUE}
204 {$setc CALL_NOT_IN_CARBON := FALSE}
205 {$setc OLDROUTINENAMES := FALSE}
206 {$setc OPAQUE_TOOLBOX_STRUCTS := TRUE}
207 {$setc OPAQUE_UPP_TYPES := TRUE}
208 {$setc OTCARBONAPPLICATION := TRUE}
209 {$setc OTKERNEL := FALSE}
210 {$setc PM_USE_SESSION_APIS := TRUE}
211 {$setc TARGET_API_MAC_CARBON := TRUE}
212 {$setc TARGET_API_MAC_OS8 := FALSE}
213 {$setc TARGET_API_MAC_OSX := TRUE}
214 {$setc TARGET_CARBON := TRUE}
215 {$setc TARGET_CPU_68K := FALSE}
216 {$setc TARGET_CPU_MIPS := FALSE}
217 {$setc TARGET_CPU_SPARC := FALSE}
218 {$setc TARGET_OS_UNIX := FALSE}
219 {$setc TARGET_OS_WIN32 := FALSE}
220 {$setc TARGET_RT_MAC_68881 := FALSE}
221 {$setc TARGET_RT_MAC_CFM := FALSE}
222 {$setc TARGET_RT_MAC_MACHO := TRUE}
223 {$setc TYPED_FUNCTION_POINTERS := TRUE}
224 {$setc TYPE_BOOL := FALSE}
225 {$setc TYPE_EXTENDED := FALSE}
226 {$setc TYPE_LONGLONG := TRUE}
227 uses MacTypes;
228 {$endc} {not MACOSALLINCLUDE}
229 
230 
231 {$ifc TARGET_OS_MAC}
232 
233 {$packrecords c}
234 
235 
236 {
237  * NOTE: To translate CSSM error codes into something vaguely
238  * human-readable, use the cssmPerror function in cssmapple.h.
239  * This function will also decode other Security layer errors
240  * (i.e. those with names like kSec...).
241  }
242 
243 
244 { Common error codes. }
245 const
246 	CSSM_BASE_ERROR = $80010000; { -0x7FFF0000 }
247 
248 const
249 	CSSM_ERRORCODE_MODULE_EXTENT = $00000800;
250 	CSSM_ERRORCODE_CUSTOM_OFFSET = $00000400;
251 	CSSM_ERRORCODE_COMMON_EXTENT = $100;
252 
253 { Macros for convertible error code manipulation. }
254 {
255 #define CSSM_ERRCODE(CODE) \
256 	(((CODE) - CSSM_BASE_ERROR) & (CSSM_ERRORCODE_MODULE_EXTENT - 1))
257 
258 #define CSSM_ERRBASE(CODE) \
259 	((((CODE) - CSSM_BASE_ERROR) & ~(CSSM_ERRORCODE_MODULE_EXTENT - 1)) + CSSM_BASE_ERROR)
260 
261 #define CSSM_ERR_IS_CONVERTIBLE(CODE) \
262 	(CSSM_ERRCODE(CODE) < CSSM_ERRORCODE_COMMON_EXTENT)
263 
264 #define CSSM_ERR_TAG(CODE, BASE) \
265 	(CSSM_ERRCODE(CODE) + (BASE))
266 }
267 
268 
CSSM_ERRCODEnull269 function CSSM_ERRCODE(arg: UInt32): UInt32; inline;
CSSM_ERRBASEnull270 function CSSM_ERRBASE(arg: UInt32): UInt32; inline;
CSSM_ERR_IS_CONVERTIBLEnull271 function CSSM_ERR_IS_CONVERTIBLE(arg: UInt32): Boolean; inline;
CSSM_ERR_TAGnull272 function CSSM_ERR_TAG(code, base: UInt32): UInt32; inline;
273 
274 
275 { Error Bases for different module types. }
276 const
277 	CSSM_CSSM_BASE_ERROR = CSSM_BASE_ERROR;
278 	CSSM_CSSM_PRIVATE_ERROR = CSSM_BASE_ERROR + CSSM_ERRORCODE_CUSTOM_OFFSET;
279 	CSSM_CSP_BASE_ERROR = CSSM_CSSM_BASE_ERROR + CSSM_ERRORCODE_MODULE_EXTENT;
280 	CSSM_CSP_PRIVATE_ERROR = CSSM_CSP_BASE_ERROR + CSSM_ERRORCODE_CUSTOM_OFFSET;
281 	CSSM_DL_BASE_ERROR = CSSM_CSP_BASE_ERROR + CSSM_ERRORCODE_MODULE_EXTENT;
282 	CSSM_DL_PRIVATE_ERROR = CSSM_DL_BASE_ERROR + CSSM_ERRORCODE_CUSTOM_OFFSET;
283 	CSSM_CL_BASE_ERROR = CSSM_DL_BASE_ERROR + CSSM_ERRORCODE_MODULE_EXTENT;
284 	CSSM_CL_PRIVATE_ERROR = CSSM_CL_BASE_ERROR + CSSM_ERRORCODE_CUSTOM_OFFSET;
285 	CSSM_TP_BASE_ERROR = CSSM_CL_BASE_ERROR + CSSM_ERRORCODE_MODULE_EXTENT;
286 	CSSM_TP_PRIVATE_ERROR = CSSM_TP_BASE_ERROR + CSSM_ERRORCODE_CUSTOM_OFFSET;
287 	CSSM_KR_BASE_ERROR = CSSM_TP_BASE_ERROR + CSSM_ERRORCODE_MODULE_EXTENT;
288 	CSSM_KR_PRIVATE_ERROR = CSSM_KR_BASE_ERROR + CSSM_ERRORCODE_CUSTOM_OFFSET;
289 	CSSM_AC_BASE_ERROR = CSSM_KR_BASE_ERROR + CSSM_ERRORCODE_MODULE_EXTENT;
290 	CSSM_AC_PRIVATE_ERROR = CSSM_AC_BASE_ERROR + CSSM_ERRORCODE_CUSTOM_OFFSET;
291 
292 { XXX @@@ MDS Error Bases same as DL for now. }
293 const
294 	CSSM_MDS_BASE_ERROR = CSSM_CSP_BASE_ERROR + CSSM_ERRORCODE_MODULE_EXTENT;
295 	CSSM_MDS_PRIVATE_ERROR = CSSM_MDS_BASE_ERROR + CSSM_ERRORCODE_CUSTOM_OFFSET;
296 
297 { General Error Values. }
298 const
299 	CSSMERR_CSSM_INVALID_ADDIN_HANDLE = CSSM_CSSM_BASE_ERROR + CSSM_ERRORCODE_COMMON_EXTENT + 1;
300 	CSSMERR_CSSM_NOT_INITIALIZED = CSSM_CSSM_BASE_ERROR + CSSM_ERRORCODE_COMMON_EXTENT + 2;
301 	CSSMERR_CSSM_INVALID_HANDLE_USAGE = CSSM_CSSM_BASE_ERROR + CSSM_ERRORCODE_COMMON_EXTENT + 3;
302 	CSSMERR_CSSM_PVC_REFERENT_NOT_FOUND = CSSM_CSSM_BASE_ERROR + CSSM_ERRORCODE_COMMON_EXTENT + 4;
303 	CSSMERR_CSSM_FUNCTION_INTEGRITY_FAIL = CSSM_CSSM_BASE_ERROR + CSSM_ERRORCODE_COMMON_EXTENT + 5;
304 
305 { Common Error Codes For All Module Types. }
306 const
307 	CSSM_ERRCODE_INTERNAL_ERROR = $0001;
308 	CSSM_ERRCODE_MEMORY_ERROR = $0002;
309 	CSSM_ERRCODE_MDS_ERROR = $0003;
310 	CSSM_ERRCODE_INVALID_POINTER = $0004;
311 	CSSM_ERRCODE_INVALID_INPUT_POINTER = $0005;
312 	CSSM_ERRCODE_INVALID_OUTPUT_POINTER = $0006;
313 	CSSM_ERRCODE_FUNCTION_NOT_IMPLEMENTED = $0007;
314 	CSSM_ERRCODE_SELF_CHECK_FAILED = $0008;
315 	CSSM_ERRCODE_OS_ACCESS_DENIED = $0009;
316 	CSSM_ERRCODE_FUNCTION_FAILED = $000A;
317 	CSSM_ERRCODE_MODULE_MANIFEST_VERIFY_FAILED = $000B;
318 	CSSM_ERRCODE_INVALID_GUID = $000C;
319 
320 { Common Error Codes for ACLs }
321 const
322 	CSSM_ERRCODE_OPERATION_AUTH_DENIED = $0020;
323 	CSSM_ERRCODE_OBJECT_USE_AUTH_DENIED = $0021;
324 	CSSM_ERRCODE_OBJECT_MANIP_AUTH_DENIED = $0022;
325 	CSSM_ERRCODE_OBJECT_ACL_NOT_SUPPORTED = $0023;
326 	CSSM_ERRCODE_OBJECT_ACL_REQUIRED = $0024;
327 	CSSM_ERRCODE_INVALID_ACCESS_CREDENTIALS = $0025;
328 	CSSM_ERRCODE_INVALID_ACL_BASE_CERTS = $0026;
329 	CSSM_ERRCODE_ACL_BASE_CERTS_NOT_SUPPORTED = $0027;
330 	CSSM_ERRCODE_INVALID_SAMPLE_VALUE = $0028;
331 	CSSM_ERRCODE_SAMPLE_VALUE_NOT_SUPPORTED = $0029;
332 	CSSM_ERRCODE_INVALID_ACL_SUBJECT_VALUE = $002A;
333 	CSSM_ERRCODE_ACL_SUBJECT_TYPE_NOT_SUPPORTED = $002B;
334 	CSSM_ERRCODE_INVALID_ACL_CHALLENGE_CALLBACK = $002C;
335 	CSSM_ERRCODE_ACL_CHALLENGE_CALLBACK_FAILED = $002D;
336 	CSSM_ERRCODE_INVALID_ACL_ENTRY_TAG = $002E;
337 	CSSM_ERRCODE_ACL_ENTRY_TAG_NOT_FOUND = $002F;
338 	CSSM_ERRCODE_INVALID_ACL_EDIT_MODE = $0030;
339 	CSSM_ERRCODE_ACL_CHANGE_FAILED = $0031;
340 	CSSM_ERRCODE_INVALID_NEW_ACL_ENTRY = $0032;
341 	CSSM_ERRCODE_INVALID_NEW_ACL_OWNER = $0033;
342 	CSSM_ERRCODE_ACL_DELETE_FAILED = $0034;
343 	CSSM_ERRCODE_ACL_REPLACE_FAILED = $0035;
344 	CSSM_ERRCODE_ACL_ADD_FAILED = $0036;
345 
346 { Common Error Codes for Specific Data Types }
347 const
348 	CSSM_ERRCODE_INVALID_CONTEXT_HANDLE = $0040;
349 	CSSM_ERRCODE_INCOMPATIBLE_VERSION = $0041;
350 	CSSM_ERRCODE_INVALID_CERTGROUP_POINTER = $0042;
351 	CSSM_ERRCODE_INVALID_CERT_POINTER = $0043;
352 	CSSM_ERRCODE_INVALID_CRL_POINTER = $0044;
353 	CSSM_ERRCODE_INVALID_FIELD_POINTER = $0045;
354 	CSSM_ERRCODE_INVALID_DATA = $0046;
355 	CSSM_ERRCODE_CRL_ALREADY_SIGNED = $0047;
356 	CSSM_ERRCODE_INVALID_NUMBER_OF_FIELDS = $0048;
357 	CSSM_ERRCODE_VERIFICATION_FAILURE = $0049;
358 	CSSM_ERRCODE_INVALID_DB_HANDLE = $004A;
359 	CSSM_ERRCODE_PRIVILEGE_NOT_GRANTED = $004B;
360 	CSSM_ERRCODE_INVALID_DB_LIST = $004C;
361 	CSSM_ERRCODE_INVALID_DB_LIST_POINTER = $004D;
362 	CSSM_ERRCODE_UNKNOWN_FORMAT = $004E;
363 	CSSM_ERRCODE_UNKNOWN_TAG = $004F;
364 	CSSM_ERRCODE_INVALID_CSP_HANDLE = $0050;
365 	CSSM_ERRCODE_INVALID_DL_HANDLE = $0051;
366 	CSSM_ERRCODE_INVALID_CL_HANDLE = $0052;
367 	CSSM_ERRCODE_INVALID_TP_HANDLE = $0053;
368 	CSSM_ERRCODE_INVALID_KR_HANDLE = $0054;
369 	CSSM_ERRCODE_INVALID_AC_HANDLE = $0055;
370 	CSSM_ERRCODE_INVALID_PASSTHROUGH_ID = $0056;
371 	CSSM_ERRCODE_INVALID_NETWORK_ADDR = $0057;
372 	CSSM_ERRCODE_INVALID_CRYPTO_DATA = $0058;
373 
374 { CSSM Error Values Derived from Common Error Codes For All Module Types. }
375 const
376 	CSSMERR_CSSM_INTERNAL_ERROR = CSSM_CSSM_BASE_ERROR + CSSM_ERRCODE_INTERNAL_ERROR;
377 	CSSMERR_CSSM_MEMORY_ERROR = CSSM_CSSM_BASE_ERROR + CSSM_ERRCODE_MEMORY_ERROR;
378 	CSSMERR_CSSM_MDS_ERROR = CSSM_CSSM_BASE_ERROR + CSSM_ERRCODE_MDS_ERROR;
379 	CSSMERR_CSSM_INVALID_POINTER = CSSM_CSSM_BASE_ERROR + CSSM_ERRCODE_INVALID_POINTER;
380 	CSSMERR_CSSM_INVALID_INPUT_POINTER = CSSM_CSSM_BASE_ERROR + CSSM_ERRCODE_INVALID_INPUT_POINTER;
381 	CSSMERR_CSSM_INVALID_OUTPUT_POINTER = CSSM_CSSM_BASE_ERROR + CSSM_ERRCODE_INVALID_OUTPUT_POINTER;
382 	CSSMERR_CSSM_FUNCTION_NOT_IMPLEMENTED = CSSM_CSSM_BASE_ERROR + CSSM_ERRCODE_FUNCTION_NOT_IMPLEMENTED;
383 	CSSMERR_CSSM_SELF_CHECK_FAILED = CSSM_CSSM_BASE_ERROR + CSSM_ERRCODE_SELF_CHECK_FAILED;
384 	CSSMERR_CSSM_OS_ACCESS_DENIED = CSSM_CSSM_BASE_ERROR + CSSM_ERRCODE_OS_ACCESS_DENIED;
385 	CSSMERR_CSSM_FUNCTION_FAILED = CSSM_CSSM_BASE_ERROR + CSSM_ERRCODE_FUNCTION_FAILED;
386 	CSSMERR_CSSM_MODULE_MANIFEST_VERIFY_FAILED = CSSM_CSSM_BASE_ERROR + CSSM_ERRCODE_MODULE_MANIFEST_VERIFY_FAILED;
387 	CSSMERR_CSSM_INVALID_GUID = CSSM_CSSM_BASE_ERROR + CSSM_ERRCODE_INVALID_GUID;
388 
389 { CSSM Error Values for Specific Data Types. }
390 const
391 	CSSMERR_CSSM_INVALID_CONTEXT_HANDLE = CSSM_CSSM_BASE_ERROR + CSSM_ERRCODE_INVALID_CONTEXT_HANDLE;
392 	CSSMERR_CSSM_INCOMPATIBLE_VERSION = CSSM_CSSM_BASE_ERROR + CSSM_ERRCODE_INCOMPATIBLE_VERSION;
393 	CSSMERR_CSSM_PRIVILEGE_NOT_GRANTED = CSSM_CSSM_BASE_ERROR + CSSM_ERRCODE_PRIVILEGE_NOT_GRANTED;
394 
395 { CSSM Module-Specific Error Values }
396 const
397 	CSSM_CSSM_BASE_CSSM_ERROR = CSSM_CSSM_BASE_ERROR + CSSM_ERRORCODE_COMMON_EXTENT + $10;
398 	CSSMERR_CSSM_SCOPE_NOT_SUPPORTED = CSSM_CSSM_BASE_CSSM_ERROR + 1;
399 	CSSMERR_CSSM_PVC_ALREADY_CONFIGURED = CSSM_CSSM_BASE_CSSM_ERROR + 2;
400 	CSSMERR_CSSM_INVALID_PVC = CSSM_CSSM_BASE_CSSM_ERROR + 3;
401 	CSSMERR_CSSM_EMM_LOAD_FAILED = CSSM_CSSM_BASE_CSSM_ERROR + 4;
402 	CSSMERR_CSSM_EMM_UNLOAD_FAILED = CSSM_CSSM_BASE_CSSM_ERROR + 5;
403 	CSSMERR_CSSM_ADDIN_LOAD_FAILED = CSSM_CSSM_BASE_CSSM_ERROR + 6;
404 	CSSMERR_CSSM_INVALID_KEY_HIERARCHY = CSSM_CSSM_BASE_CSSM_ERROR + 7;
405 	CSSMERR_CSSM_ADDIN_UNLOAD_FAILED = CSSM_CSSM_BASE_CSSM_ERROR + 8;
406 	CSSMERR_CSSM_LIB_REF_NOT_FOUND = CSSM_CSSM_BASE_CSSM_ERROR + 9;
407 	CSSMERR_CSSM_INVALID_ADDIN_FUNCTION_TABLE = CSSM_CSSM_BASE_CSSM_ERROR + 10;
408 	CSSMERR_CSSM_EMM_AUTHENTICATE_FAILED = CSSM_CSSM_BASE_CSSM_ERROR + 11;
409 	CSSMERR_CSSM_ADDIN_AUTHENTICATE_FAILED = CSSM_CSSM_BASE_CSSM_ERROR + 12;
410 	CSSMERR_CSSM_INVALID_SERVICE_MASK = CSSM_CSSM_BASE_CSSM_ERROR + 13;
411 	CSSMERR_CSSM_MODULE_NOT_LOADED = CSSM_CSSM_BASE_CSSM_ERROR + 14;
412 	CSSMERR_CSSM_INVALID_SUBSERVICEID = CSSM_CSSM_BASE_CSSM_ERROR + 15;
413 	CSSMERR_CSSM_BUFFER_TOO_SMALL = CSSM_CSSM_BASE_CSSM_ERROR + 16;
414 	CSSMERR_CSSM_INVALID_ATTRIBUTE = CSSM_CSSM_BASE_CSSM_ERROR + 17;
415 	CSSMERR_CSSM_ATTRIBUTE_NOT_IN_CONTEXT = CSSM_CSSM_BASE_CSSM_ERROR + 18;
416 	CSSMERR_CSSM_MODULE_MANAGER_INITIALIZE_FAIL = CSSM_CSSM_BASE_CSSM_ERROR + 19;
417 	CSSMERR_CSSM_MODULE_MANAGER_NOT_FOUND = CSSM_CSSM_BASE_CSSM_ERROR + 20;
418 	CSSMERR_CSSM_EVENT_NOTIFICATION_CALLBACK_NOT_FOUND = CSSM_CSSM_BASE_CSSM_ERROR + 21;
419 
420 { CSP Error Values Derived from Common Error Codes For All Module Types. }
421 const
422 	CSSMERR_CSP_INTERNAL_ERROR = CSSM_CSP_BASE_ERROR + CSSM_ERRCODE_INTERNAL_ERROR;
423 	CSSMERR_CSP_MEMORY_ERROR = CSSM_CSP_BASE_ERROR + CSSM_ERRCODE_MEMORY_ERROR;
424 	CSSMERR_CSP_MDS_ERROR = CSSM_CSP_BASE_ERROR + CSSM_ERRCODE_MDS_ERROR;
425 	CSSMERR_CSP_INVALID_POINTER = CSSM_CSP_BASE_ERROR + CSSM_ERRCODE_INVALID_POINTER;
426 	CSSMERR_CSP_INVALID_INPUT_POINTER = CSSM_CSP_BASE_ERROR + CSSM_ERRCODE_INVALID_INPUT_POINTER;
427 	CSSMERR_CSP_INVALID_OUTPUT_POINTER = CSSM_CSP_BASE_ERROR + CSSM_ERRCODE_INVALID_OUTPUT_POINTER;
428 	CSSMERR_CSP_FUNCTION_NOT_IMPLEMENTED = CSSM_CSP_BASE_ERROR + CSSM_ERRCODE_FUNCTION_NOT_IMPLEMENTED;
429 	CSSMERR_CSP_SELF_CHECK_FAILED = CSSM_CSP_BASE_ERROR + CSSM_ERRCODE_SELF_CHECK_FAILED;
430 	CSSMERR_CSP_OS_ACCESS_DENIED = CSSM_CSP_BASE_ERROR + CSSM_ERRCODE_OS_ACCESS_DENIED;
431 	CSSMERR_CSP_FUNCTION_FAILED = CSSM_CSP_BASE_ERROR + CSSM_ERRCODE_FUNCTION_FAILED;
432 
433 { CSP Error Values Derived from ACL-based Error Codes. }
434 const
435 	CSSMERR_CSP_OPERATION_AUTH_DENIED = CSSM_CSP_BASE_ERROR + CSSM_ERRCODE_OPERATION_AUTH_DENIED;
436 	CSSMERR_CSP_OBJECT_USE_AUTH_DENIED = CSSM_CSP_BASE_ERROR + CSSM_ERRCODE_OBJECT_USE_AUTH_DENIED;
437 	CSSMERR_CSP_OBJECT_MANIP_AUTH_DENIED = CSSM_CSP_BASE_ERROR + CSSM_ERRCODE_OBJECT_MANIP_AUTH_DENIED;
438 	CSSMERR_CSP_OBJECT_ACL_NOT_SUPPORTED = CSSM_CSP_BASE_ERROR + CSSM_ERRCODE_OBJECT_ACL_NOT_SUPPORTED;
439 	CSSMERR_CSP_OBJECT_ACL_REQUIRED = CSSM_CSP_BASE_ERROR + CSSM_ERRCODE_OBJECT_ACL_REQUIRED;
440 	CSSMERR_CSP_INVALID_ACCESS_CREDENTIALS = CSSM_CSP_BASE_ERROR + CSSM_ERRCODE_INVALID_ACCESS_CREDENTIALS;
441 	CSSMERR_CSP_INVALID_ACL_BASE_CERTS = CSSM_CSP_BASE_ERROR + CSSM_ERRCODE_INVALID_ACL_BASE_CERTS;
442 	CSSMERR_CSP_ACL_BASE_CERTS_NOT_SUPPORTED = CSSM_CSP_BASE_ERROR + CSSM_ERRCODE_ACL_BASE_CERTS_NOT_SUPPORTED;
443 	CSSMERR_CSP_INVALID_SAMPLE_VALUE = CSSM_CSP_BASE_ERROR + CSSM_ERRCODE_INVALID_SAMPLE_VALUE;
444 	CSSMERR_CSP_SAMPLE_VALUE_NOT_SUPPORTED = CSSM_CSP_BASE_ERROR + CSSM_ERRCODE_SAMPLE_VALUE_NOT_SUPPORTED;
445 	CSSMERR_CSP_INVALID_ACL_SUBJECT_VALUE = CSSM_CSP_BASE_ERROR + CSSM_ERRCODE_INVALID_ACL_SUBJECT_VALUE;
446 	CSSMERR_CSP_ACL_SUBJECT_TYPE_NOT_SUPPORTED = CSSM_CSP_BASE_ERROR + CSSM_ERRCODE_ACL_SUBJECT_TYPE_NOT_SUPPORTED;
447 	CSSMERR_CSP_INVALID_ACL_CHALLENGE_CALLBACK = CSSM_CSP_BASE_ERROR + CSSM_ERRCODE_INVALID_ACL_CHALLENGE_CALLBACK;
448 	CSSMERR_CSP_ACL_CHALLENGE_CALLBACK_FAILED = CSSM_CSP_BASE_ERROR + CSSM_ERRCODE_ACL_CHALLENGE_CALLBACK_FAILED;
449 	CSSMERR_CSP_INVALID_ACL_ENTRY_TAG = CSSM_CSP_BASE_ERROR + CSSM_ERRCODE_INVALID_ACL_ENTRY_TAG;
450 	CSSMERR_CSP_ACL_ENTRY_TAG_NOT_FOUND = CSSM_CSP_BASE_ERROR + CSSM_ERRCODE_ACL_ENTRY_TAG_NOT_FOUND;
451 	CSSMERR_CSP_INVALID_ACL_EDIT_MODE = CSSM_CSP_BASE_ERROR + CSSM_ERRCODE_INVALID_ACL_EDIT_MODE;
452 	CSSMERR_CSP_ACL_CHANGE_FAILED = CSSM_CSP_BASE_ERROR + CSSM_ERRCODE_ACL_CHANGE_FAILED;
453 	CSSMERR_CSP_INVALID_NEW_ACL_ENTRY = CSSM_CSP_BASE_ERROR + CSSM_ERRCODE_INVALID_NEW_ACL_ENTRY;
454 	CSSMERR_CSP_INVALID_NEW_ACL_OWNER = CSSM_CSP_BASE_ERROR + CSSM_ERRCODE_INVALID_NEW_ACL_OWNER;
455 	CSSMERR_CSP_ACL_DELETE_FAILED = CSSM_CSP_BASE_ERROR + CSSM_ERRCODE_ACL_DELETE_FAILED;
456 	CSSMERR_CSP_ACL_REPLACE_FAILED = CSSM_CSP_BASE_ERROR + CSSM_ERRCODE_ACL_REPLACE_FAILED;
457 	CSSMERR_CSP_ACL_ADD_FAILED = CSSM_CSP_BASE_ERROR + CSSM_ERRCODE_ACL_ADD_FAILED;
458 
459 { CSP Error Values for Specific Data Types. }
460 const
461 	CSSMERR_CSP_INVALID_CONTEXT_HANDLE = CSSM_CSP_BASE_ERROR + CSSM_ERRCODE_INVALID_CONTEXT_HANDLE;
462 	CSSMERR_CSP_PRIVILEGE_NOT_GRANTED = CSSM_CSP_BASE_ERROR + CSSM_ERRCODE_PRIVILEGE_NOT_GRANTED;
463 	CSSMERR_CSP_INVALID_DATA = CSSM_CSP_BASE_ERROR + CSSM_ERRCODE_INVALID_DATA;
464 	CSSMERR_CSP_INVALID_PASSTHROUGH_ID = CSSM_CSP_BASE_ERROR + CSSM_ERRCODE_INVALID_PASSTHROUGH_ID;
465 	CSSMERR_CSP_INVALID_CRYPTO_DATA = CSSM_CSP_BASE_ERROR + CSSM_ERRCODE_INVALID_CRYPTO_DATA;
466 
467 { CSP Module-Specific Error Values }
468 const
469 { General CSP Error Values }
470 	CSSM_CSP_BASE_CSP_ERROR = CSSM_CSP_BASE_ERROR + CSSM_ERRORCODE_COMMON_EXTENT;
471 	CSSMERR_CSP_INPUT_LENGTH_ERROR = CSSM_CSP_BASE_CSP_ERROR + 1;
472 	CSSMERR_CSP_OUTPUT_LENGTH_ERROR = CSSM_CSP_BASE_CSP_ERROR + 2;
473 	CSSMERR_CSP_PRIVILEGE_NOT_SUPPORTED = CSSM_CSP_BASE_CSP_ERROR + 3;
474 	CSSMERR_CSP_DEVICE_ERROR = CSSM_CSP_BASE_CSP_ERROR + 4;
475 	CSSMERR_CSP_DEVICE_MEMORY_ERROR = CSSM_CSP_BASE_CSP_ERROR + 5;
476 	CSSMERR_CSP_ATTACH_HANDLE_BUSY = CSSM_CSP_BASE_CSP_ERROR + 6;
477 	CSSMERR_CSP_NOT_LOGGED_IN = CSSM_CSP_BASE_CSP_ERROR + 7;
478 	CSSMERR_CSP_INVALID_KEY = CSSM_CSP_BASE_CSP_ERROR + 16;
479 	CSSMERR_CSP_INVALID_KEY_REFERENCE = CSSM_CSP_BASE_CSP_ERROR + 17;
480 	CSSMERR_CSP_INVALID_KEY_CLASS = CSSM_CSP_BASE_CSP_ERROR + 18;
481 	CSSMERR_CSP_ALGID_MISMATCH = CSSM_CSP_BASE_CSP_ERROR + 19;
482 	CSSMERR_CSP_KEY_USAGE_INCORRECT = CSSM_CSP_BASE_CSP_ERROR + 20;
483 	CSSMERR_CSP_KEY_BLOB_TYPE_INCORRECT = CSSM_CSP_BASE_CSP_ERROR + 21;
484 	CSSMERR_CSP_KEY_HEADER_INCONSISTENT = CSSM_CSP_BASE_CSP_ERROR + 22;
485 	CSSMERR_CSP_UNSUPPORTED_KEY_FORMAT = CSSM_CSP_BASE_CSP_ERROR + 23;
486 	CSSMERR_CSP_UNSUPPORTED_KEY_SIZE = CSSM_CSP_BASE_CSP_ERROR + 24;
487 	CSSMERR_CSP_INVALID_KEY_POINTER = CSSM_CSP_BASE_CSP_ERROR + 25;
488 	CSSMERR_CSP_INVALID_KEYUSAGE_MASK = CSSM_CSP_BASE_CSP_ERROR + 26;
489 	CSSMERR_CSP_UNSUPPORTED_KEYUSAGE_MASK = CSSM_CSP_BASE_CSP_ERROR + 27;
490 	CSSMERR_CSP_INVALID_KEYATTR_MASK = CSSM_CSP_BASE_CSP_ERROR + 28;
491 	CSSMERR_CSP_UNSUPPORTED_KEYATTR_MASK = CSSM_CSP_BASE_CSP_ERROR + 29;
492 	CSSMERR_CSP_INVALID_KEY_LABEL = CSSM_CSP_BASE_CSP_ERROR + 30;
493 	CSSMERR_CSP_UNSUPPORTED_KEY_LABEL = CSSM_CSP_BASE_CSP_ERROR + 31;
494 	CSSMERR_CSP_INVALID_KEY_FORMAT = CSSM_CSP_BASE_CSP_ERROR + 32;
495 
496 	{ CSP Vector of Buffers Error Values. }
497 	CSSMERR_CSP_INVALID_DATA_COUNT = CSSM_CSP_BASE_CSP_ERROR + 40;
498 	CSSMERR_CSP_VECTOR_OF_BUFS_UNSUPPORTED = CSSM_CSP_BASE_CSP_ERROR + 41;
499 	CSSMERR_CSP_INVALID_INPUT_VECTOR = CSSM_CSP_BASE_CSP_ERROR + 42;
500 	CSSMERR_CSP_INVALID_OUTPUT_VECTOR = CSSM_CSP_BASE_CSP_ERROR + 43;
501 
502 	{ CSP Cryptographic Context Error Values. }
503 	CSSMERR_CSP_INVALID_CONTEXT = CSSM_CSP_BASE_CSP_ERROR + 48;
504 	CSSMERR_CSP_INVALID_ALGORITHM = CSSM_CSP_BASE_CSP_ERROR + 49;
505 	CSSMERR_CSP_INVALID_ATTR_KEY = CSSM_CSP_BASE_CSP_ERROR + 54;
506 	CSSMERR_CSP_MISSING_ATTR_KEY = CSSM_CSP_BASE_CSP_ERROR + 55;
507 	CSSMERR_CSP_INVALID_ATTR_INIT_VECTOR = CSSM_CSP_BASE_CSP_ERROR + 56;
508 	CSSMERR_CSP_MISSING_ATTR_INIT_VECTOR = CSSM_CSP_BASE_CSP_ERROR + 57;
509 	CSSMERR_CSP_INVALID_ATTR_SALT = CSSM_CSP_BASE_CSP_ERROR + 58;
510 	CSSMERR_CSP_MISSING_ATTR_SALT = CSSM_CSP_BASE_CSP_ERROR + 59;
511 	CSSMERR_CSP_INVALID_ATTR_PADDING = CSSM_CSP_BASE_CSP_ERROR + 60;
512 	CSSMERR_CSP_MISSING_ATTR_PADDING = CSSM_CSP_BASE_CSP_ERROR + 61;
513 	CSSMERR_CSP_INVALID_ATTR_RANDOM = CSSM_CSP_BASE_CSP_ERROR + 62;
514 	CSSMERR_CSP_MISSING_ATTR_RANDOM = CSSM_CSP_BASE_CSP_ERROR + 63;
515 	CSSMERR_CSP_INVALID_ATTR_SEED = CSSM_CSP_BASE_CSP_ERROR + 64;
516 	CSSMERR_CSP_MISSING_ATTR_SEED = CSSM_CSP_BASE_CSP_ERROR + 65;
517 	CSSMERR_CSP_INVALID_ATTR_PASSPHRASE = CSSM_CSP_BASE_CSP_ERROR + 66;
518 	CSSMERR_CSP_MISSING_ATTR_PASSPHRASE = CSSM_CSP_BASE_CSP_ERROR + 67;
519 	CSSMERR_CSP_INVALID_ATTR_KEY_LENGTH = CSSM_CSP_BASE_CSP_ERROR + 68;
520 	CSSMERR_CSP_MISSING_ATTR_KEY_LENGTH = CSSM_CSP_BASE_CSP_ERROR + 69;
521 	CSSMERR_CSP_INVALID_ATTR_BLOCK_SIZE = CSSM_CSP_BASE_CSP_ERROR + 70;
522 	CSSMERR_CSP_MISSING_ATTR_BLOCK_SIZE = CSSM_CSP_BASE_CSP_ERROR + 71;
523 	CSSMERR_CSP_INVALID_ATTR_OUTPUT_SIZE = CSSM_CSP_BASE_CSP_ERROR + 100;
524 	CSSMERR_CSP_MISSING_ATTR_OUTPUT_SIZE = CSSM_CSP_BASE_CSP_ERROR + 101;
525 	CSSMERR_CSP_INVALID_ATTR_ROUNDS = CSSM_CSP_BASE_CSP_ERROR + 102;
526 	CSSMERR_CSP_MISSING_ATTR_ROUNDS = CSSM_CSP_BASE_CSP_ERROR + 103;
527 	CSSMERR_CSP_INVALID_ATTR_ALG_PARAMS = CSSM_CSP_BASE_CSP_ERROR + 104;
528 	CSSMERR_CSP_MISSING_ATTR_ALG_PARAMS = CSSM_CSP_BASE_CSP_ERROR + 105;
529 	CSSMERR_CSP_INVALID_ATTR_LABEL = CSSM_CSP_BASE_CSP_ERROR + 106;
530 	CSSMERR_CSP_MISSING_ATTR_LABEL = CSSM_CSP_BASE_CSP_ERROR + 107;
531 	CSSMERR_CSP_INVALID_ATTR_KEY_TYPE = CSSM_CSP_BASE_CSP_ERROR + 108;
532 	CSSMERR_CSP_MISSING_ATTR_KEY_TYPE = CSSM_CSP_BASE_CSP_ERROR + 109;
533 	CSSMERR_CSP_INVALID_ATTR_MODE = CSSM_CSP_BASE_CSP_ERROR + 110;
534 	CSSMERR_CSP_MISSING_ATTR_MODE = CSSM_CSP_BASE_CSP_ERROR + 111;
535 	CSSMERR_CSP_INVALID_ATTR_EFFECTIVE_BITS = CSSM_CSP_BASE_CSP_ERROR + 112;
536 	CSSMERR_CSP_MISSING_ATTR_EFFECTIVE_BITS = CSSM_CSP_BASE_CSP_ERROR + 113;
537 	CSSMERR_CSP_INVALID_ATTR_START_DATE = CSSM_CSP_BASE_CSP_ERROR + 114;
538 	CSSMERR_CSP_MISSING_ATTR_START_DATE = CSSM_CSP_BASE_CSP_ERROR + 115;
539 	CSSMERR_CSP_INVALID_ATTR_END_DATE = CSSM_CSP_BASE_CSP_ERROR + 116;
540 	CSSMERR_CSP_MISSING_ATTR_END_DATE = CSSM_CSP_BASE_CSP_ERROR + 117;
541 	CSSMERR_CSP_INVALID_ATTR_VERSION = CSSM_CSP_BASE_CSP_ERROR + 118;
542 	CSSMERR_CSP_MISSING_ATTR_VERSION = CSSM_CSP_BASE_CSP_ERROR + 119;
543 	CSSMERR_CSP_INVALID_ATTR_PRIME = CSSM_CSP_BASE_CSP_ERROR + 120;
544 	CSSMERR_CSP_MISSING_ATTR_PRIME = CSSM_CSP_BASE_CSP_ERROR + 121;
545 	CSSMERR_CSP_INVALID_ATTR_BASE = CSSM_CSP_BASE_CSP_ERROR + 122;
546 	CSSMERR_CSP_MISSING_ATTR_BASE = CSSM_CSP_BASE_CSP_ERROR + 123;
547 	CSSMERR_CSP_INVALID_ATTR_SUBPRIME = CSSM_CSP_BASE_CSP_ERROR + 124;
548 	CSSMERR_CSP_MISSING_ATTR_SUBPRIME = CSSM_CSP_BASE_CSP_ERROR + 125;
549 	CSSMERR_CSP_INVALID_ATTR_ITERATION_COUNT = CSSM_CSP_BASE_CSP_ERROR + 126;
550 	CSSMERR_CSP_MISSING_ATTR_ITERATION_COUNT = CSSM_CSP_BASE_CSP_ERROR + 127;
551 	CSSMERR_CSP_INVALID_ATTR_DL_DB_HANDLE = CSSM_CSP_BASE_CSP_ERROR + 128;
552 	CSSMERR_CSP_MISSING_ATTR_DL_DB_HANDLE = CSSM_CSP_BASE_CSP_ERROR + 129;
553 	CSSMERR_CSP_INVALID_ATTR_ACCESS_CREDENTIALS = CSSM_CSP_BASE_CSP_ERROR + 130;
554 	CSSMERR_CSP_MISSING_ATTR_ACCESS_CREDENTIALS = CSSM_CSP_BASE_CSP_ERROR + 131;
555 	CSSMERR_CSP_INVALID_ATTR_PUBLIC_KEY_FORMAT = CSSM_CSP_BASE_CSP_ERROR + 132;
556 	CSSMERR_CSP_MISSING_ATTR_PUBLIC_KEY_FORMAT = CSSM_CSP_BASE_CSP_ERROR + 133;
557 	CSSMERR_CSP_INVALID_ATTR_PRIVATE_KEY_FORMAT = CSSM_CSP_BASE_CSP_ERROR + 134;
558 	CSSMERR_CSP_MISSING_ATTR_PRIVATE_KEY_FORMAT = CSSM_CSP_BASE_CSP_ERROR + 135;
559 	CSSMERR_CSP_INVALID_ATTR_SYMMETRIC_KEY_FORMAT = CSSM_CSP_BASE_CSP_ERROR + 136;
560 	CSSMERR_CSP_MISSING_ATTR_SYMMETRIC_KEY_FORMAT = CSSM_CSP_BASE_CSP_ERROR + 137;
561 	CSSMERR_CSP_INVALID_ATTR_WRAPPED_KEY_FORMAT = CSSM_CSP_BASE_CSP_ERROR + 138;
562 	CSSMERR_CSP_MISSING_ATTR_WRAPPED_KEY_FORMAT = CSSM_CSP_BASE_CSP_ERROR + 139;
563 
564 	{ CSP Staged Cryptographic API Error Values. }
565 	CSSMERR_CSP_STAGED_OPERATION_IN_PROGRESS = CSSM_CSP_BASE_CSP_ERROR + 72;
566 	CSSMERR_CSP_STAGED_OPERATION_NOT_STARTED = CSSM_CSP_BASE_CSP_ERROR + 73;
567 	CSSMERR_CSP_VERIFY_FAILED = CSSM_CSP_BASE_CSP_ERROR + 74;
568 	CSSMERR_CSP_INVALID_SIGNATURE = CSSM_CSP_BASE_CSP_ERROR + 75;
569 	CSSMERR_CSP_QUERY_SIZE_UNKNOWN = CSSM_CSP_BASE_CSP_ERROR + 76;
570 	CSSMERR_CSP_BLOCK_SIZE_MISMATCH = CSSM_CSP_BASE_CSP_ERROR + 77;
571 	CSSMERR_CSP_PRIVATE_KEY_NOT_FOUND = CSSM_CSP_BASE_CSP_ERROR + 78;
572 	CSSMERR_CSP_PUBLIC_KEY_INCONSISTENT = CSSM_CSP_BASE_CSP_ERROR + 79;
573 	CSSMERR_CSP_DEVICE_VERIFY_FAILED = CSSM_CSP_BASE_CSP_ERROR + 80;
574 	CSSMERR_CSP_INVALID_LOGIN_NAME = CSSM_CSP_BASE_CSP_ERROR + 81;
575 	CSSMERR_CSP_ALREADY_LOGGED_IN = CSSM_CSP_BASE_CSP_ERROR + 82;
576 	CSSMERR_CSP_PRIVATE_KEY_ALREADY_EXISTS = CSSM_CSP_BASE_CSP_ERROR + 83;
577 	CSSMERR_CSP_KEY_LABEL_ALREADY_EXISTS = CSSM_CSP_BASE_CSP_ERROR + 84;
578 	CSSMERR_CSP_INVALID_DIGEST_ALGORITHM = CSSM_CSP_BASE_CSP_ERROR + 85;
579 	CSSMERR_CSP_CRYPTO_DATA_CALLBACK_FAILED = CSSM_CSP_BASE_CSP_ERROR + 86;
580 
581 
582 { TP Error Values Derived from Common Error Codes For All Module Types. }
583 const
584 	CSSMERR_TP_INTERNAL_ERROR = CSSM_TP_BASE_ERROR + CSSM_ERRCODE_INTERNAL_ERROR;
585 	CSSMERR_TP_MEMORY_ERROR = CSSM_TP_BASE_ERROR + CSSM_ERRCODE_MEMORY_ERROR;
586 	CSSMERR_TP_MDS_ERROR = CSSM_TP_BASE_ERROR + CSSM_ERRCODE_MDS_ERROR;
587 	CSSMERR_TP_INVALID_POINTER = CSSM_TP_BASE_ERROR + CSSM_ERRCODE_INVALID_POINTER;
588 	CSSMERR_TP_INVALID_INPUT_POINTER = CSSM_TP_BASE_ERROR + CSSM_ERRCODE_INVALID_INPUT_POINTER;
589 	CSSMERR_TP_INVALID_OUTPUT_POINTER = CSSM_TP_BASE_ERROR + CSSM_ERRCODE_INVALID_OUTPUT_POINTER;
590 	CSSMERR_TP_FUNCTION_NOT_IMPLEMENTED = CSSM_TP_BASE_ERROR + CSSM_ERRCODE_FUNCTION_NOT_IMPLEMENTED;
591 	CSSMERR_TP_SELF_CHECK_FAILED = CSSM_TP_BASE_ERROR + CSSM_ERRCODE_SELF_CHECK_FAILED;
592 	CSSMERR_TP_OS_ACCESS_DENIED = CSSM_TP_BASE_ERROR + CSSM_ERRCODE_OS_ACCESS_DENIED;
593 	CSSMERR_TP_FUNCTION_FAILED = CSSM_TP_BASE_ERROR + CSSM_ERRCODE_FUNCTION_FAILED;
594 	CSSMERR_TP_INVALID_CONTEXT_HANDLE = CSSM_TP_BASE_ERROR + CSSM_ERRCODE_INVALID_CONTEXT_HANDLE;
595 	CSSMERR_TP_INVALID_DATA = CSSM_TP_BASE_ERROR + CSSM_ERRCODE_INVALID_DATA;
596 	CSSMERR_TP_INVALID_DB_LIST = CSSM_TP_BASE_ERROR + CSSM_ERRCODE_INVALID_DB_LIST;
597 	CSSMERR_TP_INVALID_CERTGROUP_POINTER = CSSM_TP_BASE_ERROR + CSSM_ERRCODE_INVALID_CERTGROUP_POINTER;
598 	CSSMERR_TP_INVALID_CERT_POINTER = CSSM_TP_BASE_ERROR + CSSM_ERRCODE_INVALID_CERT_POINTER;
599 	CSSMERR_TP_INVALID_CRL_POINTER = CSSM_TP_BASE_ERROR + CSSM_ERRCODE_INVALID_CRL_POINTER;
600 	CSSMERR_TP_INVALID_FIELD_POINTER = CSSM_TP_BASE_ERROR + CSSM_ERRCODE_INVALID_FIELD_POINTER;
601 	CSSMERR_TP_INVALID_NETWORK_ADDR = CSSM_TP_BASE_ERROR + CSSM_ERRCODE_INVALID_NETWORK_ADDR;
602 	CSSMERR_TP_CRL_ALREADY_SIGNED = CSSM_TP_BASE_ERROR + CSSM_ERRCODE_CRL_ALREADY_SIGNED;
603 	CSSMERR_TP_INVALID_NUMBER_OF_FIELDS = CSSM_TP_BASE_ERROR + CSSM_ERRCODE_INVALID_NUMBER_OF_FIELDS;
604 	CSSMERR_TP_VERIFICATION_FAILURE = CSSM_TP_BASE_ERROR + CSSM_ERRCODE_VERIFICATION_FAILURE;
605 	CSSMERR_TP_INVALID_DB_HANDLE = CSSM_TP_BASE_ERROR + CSSM_ERRCODE_INVALID_DB_HANDLE;
606 	CSSMERR_TP_UNKNOWN_FORMAT = CSSM_TP_BASE_ERROR + CSSM_ERRCODE_UNKNOWN_FORMAT;
607 	CSSMERR_TP_UNKNOWN_TAG = CSSM_TP_BASE_ERROR + CSSM_ERRCODE_UNKNOWN_TAG;
608 	CSSMERR_TP_INVALID_PASSTHROUGH_ID = CSSM_TP_BASE_ERROR + CSSM_ERRCODE_INVALID_PASSTHROUGH_ID;
609 	CSSMERR_TP_INVALID_CSP_HANDLE = CSSM_TP_BASE_ERROR + CSSM_ERRCODE_INVALID_CSP_HANDLE;
610 	CSSMERR_TP_INVALID_DL_HANDLE = CSSM_TP_BASE_ERROR + CSSM_ERRCODE_INVALID_DL_HANDLE;
611 	CSSMERR_TP_INVALID_CL_HANDLE = CSSM_TP_BASE_ERROR + CSSM_ERRCODE_INVALID_CL_HANDLE;
612 	CSSMERR_TP_INVALID_DB_LIST_POINTER = CSSM_TP_BASE_ERROR + CSSM_ERRCODE_INVALID_DB_LIST_POINTER;
613 
614 { TP Module-Specific Error Values }
615 const
616 	CSSM_TP_BASE_TP_ERROR = CSSM_TP_BASE_ERROR + CSSM_ERRORCODE_COMMON_EXTENT;
617 	CSSMERR_TP_INVALID_CALLERAUTH_CONTEXT_POINTER = CSSM_TP_BASE_TP_ERROR + 1;
618 	CSSMERR_TP_INVALID_IDENTIFIER_POINTER = CSSM_TP_BASE_TP_ERROR + 2;
619 	CSSMERR_TP_INVALID_KEYCACHE_HANDLE = CSSM_TP_BASE_TP_ERROR + 3;
620 	CSSMERR_TP_INVALID_CERTGROUP = CSSM_TP_BASE_TP_ERROR + 4;
621 	CSSMERR_TP_INVALID_CRLGROUP = CSSM_TP_BASE_TP_ERROR + 5;
622 	CSSMERR_TP_INVALID_CRLGROUP_POINTER = CSSM_TP_BASE_TP_ERROR + 6;
623 	CSSMERR_TP_AUTHENTICATION_FAILED = CSSM_TP_BASE_TP_ERROR + 7;
624 	CSSMERR_TP_CERTGROUP_INCOMPLETE = CSSM_TP_BASE_TP_ERROR + 8;
625 	CSSMERR_TP_CERTIFICATE_CANT_OPERATE = CSSM_TP_BASE_TP_ERROR + 9;
626 	CSSMERR_TP_CERT_EXPIRED = CSSM_TP_BASE_TP_ERROR + 10;
627 	CSSMERR_TP_CERT_NOT_VALID_YET = CSSM_TP_BASE_TP_ERROR + 11;
628 	CSSMERR_TP_CERT_REVOKED = CSSM_TP_BASE_TP_ERROR + 12;
629 	CSSMERR_TP_CERT_SUSPENDED = CSSM_TP_BASE_TP_ERROR + 13;
630 	CSSMERR_TP_INSUFFICIENT_CREDENTIALS = CSSM_TP_BASE_TP_ERROR + 14;
631 	CSSMERR_TP_INVALID_ACTION = CSSM_TP_BASE_TP_ERROR + 15;
632 	CSSMERR_TP_INVALID_ACTION_DATA = CSSM_TP_BASE_TP_ERROR + 16;
633 	CSSMERR_TP_INVALID_ANCHOR_CERT = CSSM_TP_BASE_TP_ERROR + 18;
634 	CSSMERR_TP_INVALID_AUTHORITY = CSSM_TP_BASE_TP_ERROR + 19;
635 	CSSMERR_TP_VERIFY_ACTION_FAILED = CSSM_TP_BASE_TP_ERROR + 20;
636 	CSSMERR_TP_INVALID_CERTIFICATE = CSSM_TP_BASE_TP_ERROR + 21;
637 	CSSMERR_TP_INVALID_CERT_AUTHORITY = CSSM_TP_BASE_TP_ERROR + 22;
638 	CSSMERR_TP_INVALID_CRL_AUTHORITY = CSSM_TP_BASE_TP_ERROR + 23;
639 	CSSMERR_TP_INVALID_CRL_ENCODING = CSSM_TP_BASE_TP_ERROR + 24;
640 	CSSMERR_TP_INVALID_CRL_TYPE = CSSM_TP_BASE_TP_ERROR + 25;
641 	CSSMERR_TP_INVALID_CRL = CSSM_TP_BASE_TP_ERROR + 26;
642 	CSSMERR_TP_INVALID_FORM_TYPE = CSSM_TP_BASE_TP_ERROR + 27;
643 	CSSMERR_TP_INVALID_ID = CSSM_TP_BASE_TP_ERROR + 28;
644 	CSSMERR_TP_INVALID_IDENTIFIER = CSSM_TP_BASE_TP_ERROR + 29;
645 	CSSMERR_TP_INVALID_INDEX = CSSM_TP_BASE_TP_ERROR + 30;
646 	CSSMERR_TP_INVALID_NAME = CSSM_TP_BASE_TP_ERROR + 31;
647 	CSSMERR_TP_INVALID_POLICY_IDENTIFIERS = CSSM_TP_BASE_TP_ERROR + 32;
648 	CSSMERR_TP_INVALID_TIMESTRING = CSSM_TP_BASE_TP_ERROR + 33;
649 	CSSMERR_TP_INVALID_REASON = CSSM_TP_BASE_TP_ERROR + 34;
650 	CSSMERR_TP_INVALID_REQUEST_INPUTS = CSSM_TP_BASE_TP_ERROR + 35;
651 	CSSMERR_TP_INVALID_RESPONSE_VECTOR = CSSM_TP_BASE_TP_ERROR + 36;
652 	CSSMERR_TP_INVALID_SIGNATURE = CSSM_TP_BASE_TP_ERROR + 37;
653 	CSSMERR_TP_INVALID_STOP_ON_POLICY = CSSM_TP_BASE_TP_ERROR + 38;
654 	CSSMERR_TP_INVALID_CALLBACK = CSSM_TP_BASE_TP_ERROR + 39;
655 	CSSMERR_TP_INVALID_TUPLE = CSSM_TP_BASE_TP_ERROR + 40;
656 	CSSMERR_TP_NOT_SIGNER = CSSM_TP_BASE_TP_ERROR + 41;
657 	CSSMERR_TP_NOT_TRUSTED = CSSM_TP_BASE_TP_ERROR + 42;
658 	CSSMERR_TP_NO_DEFAULT_AUTHORITY = CSSM_TP_BASE_TP_ERROR + 43;
659 	CSSMERR_TP_REJECTED_FORM = CSSM_TP_BASE_TP_ERROR + 44;
660 	CSSMERR_TP_REQUEST_LOST = CSSM_TP_BASE_TP_ERROR + 45;
661 	CSSMERR_TP_REQUEST_REJECTED = CSSM_TP_BASE_TP_ERROR + 46;
662 	CSSMERR_TP_UNSUPPORTED_ADDR_TYPE = CSSM_TP_BASE_TP_ERROR + 47;
663 	CSSMERR_TP_UNSUPPORTED_SERVICE = CSSM_TP_BASE_TP_ERROR + 48;
664 	CSSMERR_TP_INVALID_TUPLEGROUP_POINTER = CSSM_TP_BASE_TP_ERROR + 49;
665 	CSSMERR_TP_INVALID_TUPLEGROUP = CSSM_TP_BASE_TP_ERROR + 50;
666 
667 { AC Error Values Derived from Common Error Codes For All Module Types. }
668 const
669 	CSSMERR_AC_INTERNAL_ERROR = CSSM_AC_BASE_ERROR + CSSM_ERRCODE_INTERNAL_ERROR;
670 	CSSMERR_AC_MEMORY_ERROR = CSSM_AC_BASE_ERROR + CSSM_ERRCODE_MEMORY_ERROR;
671 	CSSMERR_AC_MDS_ERROR = CSSM_AC_BASE_ERROR + CSSM_ERRCODE_MDS_ERROR;
672 	CSSMERR_AC_INVALID_POINTER = CSSM_AC_BASE_ERROR + CSSM_ERRCODE_INVALID_POINTER;
673 	CSSMERR_AC_INVALID_INPUT_POINTER = CSSM_AC_BASE_ERROR + CSSM_ERRCODE_INVALID_INPUT_POINTER;
674 	CSSMERR_AC_INVALID_OUTPUT_POINTER = CSSM_AC_BASE_ERROR + CSSM_ERRCODE_INVALID_OUTPUT_POINTER;
675 	CSSMERR_AC_FUNCTION_NOT_IMPLEMENTED = CSSM_AC_BASE_ERROR + CSSM_ERRCODE_FUNCTION_NOT_IMPLEMENTED;
676 	CSSMERR_AC_SELF_CHECK_FAILED = CSSM_AC_BASE_ERROR + CSSM_ERRCODE_SELF_CHECK_FAILED;
677 	CSSMERR_AC_OS_ACCESS_DENIED = CSSM_AC_BASE_ERROR + CSSM_ERRCODE_OS_ACCESS_DENIED;
678 	CSSMERR_AC_FUNCTION_FAILED = CSSM_AC_BASE_ERROR + CSSM_ERRCODE_FUNCTION_FAILED;
679 	CSSMERR_AC_INVALID_CONTEXT_HANDLE = CSSM_AC_BASE_ERROR + CSSM_ERRCODE_INVALID_CONTEXT_HANDLE;
680 	CSSMERR_AC_INVALID_DATA = CSSM_AC_BASE_ERROR + CSSM_ERRCODE_INVALID_DATA;
681 	CSSMERR_AC_INVALID_DB_LIST = CSSM_AC_BASE_ERROR + CSSM_ERRCODE_INVALID_DB_LIST;
682 	CSSMERR_AC_INVALID_PASSTHROUGH_ID = CSSM_AC_BASE_ERROR + CSSM_ERRCODE_INVALID_PASSTHROUGH_ID;
683 	CSSMERR_AC_INVALID_DL_HANDLE = CSSM_AC_BASE_ERROR + CSSM_ERRCODE_INVALID_DL_HANDLE;
684 	CSSMERR_AC_INVALID_CL_HANDLE = CSSM_AC_BASE_ERROR + CSSM_ERRCODE_INVALID_CL_HANDLE;
685 	CSSMERR_AC_INVALID_TP_HANDLE = CSSM_AC_BASE_ERROR + CSSM_ERRCODE_INVALID_TP_HANDLE;
686 	CSSMERR_AC_INVALID_DB_HANDLE = CSSM_AC_BASE_ERROR + CSSM_ERRCODE_INVALID_DB_HANDLE;
687 	CSSMERR_AC_INVALID_DB_LIST_POINTER = CSSM_AC_BASE_ERROR + CSSM_ERRCODE_INVALID_DB_LIST_POINTER;
688 
689 { AC Module-Specific Error Values }
690 const
691 	CSSM_AC_BASE_AC_ERROR = CSSM_AC_BASE_ERROR + CSSM_ERRORCODE_COMMON_EXTENT;
692 	CSSMERR_AC_INVALID_BASE_ACLS = CSSM_AC_BASE_AC_ERROR + 1;
693 	CSSMERR_AC_INVALID_TUPLE_CREDENTIALS = CSSM_AC_BASE_AC_ERROR + 2;
694 	CSSMERR_AC_INVALID_ENCODING = CSSM_AC_BASE_AC_ERROR + 3;
695 	CSSMERR_AC_INVALID_VALIDITY_PERIOD = CSSM_AC_BASE_AC_ERROR + 4;
696 	CSSMERR_AC_INVALID_REQUESTOR = CSSM_AC_BASE_AC_ERROR + 5;
697 	CSSMERR_AC_INVALID_REQUEST_DESCRIPTOR = CSSM_AC_BASE_AC_ERROR + 6;
698 
699 { CL Error Values Derived from Common Error Codes For All Module Types. }
700 const
701 	CSSMERR_CL_INTERNAL_ERROR = CSSM_CL_BASE_ERROR + CSSM_ERRCODE_INTERNAL_ERROR;
702 	CSSMERR_CL_MEMORY_ERROR = CSSM_CL_BASE_ERROR + CSSM_ERRCODE_MEMORY_ERROR;
703 	CSSMERR_CL_MDS_ERROR = CSSM_CL_BASE_ERROR + CSSM_ERRCODE_MDS_ERROR;
704 	CSSMERR_CL_INVALID_POINTER = CSSM_CL_BASE_ERROR + CSSM_ERRCODE_INVALID_POINTER;
705 	CSSMERR_CL_INVALID_INPUT_POINTER = CSSM_CL_BASE_ERROR + CSSM_ERRCODE_INVALID_INPUT_POINTER;
706 	CSSMERR_CL_INVALID_OUTPUT_POINTER = CSSM_CL_BASE_ERROR + CSSM_ERRCODE_INVALID_OUTPUT_POINTER;
707 	CSSMERR_CL_FUNCTION_NOT_IMPLEMENTED = CSSM_CL_BASE_ERROR + CSSM_ERRCODE_FUNCTION_NOT_IMPLEMENTED;
708 	CSSMERR_CL_SELF_CHECK_FAILED = CSSM_CL_BASE_ERROR + CSSM_ERRCODE_SELF_CHECK_FAILED;
709 	CSSMERR_CL_OS_ACCESS_DENIED = CSSM_CL_BASE_ERROR + CSSM_ERRCODE_OS_ACCESS_DENIED;
710 	CSSMERR_CL_FUNCTION_FAILED = CSSM_CL_BASE_ERROR + CSSM_ERRCODE_FUNCTION_FAILED;
711 	CSSMERR_CL_INVALID_CONTEXT_HANDLE = CSSM_CL_BASE_ERROR + CSSM_ERRCODE_INVALID_CONTEXT_HANDLE;
712 	CSSMERR_CL_INVALID_CERTGROUP_POINTER = CSSM_CL_BASE_ERROR + CSSM_ERRCODE_INVALID_CERTGROUP_POINTER;
713 	CSSMERR_CL_INVALID_CERT_POINTER = CSSM_CL_BASE_ERROR + CSSM_ERRCODE_INVALID_CERT_POINTER;
714 	CSSMERR_CL_INVALID_CRL_POINTER = CSSM_CL_BASE_ERROR + CSSM_ERRCODE_INVALID_CRL_POINTER;
715 	CSSMERR_CL_INVALID_FIELD_POINTER = CSSM_CL_BASE_ERROR + CSSM_ERRCODE_INVALID_FIELD_POINTER;
716 	CSSMERR_CL_INVALID_DATA = CSSM_CL_BASE_ERROR + CSSM_ERRCODE_INVALID_DATA;
717 	CSSMERR_CL_CRL_ALREADY_SIGNED = CSSM_CL_BASE_ERROR + CSSM_ERRCODE_CRL_ALREADY_SIGNED;
718 	CSSMERR_CL_INVALID_NUMBER_OF_FIELDS = CSSM_CL_BASE_ERROR + CSSM_ERRCODE_INVALID_NUMBER_OF_FIELDS;
719 	CSSMERR_CL_VERIFICATION_FAILURE = CSSM_CL_BASE_ERROR + CSSM_ERRCODE_VERIFICATION_FAILURE;
720 	CSSMERR_CL_UNKNOWN_FORMAT = CSSM_CL_BASE_ERROR + CSSM_ERRCODE_UNKNOWN_FORMAT;
721 	CSSMERR_CL_UNKNOWN_TAG = CSSM_CL_BASE_ERROR + CSSM_ERRCODE_UNKNOWN_TAG;
722 	CSSMERR_CL_INVALID_PASSTHROUGH_ID = CSSM_CL_BASE_ERROR + CSSM_ERRCODE_INVALID_PASSTHROUGH_ID;
723 
724 { CL Module-Specific Error Values }
725 const
726 	CSSM_CL_BASE_CL_ERROR = CSSM_CL_BASE_ERROR + CSSM_ERRORCODE_COMMON_EXTENT;
727 	CSSMERR_CL_INVALID_BUNDLE_POINTER = CSSM_CL_BASE_CL_ERROR + 1;
728 	CSSMERR_CL_INVALID_CACHE_HANDLE = CSSM_CL_BASE_CL_ERROR + 2;
729 	CSSMERR_CL_INVALID_RESULTS_HANDLE = CSSM_CL_BASE_CL_ERROR + 3;
730 	CSSMERR_CL_INVALID_BUNDLE_INFO = CSSM_CL_BASE_CL_ERROR + 4;
731 	CSSMERR_CL_INVALID_CRL_INDEX = CSSM_CL_BASE_CL_ERROR + 5;
732 	CSSMERR_CL_INVALID_SCOPE = CSSM_CL_BASE_CL_ERROR + 6;
733 	CSSMERR_CL_NO_FIELD_VALUES = CSSM_CL_BASE_CL_ERROR + 7;
734 	CSSMERR_CL_SCOPE_NOT_SUPPORTED = CSSM_CL_BASE_CL_ERROR + 8;
735 
736 { DL Error Values Derived from Common Error Codes For All Module Types. }
737 const
738 	CSSMERR_DL_INTERNAL_ERROR = CSSM_DL_BASE_ERROR + CSSM_ERRCODE_INTERNAL_ERROR;
739 	CSSMERR_DL_MEMORY_ERROR = CSSM_DL_BASE_ERROR + CSSM_ERRCODE_MEMORY_ERROR;
740 	CSSMERR_DL_MDS_ERROR = CSSM_DL_BASE_ERROR + CSSM_ERRCODE_MDS_ERROR;
741 	CSSMERR_DL_INVALID_POINTER = CSSM_DL_BASE_ERROR + CSSM_ERRCODE_INVALID_POINTER;
742 	CSSMERR_DL_INVALID_INPUT_POINTER = CSSM_DL_BASE_ERROR + CSSM_ERRCODE_INVALID_INPUT_POINTER;
743 	CSSMERR_DL_INVALID_OUTPUT_POINTER = CSSM_DL_BASE_ERROR + CSSM_ERRCODE_INVALID_OUTPUT_POINTER;
744 	CSSMERR_DL_FUNCTION_NOT_IMPLEMENTED = CSSM_DL_BASE_ERROR + CSSM_ERRCODE_FUNCTION_NOT_IMPLEMENTED;
745 	CSSMERR_DL_SELF_CHECK_FAILED = CSSM_DL_BASE_ERROR + CSSM_ERRCODE_SELF_CHECK_FAILED;
746 	CSSMERR_DL_OS_ACCESS_DENIED = CSSM_DL_BASE_ERROR + CSSM_ERRCODE_OS_ACCESS_DENIED;
747 	CSSMERR_DL_FUNCTION_FAILED = CSSM_DL_BASE_ERROR + CSSM_ERRCODE_FUNCTION_FAILED;
748 	CSSMERR_DL_INVALID_CSP_HANDLE = CSSM_DL_BASE_ERROR + CSSM_ERRCODE_INVALID_CSP_HANDLE;
749 	CSSMERR_DL_INVALID_DL_HANDLE = CSSM_DL_BASE_ERROR + CSSM_ERRCODE_INVALID_DL_HANDLE;
750 	CSSMERR_DL_INVALID_CL_HANDLE = CSSM_DL_BASE_ERROR + CSSM_ERRCODE_INVALID_CL_HANDLE;
751 	CSSMERR_DL_INVALID_DB_LIST_POINTER = CSSM_DL_BASE_ERROR + CSSM_ERRCODE_INVALID_DB_LIST_POINTER;
752 
753 { DL Error Values Derived from ACL-based Error Codes. }
754 const
755 	CSSMERR_DL_OPERATION_AUTH_DENIED = CSSM_DL_BASE_ERROR + CSSM_ERRCODE_OPERATION_AUTH_DENIED;
756 	CSSMERR_DL_OBJECT_USE_AUTH_DENIED = CSSM_DL_BASE_ERROR + CSSM_ERRCODE_OBJECT_USE_AUTH_DENIED;
757 	CSSMERR_DL_OBJECT_MANIP_AUTH_DENIED = CSSM_DL_BASE_ERROR + CSSM_ERRCODE_OBJECT_MANIP_AUTH_DENIED;
758 	CSSMERR_DL_OBJECT_ACL_NOT_SUPPORTED = CSSM_DL_BASE_ERROR + CSSM_ERRCODE_OBJECT_ACL_NOT_SUPPORTED;
759 	CSSMERR_DL_OBJECT_ACL_REQUIRED = CSSM_DL_BASE_ERROR + CSSM_ERRCODE_OBJECT_ACL_REQUIRED;
760 	CSSMERR_DL_INVALID_ACCESS_CREDENTIALS = CSSM_DL_BASE_ERROR + CSSM_ERRCODE_INVALID_ACCESS_CREDENTIALS;
761 	CSSMERR_DL_INVALID_ACL_BASE_CERTS = CSSM_DL_BASE_ERROR + CSSM_ERRCODE_INVALID_ACL_BASE_CERTS;
762 	CSSMERR_DL_ACL_BASE_CERTS_NOT_SUPPORTED = CSSM_DL_BASE_ERROR + CSSM_ERRCODE_ACL_BASE_CERTS_NOT_SUPPORTED;
763 	CSSMERR_DL_INVALID_SAMPLE_VALUE = CSSM_DL_BASE_ERROR + CSSM_ERRCODE_INVALID_SAMPLE_VALUE;
764 	CSSMERR_DL_SAMPLE_VALUE_NOT_SUPPORTED = CSSM_DL_BASE_ERROR + CSSM_ERRCODE_SAMPLE_VALUE_NOT_SUPPORTED;
765 	CSSMERR_DL_INVALID_ACL_SUBJECT_VALUE = CSSM_DL_BASE_ERROR + CSSM_ERRCODE_INVALID_ACL_SUBJECT_VALUE;
766 	CSSMERR_DL_ACL_SUBJECT_TYPE_NOT_SUPPORTED = CSSM_DL_BASE_ERROR + CSSM_ERRCODE_ACL_SUBJECT_TYPE_NOT_SUPPORTED;
767 	CSSMERR_DL_INVALID_ACL_CHALLENGE_CALLBACK = CSSM_DL_BASE_ERROR + CSSM_ERRCODE_INVALID_ACL_CHALLENGE_CALLBACK;
768 	CSSMERR_DL_ACL_CHALLENGE_CALLBACK_FAILED = CSSM_DL_BASE_ERROR + CSSM_ERRCODE_ACL_CHALLENGE_CALLBACK_FAILED;
769 	CSSMERR_DL_INVALID_ACL_ENTRY_TAG = CSSM_DL_BASE_ERROR + CSSM_ERRCODE_INVALID_ACL_ENTRY_TAG;
770 	CSSMERR_DL_ACL_ENTRY_TAG_NOT_FOUND = CSSM_DL_BASE_ERROR + CSSM_ERRCODE_ACL_ENTRY_TAG_NOT_FOUND;
771 	CSSMERR_DL_INVALID_ACL_EDIT_MODE = CSSM_DL_BASE_ERROR + CSSM_ERRCODE_INVALID_ACL_EDIT_MODE;
772 	CSSMERR_DL_ACL_CHANGE_FAILED = CSSM_DL_BASE_ERROR + CSSM_ERRCODE_ACL_CHANGE_FAILED;
773 	CSSMERR_DL_INVALID_NEW_ACL_ENTRY = CSSM_DL_BASE_ERROR + CSSM_ERRCODE_INVALID_NEW_ACL_ENTRY;
774 	CSSMERR_DL_INVALID_NEW_ACL_OWNER = CSSM_DL_BASE_ERROR + CSSM_ERRCODE_INVALID_NEW_ACL_OWNER;
775 	CSSMERR_DL_ACL_DELETE_FAILED = CSSM_DL_BASE_ERROR + CSSM_ERRCODE_ACL_DELETE_FAILED;
776 	CSSMERR_DL_ACL_REPLACE_FAILED = CSSM_DL_BASE_ERROR + CSSM_ERRCODE_ACL_REPLACE_FAILED;
777 	CSSMERR_DL_ACL_ADD_FAILED = CSSM_DL_BASE_ERROR + CSSM_ERRCODE_ACL_ADD_FAILED;
778 
779 { DL Error Values for Specific Data Types. }
780 const
781 	CSSMERR_DL_INVALID_DB_HANDLE = CSSM_DL_BASE_ERROR + CSSM_ERRCODE_INVALID_DB_HANDLE;
782 	CSSMERR_DL_INVALID_PASSTHROUGH_ID = CSSM_DL_BASE_ERROR + CSSM_ERRCODE_INVALID_PASSTHROUGH_ID;
783 	CSSMERR_DL_INVALID_NETWORK_ADDR = CSSM_DL_BASE_ERROR + CSSM_ERRCODE_INVALID_NETWORK_ADDR;
784 
785 { DL Module-Specific Error Values }
786 const
787 	CSSM_DL_BASE_DL_ERROR = CSSM_DL_BASE_ERROR + CSSM_ERRORCODE_COMMON_EXTENT;
788 	CSSMERR_DL_DATABASE_CORRUPT = CSSM_DL_BASE_DL_ERROR + 1;
789 	CSSMERR_DL_INVALID_RECORD_INDEX = CSSM_DL_BASE_DL_ERROR + 8;
790 	CSSMERR_DL_INVALID_RECORDTYPE = CSSM_DL_BASE_DL_ERROR + 9;
791 	CSSMERR_DL_INVALID_FIELD_NAME = CSSM_DL_BASE_DL_ERROR + 10;
792 	CSSMERR_DL_UNSUPPORTED_FIELD_FORMAT = CSSM_DL_BASE_DL_ERROR + 11;
793 	CSSMERR_DL_UNSUPPORTED_INDEX_INFO = CSSM_DL_BASE_DL_ERROR + 12;
794 	CSSMERR_DL_UNSUPPORTED_LOCALITY = CSSM_DL_BASE_DL_ERROR + 13;
795 	CSSMERR_DL_UNSUPPORTED_NUM_ATTRIBUTES = CSSM_DL_BASE_DL_ERROR + 14;
796 	CSSMERR_DL_UNSUPPORTED_NUM_INDEXES = CSSM_DL_BASE_DL_ERROR + 15;
797 	CSSMERR_DL_UNSUPPORTED_NUM_RECORDTYPES = CSSM_DL_BASE_DL_ERROR + 16;
798 	CSSMERR_DL_UNSUPPORTED_RECORDTYPE = CSSM_DL_BASE_DL_ERROR + 17;
799 	CSSMERR_DL_FIELD_SPECIFIED_MULTIPLE = CSSM_DL_BASE_DL_ERROR + 18;
800 	CSSMERR_DL_INCOMPATIBLE_FIELD_FORMAT = CSSM_DL_BASE_DL_ERROR + 19;
801 	CSSMERR_DL_INVALID_PARSING_MODULE = CSSM_DL_BASE_DL_ERROR + 20;
802 	CSSMERR_DL_INVALID_DB_NAME = CSSM_DL_BASE_DL_ERROR + 22;
803 	CSSMERR_DL_DATASTORE_DOESNOT_EXIST = CSSM_DL_BASE_DL_ERROR + 23;
804 	CSSMERR_DL_DATASTORE_ALREADY_EXISTS = CSSM_DL_BASE_DL_ERROR + 24;
805 	CSSMERR_DL_DB_LOCKED = CSSM_DL_BASE_DL_ERROR + 25;
806 	CSSMERR_DL_DATASTORE_IS_OPEN = CSSM_DL_BASE_DL_ERROR + 26;
807 	CSSMERR_DL_RECORD_NOT_FOUND = CSSM_DL_BASE_DL_ERROR + 27;
808 	CSSMERR_DL_MISSING_VALUE = CSSM_DL_BASE_DL_ERROR + 28;
809 	CSSMERR_DL_UNSUPPORTED_QUERY = CSSM_DL_BASE_DL_ERROR + 29;
810 	CSSMERR_DL_UNSUPPORTED_QUERY_LIMITS = CSSM_DL_BASE_DL_ERROR + 30;
811 	CSSMERR_DL_UNSUPPORTED_NUM_SELECTION_PREDS = CSSM_DL_BASE_DL_ERROR + 31;
812 	CSSMERR_DL_UNSUPPORTED_OPERATOR = CSSM_DL_BASE_DL_ERROR + 33;
813 	CSSMERR_DL_INVALID_RESULTS_HANDLE = CSSM_DL_BASE_DL_ERROR + 34;
814 	CSSMERR_DL_INVALID_DB_LOCATION = CSSM_DL_BASE_DL_ERROR + 35;
815 	CSSMERR_DL_INVALID_ACCESS_REQUEST = CSSM_DL_BASE_DL_ERROR + 36;
816 	CSSMERR_DL_INVALID_INDEX_INFO = CSSM_DL_BASE_DL_ERROR + 37;
817 	CSSMERR_DL_INVALID_SELECTION_TAG = CSSM_DL_BASE_DL_ERROR + 38;
818 	CSSMERR_DL_INVALID_NEW_OWNER = CSSM_DL_BASE_DL_ERROR + 39;
819 	CSSMERR_DL_INVALID_RECORD_UID = CSSM_DL_BASE_DL_ERROR + 40;
820 	CSSMERR_DL_INVALID_UNIQUE_INDEX_DATA = CSSM_DL_BASE_DL_ERROR + 41;
821 	CSSMERR_DL_INVALID_MODIFY_MODE = CSSM_DL_BASE_DL_ERROR + 42;
822 	CSSMERR_DL_INVALID_OPEN_PARAMETERS = CSSM_DL_BASE_DL_ERROR + 43;
823 	CSSMERR_DL_RECORD_MODIFIED = CSSM_DL_BASE_DL_ERROR + 44;
824 	CSSMERR_DL_ENDOFDATA = CSSM_DL_BASE_DL_ERROR + 45;
825 	CSSMERR_DL_INVALID_QUERY = CSSM_DL_BASE_DL_ERROR + 46;
826 	CSSMERR_DL_INVALID_VALUE = CSSM_DL_BASE_DL_ERROR + 47;
827 	CSSMERR_DL_MULTIPLE_VALUES_UNSUPPORTED = CSSM_DL_BASE_DL_ERROR + 48;
828 	CSSMERR_DL_STALE_UNIQUE_RECORD = CSSM_DL_BASE_DL_ERROR + 49;
829 
830 {$endc} {TARGET_OS_MAC}
831 
832 {$ifc not defined MACOSALLINCLUDE or not MACOSALLINCLUDE}
833 implementation
834 
835 {$ifc TARGET_OS_MAC}
836 
837 
CSSM_ERRCODEnull838 function CSSM_ERRCODE(arg: UInt32): UInt32; inline;
839 begin
840   CSSM_ERRCODE:=(arg - CSSM_BASE_ERROR) and (CSSM_ERRORCODE_MODULE_EXTENT - 1)
841 end;
842 
CSSM_ERRBASEnull843 function CSSM_ERRBASE(arg: UInt32): UInt32; inline;
844 begin
845   CSSM_ERRBASE:=((arg - CSSM_BASE_ERROR) and not(CSSM_ERRORCODE_MODULE_EXTENT - 1)) + CSSM_BASE_ERROR
846 end;
847 
CSSM_ERR_IS_CONVERTIBLEnull848 function CSSM_ERR_IS_CONVERTIBLE(arg: UInt32): Boolean; inline;
849 begin
850   CSSM_ERR_IS_CONVERTIBLE:=CSSM_ERRCODE(arg) < CSSM_ERRORCODE_COMMON_EXTENT
851 end;
852 
CSSM_ERR_TAGnull853 function CSSM_ERR_TAG(code, base: UInt32): UInt32; inline;
854 begin
855   CSSM_ERR_TAG:=CSSM_ERRCODE(code) + base
856 end;
857 
858 {$endc} {TARGET_OS_MAC}
859 
860 end.
861 
862 {$endc} {not MACOSALLINCLUDE}
863