comparison dstep/security/cssmtype.d @ 11:07194b026fa4

Added bindings to a couple of frameworks, new license + some other things
author Jacob Carlborg <doob@me.com>
date Sat, 01 Aug 2009 15:03:28 +0200
parents
children
comparison
equal deleted inserted replaced
10:27e00625790b 11:07194b026fa4
1 /**
2 * Copyright: Copyright (c) 2009 Jacob Carlborg.
3 * Authors: Jacob Carlborg
4 * Version: Initial created: Jul 22, 2009
5 * License: $(LINK2 http://www.boost.org/LICENSE_1_0.txt, Boost Software License 1.0)
6 */
7 module dstep.security.cssmtype;
8
9 import dstep.security.cssmconfig;
10
11 alias int CSSM_HANDLE;
12 alias CSSM_INTPTR* CSSM_HANDLE_PTR;
13 alias ulong CSSM_LONG_HANDLE;
14 alias uint64* CSSM_LONG_HANDLE_PTR;
15 alias int CSSM_MODULE_HANDLE;
16 alias CSSM_HANDLE* CSSM_MODULE_HANDLE_PTR;
17 alias ulong CSSM_CC_HANDLE;
18 alias int CSSM_CSP_HANDLE;
19 alias int CSSM_TP_HANDLE;
20 alias int CSSM_AC_HANDLE;
21 alias int CSSM_CL_HANDLE;
22 alias int CSSM_DL_HANDLE;
23 alias int CSSM_DB_HANDLE;
24 alias int CSSM_BOOL;
25 alias int CSSM_RETURN;
26 alias uint CSSM_BITMASK;
27 alias uint CSSM_KEY_HIERARCHY;
28 alias uint CSSM_PVC_MODE;
29 alias uint CSSM_PRIVILEGE_SCOPE;
30 alias uint CSSM_SERVICE_MASK;
31 alias uint CSSM_SERVICE_TYPE;
32 alias uint CSSM_MODULE_EVENT;
33 alias uint32* CSSM_MODULE_EVENT_PTR;
34 alias uint CSSM_ATTACH_FLAGS;
35 alias ulong CSSM_PRIVILEGE;
36 alias ulong CSSM_USEE_TAG;
37 alias uint CSSM_NET_ADDRESS_TYPE;
38 alias uint CSSM_NET_PROTOCOL;
39 alias int CSSM_WORDID_TYPE;
40 alias uint CSSM_LIST_ELEMENT_TYPE;
41 alias uint32* CSSM_LIST_ELEMENT_TYPE_PTR;
42 alias uint CSSM_LIST_TYPE;
43 alias uint32* CSSM_LIST_TYPE_PTR;
44 alias CSSM_LIST_ELEMENT* CSSM_LIST_ELEMENT_PTR;
45 alias int CSSM_SAMPLE_TYPE;
46 alias CSSM_MEMORY_FUNCS CSSM_API_MEMORY_FUNCS;
47 alias CSSM_API_MEMORY_FUNCS* CSSM_API_MEMORY_FUNCS_PTR;
48 alias uint CSSM_CERT_TYPE;
49 alias uint32* CSSM_CERT_TYPE_PTR;
50 alias uint CSSM_CERT_ENCODING;
51 alias uint32* CSSM_CERT_ENCODING_PTR;
52 alias uint CSSM_CERT_PARSE_FORMAT;
53 alias uint32* CSSM_CERT_PARSE_FORMAT_PTR;
54 alias uint CSSM_CERTGROUP_TYPE;
55 alias uint32* CSSM_CERTGROUP_TYPE_PTR;
56 alias int CSSM_ACL_SUBJECT_TYPE;
57 alias int CSSM_ACL_AUTHORIZATION_TAG;
58 alias int CSSM_ACL_HANDLE;
59 alias uint CSSM_ACL_EDIT_MODE;
60 alias CSSM_PROC_ADDR* CSSM_PROC_ADDR_PTR;
61 alias uint CSSM_HEADERVERSION;
62 alias uint CSSM_KEYBLOB_TYPE;
63 alias uint CSSM_KEYBLOB_FORMAT;
64 alias uint CSSM_KEYCLASS;
65 alias uint CSSM_KEYATTR_FLAGS;
66 alias uint CSSM_KEYUSE;
67 alias uint CSSM_ALGORITHMS;
68 alias uint CSSM_ENCRYPT_MODE;
69 alias CSSM_KEY CSSM_WRAP_KEY;
70 alias CSSM_KEY* CSSM_WRAP_KEY_PTR;
71 alias uint CSSM_CSPTYPE;
72 alias uint CSSM_CONTEXT_TYPE;
73 alias uint CSSM_ATTRIBUTE_TYPE;
74 alias uint CSSM_PADDING;
75 alias uint CSSM_KEY_TYPE;
76 alias uint CSSM_SC_FLAGS;
77 alias uint CSSM_CSP_READER_FLAGS;
78 alias uint CSSM_CSP_FLAGS;
79 alias uint CSSM_PKCS_OAEP_MGF;
80 alias uint CSSM_PKCS_OAEP_PSOURCE;
81 alias uint CSSM_PKCS5_PBKDF2_PRF;
82 alias uint CSSM_TP_AUTHORITY_REQUEST_TYPE;
83 alias uint32* CSSM_TP_AUTHORITY_REQUEST_TYPE_PTR;
84 alias CSSM_DATA CSSM_OID;
85 alias CSSM_DATA* CSSM_OID_PTR;
86 alias uint CSSM_TP_SERVICES;
87 alias uint CSSM_TP_ACTION;
88 alias uint CSSM_TP_STOP_ON;
89 alias char* CSSM_TIMESTRING;
90 alias uint CSSM_CRL_PARSE_FORMAT;
91 alias uint32* CSSM_CRL_PARSE_FORMAT_PTR;
92 alias uint CSSM_CRL_TYPE;
93 alias uint32* CSSM_CRL_TYPE_PTR;
94 alias uint CSSM_CRL_ENCODING;
95 alias uint32* CSSM_CRL_ENCODING_PTR;
96 alias uint CSSM_CRLGROUP_TYPE;
97 alias uint32* CSSM_CRLGROUP_TYPE_PTR;
98 alias uint CSSM_EVIDENCE_FORM;
99 alias uint CSSM_TP_CONFIRM_STATUS;
100 alias uint32* CSSM_TP_CONFIRM_STATUS_PTR;
101 alias uint CSSM_TP_CERTISSUE_STATUS;
102 alias uint CSSM_TP_CERTCHANGE_ACTION;
103 alias uint CSSM_TP_CERTCHANGE_REASON;
104 alias uint CSSM_TP_CERTCHANGE_STATUS;
105 alias uint CSSM_TP_CERTVERIFY_STATUS;
106 alias uint CSSM_TP_CERTNOTARIZE_STATUS;
107 alias uint CSSM_TP_CERTRECLAIM_STATUS;
108 alias uint CSSM_TP_CRLISSUE_STATUS;
109 alias uint CSSM_TP_FORM_TYPE;
110 alias uint CSSM_CL_TEMPLATE_TYPE;
111 alias uint CSSM_CERT_BUNDLE_TYPE;
112 alias uint CSSM_CERT_BUNDLE_ENCODING;
113 alias uint CSSM_DB_ATTRIBUTE_NAME_FORMAT;
114 alias uint32* CSSM_DB_ATTRIBUTE_NAME_FORMAT_PTR;
115 alias uint CSSM_DB_ATTRIBUTE_FORMAT;
116 alias uint32* CSSM_DB_ATTRIBUTE_FORMAT_PTR;
117 alias uint CSSM_DB_RECORDTYPE;
118 alias uint CSSM_DB_INDEX_TYPE;
119 alias uint CSSM_DB_INDEXED_DATA_LOCATION;
120 alias uint CSSM_DB_ACCESS_TYPE;
121 alias uint32* CSSM_DB_ACCESS_TYPE_PTR;
122 alias uint CSSM_DB_MODIFY_MODE;
123 alias uint CSSM_DB_OPERATOR;
124 alias uint32* CSSM_DB_OPERATOR_PTR;
125 alias uint CSSM_DB_CONJUNCTIVE;
126 alias uint32* CSSM_DB_CONJUNCTIVE_PTR;
127 alias uint CSSM_QUERY_FLAGS;
128 alias uint CSSM_DLTYPE;
129 alias uint32* CSSM_DLTYPE_PTR;
130 alias void* CSSM_DL_CUSTOM_ATTRIBUTES;
131 alias void* CSSM_DL_LDAP_ATTRIBUTES;
132 alias void* CSSM_DL_ODBC_ATTRIBUTES;
133 alias void* CSSM_DL_FFS_ATTRIBUTES;
134 alias uint CSSM_DB_RETRIEVAL_MODES;
135 alias CSSM_LIST* CSSM_LIST_PTR;
136 alias CSSM_DATA* CSSM_DATA_PTR;
137 alias CSSM_SAMPLEGROUP* CSSM_SAMPLEGROUP_PTR;
138 alias CSSM_TUPLE* CSSM_TUPLE_PTR;
139 alias CSSM_CERTGROUP* CSSM_CERTGROUP_PTR;
140 alias CSSM_ENCODED_CERT* CSSM_ENCODED_CERT_PTR;
141 alias CSSM_PARSED_CERT* CSSM_PARSED_CERT_PTR;
142 alias CSSM_CERT_PAIR* CSSM_CERT_PAIR_PTR;
143 alias CSSM_ACCESS_CREDENTIALS* CSSM_ACCESS_CREDENTIALS_PTR;
144 alias CSSM_NET_ADDRESS* CSSM_NET_ADDRESS_PTR;
145 alias CSSM_CRLGROUP* CSSM_CRLGROUP_PTR;
146 alias CSSM_ENCODED_CRL* CSSM_ENCODED_CRL_PTR;
147 alias CSSM_PARSED_CRL* CSSM_PARSED_CRL_PTR;
148 alias CSSM_CRL_PAIR* CSSM_CRL_PAIR_PTR;
149 alias CSSM_FIELD* CSSM_FIELD_PTR;
150 alias CSSM_TP_CALLERAUTH_CONTEXT* CSSM_TP_CALLERAUTH_CONTEXT_PTR;
151 alias CSSM_EVIDENCE* CSSM_EVIDENCE_PTR;
152 alias CSSM_TP_VERIFY_CONTEXT* CSSM_TP_VERIFY_CONTEXT_PTR;
153 alias CSSM_DB_ATTRIBUTE_INFO* CSSM_DB_ATTRIBUTE_INFO_PTR;
154 alias CSSM_DB_INDEX_INFO* CSSM_DB_INDEX_INFO_PTR;
155 alias CSSM_DB_PARSING_MODULE_INFO* CSSM_DB_PARSING_MODULE_INFO_PTR;
156 alias CSSM_DB_RECORD_ATTRIBUTE_INFO* CSSM_DB_RECORD_ATTRIBUTE_INFO_PTR;
157 alias CSSM_SELECTION_PREDICATE* CSSM_SELECTION_PREDICATE_PTR;
158 alias CSSM_GUID* CSSM_GUID_PTR;
159 alias CSSM_SUBSERVICE_UID* CSSM_SUBSERVICE_UID_PTR;
160 alias CSSM_CONTEXT* CSSM_CONTEXT_PTR;
161 alias CSSM_CONTEXT_ATTRIBUTE* CSSM_CONTEXT_ATTRIBUTE_PTR;
162 alias CSSM_ACL_ENTRY_INFO* CSSM_ACL_ENTRY_INFO_PTR;
163 alias CSSM_ACL_OWNER_PROTOTYPE* CSSM_ACL_OWNER_PROTOTYPE_PTR;
164 alias CSSM_QUERY_SIZE_DATA* CSSM_QUERY_SIZE_DATA_PTR;
165 alias CSSM_KEY_SIZE* CSSM_KEY_SIZE_PTR;
166 alias CSSM_KEY* CSSM_KEY_PTR;
167 alias CSSM_TP_CONFIRM_RESPONSE* CSSM_TP_CONFIRM_RESPONSE_PTR;
168 alias CSSM_TUPLEGROUP* CSSM_TUPLEGROUP_PTR;
169 alias CSSM_TP_RESULT_SET* CSSM_TP_RESULT_SET_PTR;
170 alias CSSM_TP_VERIFY_CONTEXT_RESULT* CSSM_TP_VERIFY_CONTEXT_RESULT_PTR;
171 alias CSSM_NAME_LIST* CSSM_NAME_LIST_PTR;
172 alias CSSM_DB_UNIQUE_RECORD* CSSM_DB_UNIQUE_RECORD_PTR;
173 alias CSSM_DB_RECORD_ATTRIBUTE_DATA* CSSM_DB_RECORD_ATTRIBUTE_DATA_PTR;
174 alias CSSM_DL_DB_HANDLE* CSSM_DL_DB_HANDLE_PTR;
175 alias CSSM_VERSION* CSSM_VERSION_PTR;
176 alias CSSM_FUNC_NAME_ADDR* CSSM_FUNC_NAME_ADDR_PTR;
177
178 extern (C)
179 {
180 alias int function (CSSM_GUID*, void*, uint, uint, uint) CSSM_API_ModuleEventHandler;
181 alias void function (void*, void*) CSSM_FREE;
182 alias int function (CSSM_LIST*, CSSM_LIST_PTR, void*, CSSM_MEMORY_FUNCS*) CSSM_ACL_SUBJECT_CALLBACK;
183 alias int function (int, void*, CSSM_DATA_PTR) CSSM_TP_VERIFICATION_RESULTS_CALLBACK;
184 alias int function (CSSM_LIST*, CSSM_SAMPLEGROUP_PTR, void*, CSSM_MEMORY_FUNCS*) CSSM_CHALLENGE_CALLBACK;
185 alias void function () CSSM_PROC_ADDR;
186 alias void* function (uint, CSSM_SIZE, void*) CSSM_REALLOC;
187 alias uint function (uint, CSSM_SIZE, void*) CSSM_CALLOC;
188 alias uint function (CSSM_SIZE, int) CSSM_MALLOC;
189 alias CSSM_RETURN function (CSSM_DATA_PTR, void*) CSSM_CALLBACK;
190 }
191
192 enum
193 {
194 CSSM_INVALID_HANDLE = 0
195 }
196
197 enum
198 {
199 CSSM_FALSE = 0,
200 CSSM_TRUE = !CSSM_FALSE
201 }
202
203 enum
204 {
205 CSSM_OK = 0
206 }
207
208 enum
209 {
210 CSSM_MODULE_STRING_SIZE = 64
211 }
212
213 alias char[CSSM_MODULE_STRING_SIZE + 4] CSSM_STRING;
214
215 enum
216 {
217 CSSM_KEY_HIERARCHY_NONE = 0,
218 CSSM_KEY_HIERARCHY_INTEG = 1,
219 CSSM_KEY_HIERARCHY_EXPORT = 2
220 }
221
222 enum
223 {
224 CSSM_PVC_NONE = 0,
225 CSSM_PVC_APP = 1,
226 CSSM_PVC_SP = 2
227 }
228
229 enum
230 {
231 CSSM_PRIVILEGE_SCOPE_NONE = 0,
232 CSSM_PRIVILEGE_SCOPE_PROCESS = 1,
233 CSSM_PRIVILEGE_SCOPE_THREAD = 2
234 }
235
236 enum
237 {
238 CSSM_SERVICE_CSSM = 0x1,
239 CSSM_SERVICE_CSP = 0x2,
240 CSSM_SERVICE_DL = 0x4,
241 CSSM_SERVICE_CL = 0x8,
242 CSSM_SERVICE_TP = 0x10,
243 CSSM_SERVICE_AC = 0x20,
244 CSSM_SERVICE_KR = 0x40
245 }
246
247 enum
248 {
249 CSSM_NOTIFY_INSERT = 1,
250 CSSM_NOTIFY_REMOVE = 2,
251 CSSM_NOTIFY_FAULT = 3
252 }
253
254 enum
255 {
256 CSSM_ATTACH_READ_ONLY = 0x00000001
257 }
258
259 enum
260 {
261 CSSM_USEE_LAST = 0xFF,
262 CSSM_USEE_NONE = 0,
263 CSSM_USEE_DOMESTIC = 1,
264 CSSM_USEE_FINANCIAL = 2,
265 CSSM_USEE_KRLE = 3,
266 CSSM_USEE_KRENT = 4,
267 CSSM_USEE_SSL = 5,
268 CSSM_USEE_AUTHENTICATION = 6,
269 CSSM_USEE_KEYEXCH = 7,
270 CSSM_USEE_MEDICAL = 8,
271 CSSM_USEE_INSURANCE = 9,
272 CSSM_USEE_WEAK = 10
273 }
274
275 enum
276 {
277 CSSM_ADDR_NONE = 0,
278 CSSM_ADDR_CUSTOM = 1,
279 CSSM_ADDR_URL = 2,
280 CSSM_ADDR_SOCKADDR = 3,
281 CSSM_ADDR_NAME = 4
282 }
283
284 enum
285 {
286 CSSM_NET_PROTO_NONE = 0,
287 CSSM_NET_PROTO_CUSTOM = 1,
288 CSSM_NET_PROTO_UNSPECIFIED = 2,
289 CSSM_NET_PROTO_LDAP = 3,
290 CSSM_NET_PROTO_LDAPS = 4,
291 CSSM_NET_PROTO_LDAPNS = 5,
292 CSSM_NET_PROTO_X500DAP = 6,
293 CSSM_NET_PROTO_FTP = 7,
294 CSSM_NET_PROTO_FTPS = 8,
295 CSSM_NET_PROTO_OCSP = 9,
296 CSSM_NET_PROTO_CMP = 10,
297 CSSM_NET_PROTO_CMPS = 11
298 }
299
300 enum
301 {
302 CSSM_WORDID__UNK_ = -1,
303 CSSM_WORDID__NLU_ = 0,
304 CSSM_WORDID__STAR_ = 1,
305 CSSM_WORDID_A = 2,
306 CSSM_WORDID_ACL = 3,
307 CSSM_WORDID_ALPHA = 4,
308 CSSM_WORDID_B = 5,
309 CSSM_WORDID_BER = 6,
310 CSSM_WORDID_BINARY = 7,
311 CSSM_WORDID_BIOMETRIC = 8,
312 CSSM_WORDID_C = 9,
313 CSSM_WORDID_CANCELED = 10,
314 CSSM_WORDID_CERT = 11,
315 CSSM_WORDID_COMMENT = 12,
316 CSSM_WORDID_CRL = 13,
317 CSSM_WORDID_CUSTOM = 14,
318 CSSM_WORDID_D = 15,
319 CSSM_WORDID_DATE = 16,
320 CSSM_WORDID_DB_DELETE = 17,
321 CSSM_WORDID_DB_EXEC_STORED_QUERY = 18,
322 CSSM_WORDID_DB_INSERT = 19,
323 CSSM_WORDID_DB_MODIFY = 20,
324 CSSM_WORDID_DB_READ = 21,
325 CSSM_WORDID_DBS_CREATE = 22,
326 CSSM_WORDID_DBS_DELETE = 23,
327 CSSM_WORDID_DECRYPT = 24,
328 CSSM_WORDID_DELETE = 25,
329 CSSM_WORDID_DELTA_CRL = 26,
330 CSSM_WORDID_DER = 27,
331 CSSM_WORDID_DERIVE = 28,
332 CSSM_WORDID_DISPLAY = 29,
333 CSSM_WORDID_DO = 30,
334 CSSM_WORDID_DSA = 31,
335 CSSM_WORDID_DSA_SHA1 = 32,
336 CSSM_WORDID_E = 33,
337 CSSM_WORDID_ELGAMAL = 34,
338 CSSM_WORDID_ENCRYPT = 35,
339 CSSM_WORDID_ENTRY = 36,
340 CSSM_WORDID_EXPORT_CLEAR = 37,
341 CSSM_WORDID_EXPORT_WRAPPED = 38,
342 CSSM_WORDID_G = 39,
343 CSSM_WORDID_GE = 40,
344 CSSM_WORDID_GENKEY = 41,
345 CSSM_WORDID_HASH = 42,
346 CSSM_WORDID_HASHED_PASSWORD = 43,
347 CSSM_WORDID_HASHED_SUBJECT = 44,
348 CSSM_WORDID_HAVAL = 45,
349 CSSM_WORDID_IBCHASH = 46,
350 CSSM_WORDID_IMPORT_CLEAR = 47,
351 CSSM_WORDID_IMPORT_WRAPPED = 48,
352 CSSM_WORDID_INTEL = 49,
353 CSSM_WORDID_ISSUER = 50,
354 CSSM_WORDID_ISSUER_INFO = 51,
355 CSSM_WORDID_K_OF_N = 52,
356 CSSM_WORDID_KEA = 53,
357 CSSM_WORDID_KEYHOLDER = 54,
358 CSSM_WORDID_L = 55,
359 CSSM_WORDID_LE = 56,
360 CSSM_WORDID_LOGIN = 57,
361 CSSM_WORDID_LOGIN_NAME = 58,
362 CSSM_WORDID_MAC = 59,
363 CSSM_WORDID_MD2 = 60,
364 CSSM_WORDID_MD2WITHRSA = 61,
365 CSSM_WORDID_MD4 = 62,
366 CSSM_WORDID_MD5 = 63,
367 CSSM_WORDID_MD5WITHRSA = 64,
368 CSSM_WORDID_N = 65,
369 CSSM_WORDID_NAME = 66,
370 CSSM_WORDID_NDR = 67,
371 CSSM_WORDID_NHASH = 68,
372 CSSM_WORDID_NOT_AFTER = 69,
373 CSSM_WORDID_NOT_BEFORE = 70,
374 CSSM_WORDID_NULL = 71,
375 CSSM_WORDID_NUMERIC = 72,
376 CSSM_WORDID_OBJECT_HASH = 73,
377 CSSM_WORDID_ONE_TIME = 74,
378 CSSM_WORDID_ONLINE = 75,
379 CSSM_WORDID_OWNER = 76,
380 CSSM_WORDID_P = 77,
381 CSSM_WORDID_PAM_NAME = 78,
382 CSSM_WORDID_PASSWORD = 79,
383 CSSM_WORDID_PGP = 80,
384 CSSM_WORDID_PREFIX = 81,
385 CSSM_WORDID_PRIVATE_KEY = 82,
386 CSSM_WORDID_PROMPTED_BIOMETRIC = 83,
387 CSSM_WORDID_PROMPTED_PASSWORD = 84,
388 CSSM_WORDID_PROPAGATE = 85,
389 CSSM_WORDID_PROTECTED_BIOMETRIC = 86,
390 CSSM_WORDID_PROTECTED_PASSWORD = 87,
391 CSSM_WORDID_PROTECTED_PIN = 88,
392 CSSM_WORDID_PUBLIC_KEY = 89,
393 CSSM_WORDID_PUBLIC_KEY_FROM_CERT = 90,
394 CSSM_WORDID_Q = 91,
395 CSSM_WORDID_RANGE = 92,
396 CSSM_WORDID_REVAL = 93,
397 CSSM_WORDID_RIPEMAC = 94,
398 CSSM_WORDID_RIPEMD = 95,
399 CSSM_WORDID_RIPEMD160 = 96,
400 CSSM_WORDID_RSA = 97,
401 CSSM_WORDID_RSA_ISO9796 = 98,
402 CSSM_WORDID_RSA_PKCS = 99,
403 CSSM_WORDID_RSA_PKCS_MD5 = 100,
404 CSSM_WORDID_RSA_PKCS_SHA1 = 101,
405 CSSM_WORDID_RSA_PKCS1 = 102,
406 CSSM_WORDID_RSA_PKCS1_MD5 = 103,
407 CSSM_WORDID_RSA_PKCS1_SHA1 = 104,
408 CSSM_WORDID_RSA_PKCS1_SIG = 105,
409 CSSM_WORDID_RSA_RAW = 106,
410 CSSM_WORDID_SDSIV1 = 107,
411 CSSM_WORDID_SEQUENCE = 108,
412 CSSM_WORDID_SET = 109,
413 CSSM_WORDID_SEXPR = 110,
414 CSSM_WORDID_SHA1 = 111,
415 CSSM_WORDID_SHA1WITHDSA = 112,
416 CSSM_WORDID_SHA1WITHECDSA = 113,
417 CSSM_WORDID_SHA1WITHRSA = 114,
418 CSSM_WORDID_SIGN = 115,
419 CSSM_WORDID_SIGNATURE = 116,
420 CSSM_WORDID_SIGNED_NONCE = 117,
421 CSSM_WORDID_SIGNED_SECRET = 118,
422 CSSM_WORDID_SPKI = 119,
423 CSSM_WORDID_SUBJECT = 120,
424 CSSM_WORDID_SUBJECT_INFO = 121,
425 CSSM_WORDID_TAG = 122,
426 CSSM_WORDID_THRESHOLD = 123,
427 CSSM_WORDID_TIME = 124,
428 CSSM_WORDID_URI = 125,
429 CSSM_WORDID_VERSION = 126,
430 CSSM_WORDID_X509_ATTRIBUTE = 127,
431 CSSM_WORDID_X509V1 = 128,
432 CSSM_WORDID_X509V2 = 129,
433 CSSM_WORDID_X509V3 = 130,
434 CSSM_WORDID_X9_ATTRIBUTE = 131,
435 CSSM_WORDID_VENDOR_START = 0x00010000,
436 CSSM_WORDID_VENDOR_END = 0x7FFF0000
437 }
438
439 enum
440 {
441 CSSM_LIST_ELEMENT_DATUM = 0x00,
442 CSSM_LIST_ELEMENT_SUBLIST = 0x01,
443 CSSM_LIST_ELEMENT_WORDID = 0x02
444 }
445
446 enum
447 {
448 CSSM_LIST_TYPE_UNKNOWN = 0,
449 CSSM_LIST_TYPE_CUSTOM = 1,
450 CSSM_LIST_TYPE_SEXPR = 2
451 }
452
453 enum
454 {
455 CSSM_SAMPLE_TYPE_PASSWORD = CSSM_WORDID_PASSWORD,
456 CSSM_SAMPLE_TYPE_HASHED_PASSWORD = CSSM_WORDID_HASHED_PASSWORD,
457 CSSM_SAMPLE_TYPE_PROTECTED_PASSWORD = CSSM_WORDID_PROTECTED_PASSWORD,
458 CSSM_SAMPLE_TYPE_PROMPTED_PASSWORD = CSSM_WORDID_PROMPTED_PASSWORD,
459 CSSM_SAMPLE_TYPE_SIGNED_NONCE = CSSM_WORDID_SIGNED_NONCE,
460 CSSM_SAMPLE_TYPE_SIGNED_SECRET = CSSM_WORDID_SIGNED_SECRET,
461 CSSM_SAMPLE_TYPE_BIOMETRIC = CSSM_WORDID_BIOMETRIC,
462 CSSM_SAMPLE_TYPE_PROTECTED_BIOMETRIC = CSSM_WORDID_PROTECTED_BIOMETRIC,
463 CSSM_SAMPLE_TYPE_PROMPTED_BIOMETRIC = CSSM_WORDID_PROMPTED_BIOMETRIC,
464 CSSM_SAMPLE_TYPE_THRESHOLD = CSSM_WORDID_THRESHOLD
465 }
466
467 enum
468 {
469 CSSM_CERT_UNKNOWN = 0x00,
470 CSSM_CERT_X_509v1 = 0x01,
471 CSSM_CERT_X_509v2 = 0x02,
472 CSSM_CERT_X_509v3 = 0x03,
473 CSSM_CERT_PGP = 0x04,
474 CSSM_CERT_SPKI = 0x05,
475 CSSM_CERT_SDSIv1 = 0x06,
476 CSSM_CERT_Intel = 0x08,
477 CSSM_CERT_X_509_ATTRIBUTE = 0x09,
478 CSSM_CERT_X9_ATTRIBUTE = 0x0A,
479 CSSM_CERT_TUPLE = 0x0B,
480 CSSM_CERT_ACL_ENTRY = 0x0C,
481 CSSM_CERT_MULTIPLE = 0x7FFE,
482 CSSM_CERT_LAST = 0x7FFF,
483 CSSM_CL_CUSTOM_CERT_TYPE = 0x08000
484 }
485
486 enum
487 {
488 CSSM_CERT_ENCODING_UNKNOWN = 0x00,
489 CSSM_CERT_ENCODING_CUSTOM = 0x01,
490 CSSM_CERT_ENCODING_BER = 0x02,
491 CSSM_CERT_ENCODING_DER = 0x03,
492 CSSM_CERT_ENCODING_NDR = 0x04,
493 CSSM_CERT_ENCODING_SEXPR = 0x05,
494 CSSM_CERT_ENCODING_PGP = 0x06,
495 CSSM_CERT_ENCODING_MULTIPLE = 0x7FFE,
496 CSSM_CERT_ENCODING_LAST = 0x7FFF,
497 CSSM_CL_CUSTOM_CERT_ENCODING = 0x8000
498 }
499
500 enum
501 {
502 CSSM_CERT_PARSE_FORMAT_NONE = 0x00,
503 CSSM_CERT_PARSE_FORMAT_CUSTOM = 0x01,
504 CSSM_CERT_PARSE_FORMAT_SEXPR = 0x02,
505 CSSM_CERT_PARSE_FORMAT_COMPLEX = 0x03,
506 CSSM_CERT_PARSE_FORMAT_OID_NAMED = 0x04,
507 CSSM_CERT_PARSE_FORMAT_TUPLE = 0x05,
508 CSSM_CERT_PARSE_FORMAT_MULTIPLE = 0x7FFE,
509 CSSM_CERT_PARSE_FORMAT_LAST = 0x7FFF,
510 CSSM_CL_CUSTOM_CERT_PARSE_FORMAT = 0x8000
511 }
512
513 enum
514 {
515 CSSM_CERTGROUP_DATA = 0x00,
516 CSSM_CERTGROUP_ENCODED_CERT = 0x01,
517 CSSM_CERTGROUP_PARSED_CERT = 0x02,
518 CSSM_CERTGROUP_CERT_PAIR = 0x03
519 }
520
521 enum
522 {
523 CSSM_ACL_SUBJECT_TYPE_ANY = CSSM_WORDID__STAR_,
524 CSSM_ACL_SUBJECT_TYPE_THRESHOLD = CSSM_WORDID_THRESHOLD,
525 CSSM_ACL_SUBJECT_TYPE_PASSWORD = CSSM_WORDID_PASSWORD,
526 CSSM_ACL_SUBJECT_TYPE_PROTECTED_PASSWORD = CSSM_WORDID_PROTECTED_PASSWORD,
527 CSSM_ACL_SUBJECT_TYPE_PROMPTED_PASSWORD = CSSM_WORDID_PROMPTED_PASSWORD,
528 CSSM_ACL_SUBJECT_TYPE_PUBLIC_KEY = CSSM_WORDID_PUBLIC_KEY,
529 CSSM_ACL_SUBJECT_TYPE_HASHED_SUBJECT = CSSM_WORDID_HASHED_SUBJECT,
530 CSSM_ACL_SUBJECT_TYPE_BIOMETRIC = CSSM_WORDID_BIOMETRIC,
531 CSSM_ACL_SUBJECT_TYPE_PROTECTED_BIOMETRIC = CSSM_WORDID_PROTECTED_BIOMETRIC,
532 CSSM_ACL_SUBJECT_TYPE_PROMPTED_BIOMETRIC = CSSM_WORDID_PROMPTED_BIOMETRIC,
533 CSSM_ACL_SUBJECT_TYPE_LOGIN_NAME = CSSM_WORDID_LOGIN_NAME,
534 CSSM_ACL_SUBJECT_TYPE_EXT_PAM_NAME = CSSM_WORDID_PAM_NAME
535 }
536
537 enum
538 {
539 CSSM_ACL_AUTHORIZATION_TAG_VENDOR_DEFINED_START = 0x00010000,
540 CSSM_ACL_AUTHORIZATION_ANY = CSSM_WORDID__STAR_,
541 CSSM_ACL_AUTHORIZATION_LOGIN = CSSM_WORDID_LOGIN,
542 CSSM_ACL_AUTHORIZATION_GENKEY = CSSM_WORDID_GENKEY,
543 CSSM_ACL_AUTHORIZATION_DELETE = CSSM_WORDID_DELETE,
544 CSSM_ACL_AUTHORIZATION_EXPORT_WRAPPED = CSSM_WORDID_EXPORT_WRAPPED,
545 CSSM_ACL_AUTHORIZATION_EXPORT_CLEAR = CSSM_WORDID_EXPORT_CLEAR,
546 CSSM_ACL_AUTHORIZATION_IMPORT_WRAPPED = CSSM_WORDID_IMPORT_WRAPPED,
547 CSSM_ACL_AUTHORIZATION_IMPORT_CLEAR = CSSM_WORDID_IMPORT_CLEAR,
548 CSSM_ACL_AUTHORIZATION_SIGN = CSSM_WORDID_SIGN,
549 CSSM_ACL_AUTHORIZATION_ENCRYPT = CSSM_WORDID_ENCRYPT,
550 CSSM_ACL_AUTHORIZATION_DECRYPT = CSSM_WORDID_DECRYPT,
551 CSSM_ACL_AUTHORIZATION_MAC = CSSM_WORDID_MAC,
552 CSSM_ACL_AUTHORIZATION_DERIVE = CSSM_WORDID_DERIVE,
553 CSSM_ACL_AUTHORIZATION_DBS_CREATE = CSSM_WORDID_DBS_CREATE,
554 CSSM_ACL_AUTHORIZATION_DBS_DELETE = CSSM_WORDID_DBS_DELETE,
555 CSSM_ACL_AUTHORIZATION_DB_READ = CSSM_WORDID_DB_READ,
556 CSSM_ACL_AUTHORIZATION_DB_INSERT = CSSM_WORDID_DB_INSERT,
557 CSSM_ACL_AUTHORIZATION_DB_MODIFY = CSSM_WORDID_DB_MODIFY,
558 CSSM_ACL_AUTHORIZATION_DB_DELETE = CSSM_WORDID_DB_DELETE
559 }
560
561 enum
562 {
563 CSSM_ACL_EDIT_MODE_ADD = 1,
564 CSSM_ACL_EDIT_MODE_DELETE = 2,
565 CSSM_ACL_EDIT_MODE_REPLACE = 3
566 }
567
568 enum
569 {
570 CSSM_KEYHEADER_VERSION = 2
571 }
572
573 enum
574 {
575 CSSM_KEYBLOB_RAW = 0,
576 CSSM_KEYBLOB_REFERENCE = 2,
577 CSSM_KEYBLOB_WRAPPED = 3,
578 CSSM_KEYBLOB_OTHER = 0xFFFFFFFF
579 }
580
581 enum
582 {
583 CSSM_KEYBLOB_RAW_FORMAT_NONE = 0,
584 CSSM_KEYBLOB_RAW_FORMAT_PKCS1 = 1,
585 CSSM_KEYBLOB_RAW_FORMAT_PKCS3 = 2,
586 CSSM_KEYBLOB_RAW_FORMAT_MSCAPI = 3,
587 CSSM_KEYBLOB_RAW_FORMAT_PGP = 4,
588 CSSM_KEYBLOB_RAW_FORMAT_FIPS186 = 5,
589 CSSM_KEYBLOB_RAW_FORMAT_BSAFE = 6,
590 CSSM_KEYBLOB_RAW_FORMAT_CCA = 9,
591 CSSM_KEYBLOB_RAW_FORMAT_PKCS8 = 10,
592 CSSM_KEYBLOB_RAW_FORMAT_SPKI = 11,
593 CSSM_KEYBLOB_RAW_FORMAT_OCTET_STRING = 12,
594 CSSM_KEYBLOB_RAW_FORMAT_OTHER = 0xFFFFFFFF
595 }
596
597 enum
598 {
599 CSSM_KEYBLOB_WRAPPED_FORMAT_NONE = 0,
600 CSSM_KEYBLOB_WRAPPED_FORMAT_PKCS8 = 1,
601 CSSM_KEYBLOB_WRAPPED_FORMAT_PKCS7 = 2,
602 CSSM_KEYBLOB_WRAPPED_FORMAT_MSCAPI = 3,
603 CSSM_KEYBLOB_WRAPPED_FORMAT_OTHER = 0xFFFFFFFF
604 }
605
606 enum
607 {
608 CSSM_KEYBLOB_REF_FORMAT_INTEGER = 0,
609 CSSM_KEYBLOB_REF_FORMAT_STRING = 1,
610 CSSM_KEYBLOB_REF_FORMAT_SPKI = 2,
611 CSSM_KEYBLOB_REF_FORMAT_OTHER = 0xFFFFFFFF
612 }
613
614 enum
615 {
616 CSSM_KEYCLASS_PUBLIC_KEY = 0,
617 CSSM_KEYCLASS_PRIVATE_KEY = 1,
618 CSSM_KEYCLASS_SESSION_KEY = 2,
619 CSSM_KEYCLASS_SECRET_PART = 3,
620 CSSM_KEYCLASS_OTHER = 0xFFFFFFFF
621 }
622
623 enum
624 {
625 CSSM_KEYATTR_RETURN_DEFAULT = 0x00000000,
626 CSSM_KEYATTR_RETURN_DATA = 0x10000000,
627 CSSM_KEYATTR_RETURN_REF = 0x20000000,
628 CSSM_KEYATTR_RETURN_NONE = 0x40000000,
629 CSSM_KEYATTR_PERMANENT = 0x00000001,
630 CSSM_KEYATTR_PRIVATE = 0x00000002,
631 CSSM_KEYATTR_MODIFIABLE = 0x00000004,
632 CSSM_KEYATTR_SENSITIVE = 0x00000008,
633 CSSM_KEYATTR_EXTRACTABLE = 0x00000020,
634 CSSM_KEYATTR_ALWAYS_SENSITIVE = 0x00000010,
635 CSSM_KEYATTR_NEVER_EXTRACTABLE = 0x00000040
636 }
637
638 enum
639 {
640 CSSM_KEYUSE_ANY = 0x80000000,
641 CSSM_KEYUSE_ENCRYPT = 0x00000001,
642 CSSM_KEYUSE_DECRYPT = 0x00000002,
643 CSSM_KEYUSE_SIGN = 0x00000004,
644 CSSM_KEYUSE_VERIFY = 0x00000008,
645 CSSM_KEYUSE_SIGN_RECOVER = 0x00000010,
646 CSSM_KEYUSE_VERIFY_RECOVER = 0x00000020,
647 CSSM_KEYUSE_WRAP = 0x00000040,
648 CSSM_KEYUSE_UNWRAP = 0x00000080,
649 CSSM_KEYUSE_DERIVE = 0x00000100
650 }
651
652 enum
653 {
654 CSSM_ALGID_NONE = 0,
655 CSSM_ALGID_CUSTOM = CSSM_ALGID_NONE + 1,
656 CSSM_ALGID_DH = CSSM_ALGID_NONE + 2,
657 CSSM_ALGID_PH = CSSM_ALGID_NONE + 3,
658 CSSM_ALGID_KEA = CSSM_ALGID_NONE + 4,
659 CSSM_ALGID_MD2 = CSSM_ALGID_NONE + 5,
660 CSSM_ALGID_MD4 = CSSM_ALGID_NONE + 6,
661 CSSM_ALGID_MD5 = CSSM_ALGID_NONE + 7,
662 CSSM_ALGID_SHA1 = CSSM_ALGID_NONE + 8,
663 CSSM_ALGID_NHASH = CSSM_ALGID_NONE + 9,
664 CSSM_ALGID_HAVAL = CSSM_ALGID_NONE + 10,
665 CSSM_ALGID_RIPEMD = CSSM_ALGID_NONE + 11,
666 CSSM_ALGID_IBCHASH = CSSM_ALGID_NONE + 12,
667 CSSM_ALGID_RIPEMAC = CSSM_ALGID_NONE + 13,
668 CSSM_ALGID_DES = CSSM_ALGID_NONE + 14,
669 CSSM_ALGID_DESX = CSSM_ALGID_NONE + 15,
670 CSSM_ALGID_RDES = CSSM_ALGID_NONE + 16,
671 CSSM_ALGID_3DES_3KEY_EDE = CSSM_ALGID_NONE + 17,
672 CSSM_ALGID_3DES_2KEY_EDE = CSSM_ALGID_NONE + 18,
673 CSSM_ALGID_3DES_1KEY_EEE = CSSM_ALGID_NONE + 19,
674 CSSM_ALGID_3DES_3KEY = CSSM_ALGID_3DES_3KEY_EDE,
675 CSSM_ALGID_3DES_3KEY_EEE = CSSM_ALGID_NONE + 20,
676 CSSM_ALGID_3DES_2KEY = CSSM_ALGID_3DES_2KEY_EDE,
677 CSSM_ALGID_3DES_2KEY_EEE = CSSM_ALGID_NONE + 21,
678 CSSM_ALGID_3DES_1KEY = CSSM_ALGID_3DES_3KEY_EEE,
679 CSSM_ALGID_IDEA = CSSM_ALGID_NONE + 22,
680 CSSM_ALGID_RC2 = CSSM_ALGID_NONE + 23,
681 CSSM_ALGID_RC5 = CSSM_ALGID_NONE + 24,
682 CSSM_ALGID_RC4 = CSSM_ALGID_NONE + 25,
683 CSSM_ALGID_SEAL = CSSM_ALGID_NONE + 26,
684 CSSM_ALGID_CAST = CSSM_ALGID_NONE + 27,
685 CSSM_ALGID_BLOWFISH = CSSM_ALGID_NONE + 28,
686 CSSM_ALGID_SKIPJACK = CSSM_ALGID_NONE + 29,
687 CSSM_ALGID_LUCIFER = CSSM_ALGID_NONE + 30,
688 CSSM_ALGID_MADRYGA = CSSM_ALGID_NONE + 31,
689 CSSM_ALGID_FEAL = CSSM_ALGID_NONE + 32,
690 CSSM_ALGID_REDOC = CSSM_ALGID_NONE + 33,
691 CSSM_ALGID_REDOC3 = CSSM_ALGID_NONE + 34,
692 CSSM_ALGID_LOKI = CSSM_ALGID_NONE + 35,
693 CSSM_ALGID_KHUFU = CSSM_ALGID_NONE + 36,
694 CSSM_ALGID_KHAFRE = CSSM_ALGID_NONE + 37,
695 CSSM_ALGID_MMB = CSSM_ALGID_NONE + 38,
696 CSSM_ALGID_GOST = CSSM_ALGID_NONE + 39,
697 CSSM_ALGID_SAFER = CSSM_ALGID_NONE + 40,
698 CSSM_ALGID_CRAB = CSSM_ALGID_NONE + 41,
699 CSSM_ALGID_RSA = CSSM_ALGID_NONE + 42,
700 CSSM_ALGID_DSA = CSSM_ALGID_NONE + 43,
701 CSSM_ALGID_MD5WithRSA = CSSM_ALGID_NONE + 44,
702 CSSM_ALGID_MD2WithRSA = CSSM_ALGID_NONE + 45,
703 CSSM_ALGID_ElGamal = CSSM_ALGID_NONE + 46,
704 CSSM_ALGID_MD2Random = CSSM_ALGID_NONE + 47,
705 CSSM_ALGID_MD5Random = CSSM_ALGID_NONE + 48,
706 CSSM_ALGID_SHARandom = CSSM_ALGID_NONE + 49,
707 CSSM_ALGID_DESRandom = CSSM_ALGID_NONE + 50,
708 CSSM_ALGID_SHA1WithRSA = CSSM_ALGID_NONE + 51,
709 CSSM_ALGID_CDMF = CSSM_ALGID_NONE + 52,
710 CSSM_ALGID_CAST3 = CSSM_ALGID_NONE + 53,
711 CSSM_ALGID_CAST5 = CSSM_ALGID_NONE + 54,
712 CSSM_ALGID_GenericSecret = CSSM_ALGID_NONE + 55,
713 CSSM_ALGID_ConcatBaseAndKey = CSSM_ALGID_NONE + 56,
714 CSSM_ALGID_ConcatKeyAndBase = CSSM_ALGID_NONE + 57,
715 CSSM_ALGID_ConcatBaseAndData = CSSM_ALGID_NONE + 58,
716 CSSM_ALGID_ConcatDataAndBase = CSSM_ALGID_NONE + 59,
717 CSSM_ALGID_XORBaseAndData = CSSM_ALGID_NONE + 60,
718 CSSM_ALGID_ExtractFromKey = CSSM_ALGID_NONE + 61,
719 CSSM_ALGID_SSL3PreMasterGen = CSSM_ALGID_NONE + 62,
720 CSSM_ALGID_SSL3MasterDerive = CSSM_ALGID_NONE + 63,
721 CSSM_ALGID_SSL3KeyAndMacDerive = CSSM_ALGID_NONE + 64,
722 CSSM_ALGID_SSL3MD5_MAC = CSSM_ALGID_NONE + 65,
723 CSSM_ALGID_SSL3SHA1_MAC = CSSM_ALGID_NONE + 66,
724 CSSM_ALGID_PKCS5_PBKDF1_MD5 = CSSM_ALGID_NONE + 67,
725 CSSM_ALGID_PKCS5_PBKDF1_MD2 = CSSM_ALGID_NONE + 68,
726 CSSM_ALGID_PKCS5_PBKDF1_SHA1 = CSSM_ALGID_NONE + 69,
727 CSSM_ALGID_WrapLynks = CSSM_ALGID_NONE + 70,
728 CSSM_ALGID_WrapSET_OAEP = CSSM_ALGID_NONE + 71,
729 CSSM_ALGID_BATON = CSSM_ALGID_NONE + 72,
730 CSSM_ALGID_ECDSA = CSSM_ALGID_NONE + 73,
731 CSSM_ALGID_MAYFLY = CSSM_ALGID_NONE + 74,
732 CSSM_ALGID_JUNIPER = CSSM_ALGID_NONE + 75,
733 CSSM_ALGID_FASTHASH = CSSM_ALGID_NONE + 76,
734 CSSM_ALGID_3DES = CSSM_ALGID_NONE + 77,
735 CSSM_ALGID_SSL3MD5 = CSSM_ALGID_NONE + 78,
736 CSSM_ALGID_SSL3SHA1 = CSSM_ALGID_NONE + 79,
737 CSSM_ALGID_FortezzaTimestamp = CSSM_ALGID_NONE + 80,
738 CSSM_ALGID_SHA1WithDSA = CSSM_ALGID_NONE + 81,
739 CSSM_ALGID_SHA1WithECDSA = CSSM_ALGID_NONE + 82,
740 CSSM_ALGID_DSA_BSAFE = CSSM_ALGID_NONE + 83,
741 CSSM_ALGID_ECDH = CSSM_ALGID_NONE + 84,
742 CSSM_ALGID_ECMQV = CSSM_ALGID_NONE + 85,
743 CSSM_ALGID_PKCS12_SHA1_PBE = CSSM_ALGID_NONE + 86,
744 CSSM_ALGID_ECNRA = CSSM_ALGID_NONE + 87,
745 CSSM_ALGID_SHA1WithECNRA = CSSM_ALGID_NONE + 88,
746 CSSM_ALGID_ECES = CSSM_ALGID_NONE + 89,
747 CSSM_ALGID_ECAES = CSSM_ALGID_NONE + 90,
748 CSSM_ALGID_SHA1HMAC = CSSM_ALGID_NONE + 91,
749 CSSM_ALGID_FIPS186Random = CSSM_ALGID_NONE + 92,
750 CSSM_ALGID_ECC = CSSM_ALGID_NONE + 93,
751 CSSM_ALGID_MQV = CSSM_ALGID_NONE + 94,
752 CSSM_ALGID_NRA = CSSM_ALGID_NONE + 95,
753 CSSM_ALGID_IntelPlatformRandom = CSSM_ALGID_NONE + 96,
754 CSSM_ALGID_UTC = CSSM_ALGID_NONE + 97,
755 CSSM_ALGID_HAVAL3 = CSSM_ALGID_NONE + 98,
756 CSSM_ALGID_HAVAL4 = CSSM_ALGID_NONE + 99,
757 CSSM_ALGID_HAVAL5 = CSSM_ALGID_NONE + 100,
758 CSSM_ALGID_TIGER = CSSM_ALGID_NONE + 101,
759 CSSM_ALGID_MD5HMAC = CSSM_ALGID_NONE + 102,
760 CSSM_ALGID_PKCS5_PBKDF2 = CSSM_ALGID_NONE + 103,
761 CSSM_ALGID_RUNNING_COUNTER = CSSM_ALGID_NONE + 104,
762 CSSM_ALGID_LAST = CSSM_ALGID_NONE + 0x7FFFFFFF,
763 CSSM_ALGID_VENDOR_DEFINED = CSSM_ALGID_NONE + 0x80000000
764 }
765
766 enum
767 {
768 CSSM_ALGMODE_NONE = 0,
769 CSSM_ALGMODE_CUSTOM = CSSM_ALGMODE_NONE + 1,
770 CSSM_ALGMODE_ECB = CSSM_ALGMODE_NONE + 2,
771 CSSM_ALGMODE_ECBPad = CSSM_ALGMODE_NONE + 3,
772 CSSM_ALGMODE_CBC = CSSM_ALGMODE_NONE + 4,
773 CSSM_ALGMODE_CBC_IV8 = CSSM_ALGMODE_NONE + 5,
774 CSSM_ALGMODE_CBCPadIV8 = CSSM_ALGMODE_NONE + 6,
775 CSSM_ALGMODE_CFB = CSSM_ALGMODE_NONE + 7,
776 CSSM_ALGMODE_CFB_IV8 = CSSM_ALGMODE_NONE + 8,
777 CSSM_ALGMODE_CFBPadIV8 = CSSM_ALGMODE_NONE + 9,
778 CSSM_ALGMODE_OFB = CSSM_ALGMODE_NONE + 10,
779 CSSM_ALGMODE_OFB_IV8 = CSSM_ALGMODE_NONE + 11,
780 CSSM_ALGMODE_OFBPadIV8 = CSSM_ALGMODE_NONE + 12,
781 CSSM_ALGMODE_COUNTER = CSSM_ALGMODE_NONE + 13,
782 CSSM_ALGMODE_BC = CSSM_ALGMODE_NONE + 14,
783 CSSM_ALGMODE_PCBC = CSSM_ALGMODE_NONE + 15,
784 CSSM_ALGMODE_CBCC = CSSM_ALGMODE_NONE + 16,
785 CSSM_ALGMODE_OFBNLF = CSSM_ALGMODE_NONE + 17,
786 CSSM_ALGMODE_PBC = CSSM_ALGMODE_NONE + 18,
787 CSSM_ALGMODE_PFB = CSSM_ALGMODE_NONE + 19,
788 CSSM_ALGMODE_CBCPD = CSSM_ALGMODE_NONE + 20,
789 CSSM_ALGMODE_PUBLIC_KEY = CSSM_ALGMODE_NONE + 21,
790 CSSM_ALGMODE_PRIVATE_KEY = CSSM_ALGMODE_NONE + 22,
791 CSSM_ALGMODE_SHUFFLE = CSSM_ALGMODE_NONE + 23,
792 CSSM_ALGMODE_ECB64 = CSSM_ALGMODE_NONE + 24,
793 CSSM_ALGMODE_CBC64 = CSSM_ALGMODE_NONE + 25,
794 CSSM_ALGMODE_OFB64 = CSSM_ALGMODE_NONE + 26,
795 CSSM_ALGMODE_CFB32 = CSSM_ALGMODE_NONE + 28,
796 CSSM_ALGMODE_CFB16 = CSSM_ALGMODE_NONE + 29,
797 CSSM_ALGMODE_CFB8 = CSSM_ALGMODE_NONE + 30,
798 CSSM_ALGMODE_WRAP = CSSM_ALGMODE_NONE + 31,
799 CSSM_ALGMODE_PRIVATE_WRAP = CSSM_ALGMODE_NONE + 32,
800 CSSM_ALGMODE_RELAYX = CSSM_ALGMODE_NONE + 33,
801 CSSM_ALGMODE_ECB128 = CSSM_ALGMODE_NONE + 34,
802 CSSM_ALGMODE_ECB96 = CSSM_ALGMODE_NONE + 35,
803 CSSM_ALGMODE_CBC128 = CSSM_ALGMODE_NONE + 36,
804 CSSM_ALGMODE_OAEP_HASH = CSSM_ALGMODE_NONE + 37,
805 CSSM_ALGMODE_PKCS1_EME_V15 = CSSM_ALGMODE_NONE + 38,
806 CSSM_ALGMODE_PKCS1_EME_OAEP = CSSM_ALGMODE_NONE + 39,
807 CSSM_ALGMODE_PKCS1_EMSA_V15 = CSSM_ALGMODE_NONE + 40,
808 CSSM_ALGMODE_ISO_9796 = CSSM_ALGMODE_NONE + 41,
809 CSSM_ALGMODE_X9_31 = CSSM_ALGMODE_NONE + 42,
810 CSSM_ALGMODE_LAST = CSSM_ALGMODE_NONE + 0x7FFFFFFF,
811 CSSM_ALGMODE_VENDOR_DEFINED = CSSM_ALGMODE_NONE + 0x80000000
812 }
813
814 enum
815 {
816 CSSM_CSP_SOFTWARE = 1,
817 CSSM_CSP_HARDWARE = CSSM_CSP_SOFTWARE + 1,
818 CSSM_CSP_HYBRID = CSSM_CSP_SOFTWARE + 2
819 }
820
821 enum
822 {
823 CSSM_ALGCLASS_NONE = 0,
824 CSSM_ALGCLASS_CUSTOM = CSSM_ALGCLASS_NONE + 1,
825 CSSM_ALGCLASS_SIGNATURE = CSSM_ALGCLASS_NONE + 2,
826 CSSM_ALGCLASS_SYMMETRIC = CSSM_ALGCLASS_NONE + 3,
827 CSSM_ALGCLASS_DIGEST = CSSM_ALGCLASS_NONE + 4,
828 CSSM_ALGCLASS_RANDOMGEN = CSSM_ALGCLASS_NONE + 5,
829 CSSM_ALGCLASS_UNIQUEGEN = CSSM_ALGCLASS_NONE + 6,
830 CSSM_ALGCLASS_MAC = CSSM_ALGCLASS_NONE + 7,
831 CSSM_ALGCLASS_ASYMMETRIC = CSSM_ALGCLASS_NONE + 8,
832 CSSM_ALGCLASS_KEYGEN = CSSM_ALGCLASS_NONE + 9,
833 CSSM_ALGCLASS_DERIVEKEY = CSSM_ALGCLASS_NONE + 10
834 }
835
836 enum
837 {
838 CSSM_ATTRIBUTE_DATA_NONE = 0x00000000,
839 CSSM_ATTRIBUTE_DATA_UINT32 = 0x10000000,
840 CSSM_ATTRIBUTE_DATA_CSSM_DATA = 0x20000000,
841 CSSM_ATTRIBUTE_DATA_CRYPTO_DATA = 0x30000000,
842 CSSM_ATTRIBUTE_DATA_KEY = 0x40000000,
843 CSSM_ATTRIBUTE_DATA_STRING = 0x50000000,
844 CSSM_ATTRIBUTE_DATA_DATE = 0x60000000,
845 CSSM_ATTRIBUTE_DATA_RANGE = 0x70000000,
846 CSSM_ATTRIBUTE_DATA_ACCESS_CREDENTIALS = 0x80000000,
847 CSSM_ATTRIBUTE_DATA_VERSION = 0x01000000,
848 CSSM_ATTRIBUTE_DATA_DL_DB_HANDLE = 0x02000000,
849 CSSM_ATTRIBUTE_DATA_KR_PROFILE = 0x03000000,
850 CSSM_ATTRIBUTE_TYPE_MASK = 0xFF000000
851 }
852
853 enum
854 {
855 CSSM_ATTRIBUTE_NONE = 0,
856 CSSM_ATTRIBUTE_CUSTOM = CSSM_ATTRIBUTE_DATA_CSSM_DATA | 1,
857 CSSM_ATTRIBUTE_DESCRIPTION = CSSM_ATTRIBUTE_DATA_STRING | 2,
858 CSSM_ATTRIBUTE_KEY = CSSM_ATTRIBUTE_DATA_KEY | 3,
859 CSSM_ATTRIBUTE_INIT_VECTOR = CSSM_ATTRIBUTE_DATA_CSSM_DATA | 4,
860 CSSM_ATTRIBUTE_SALT = CSSM_ATTRIBUTE_DATA_CSSM_DATA | 5,
861 CSSM_ATTRIBUTE_PADDING = CSSM_ATTRIBUTE_DATA_UINT32 | 6,
862 CSSM_ATTRIBUTE_RANDOM = CSSM_ATTRIBUTE_DATA_CSSM_DATA | 7,
863 CSSM_ATTRIBUTE_SEED = CSSM_ATTRIBUTE_DATA_CRYPTO_DATA | 8,
864 CSSM_ATTRIBUTE_PASSPHRASE = CSSM_ATTRIBUTE_DATA_CRYPTO_DATA | 9,
865 CSSM_ATTRIBUTE_KEY_LENGTH = CSSM_ATTRIBUTE_DATA_UINT32 | 10,
866 CSSM_ATTRIBUTE_KEY_LENGTH_RANGE = CSSM_ATTRIBUTE_DATA_RANGE | 11,
867 CSSM_ATTRIBUTE_BLOCK_SIZE = CSSM_ATTRIBUTE_DATA_UINT32 | 12,
868 CSSM_ATTRIBUTE_OUTPUT_SIZE = CSSM_ATTRIBUTE_DATA_UINT32 | 13,
869 CSSM_ATTRIBUTE_ROUNDS = CSSM_ATTRIBUTE_DATA_UINT32 | 14,
870 CSSM_ATTRIBUTE_IV_SIZE = CSSM_ATTRIBUTE_DATA_UINT32 | 15,
871 CSSM_ATTRIBUTE_ALG_PARAMS = CSSM_ATTRIBUTE_DATA_CSSM_DATA | 16,
872 CSSM_ATTRIBUTE_LABEL = CSSM_ATTRIBUTE_DATA_CSSM_DATA | 17,
873 CSSM_ATTRIBUTE_KEY_TYPE = CSSM_ATTRIBUTE_DATA_UINT32 | 18,
874 CSSM_ATTRIBUTE_MODE = CSSM_ATTRIBUTE_DATA_UINT32 | 19,
875 CSSM_ATTRIBUTE_EFFECTIVE_BITS = CSSM_ATTRIBUTE_DATA_UINT32 | 20,
876 CSSM_ATTRIBUTE_START_DATE = CSSM_ATTRIBUTE_DATA_DATE | 21,
877 CSSM_ATTRIBUTE_END_DATE = CSSM_ATTRIBUTE_DATA_DATE | 22,
878 CSSM_ATTRIBUTE_KEYUSAGE = CSSM_ATTRIBUTE_DATA_UINT32 | 23,
879 CSSM_ATTRIBUTE_KEYATTR = CSSM_ATTRIBUTE_DATA_UINT32 | 24,
880 CSSM_ATTRIBUTE_VERSION = CSSM_ATTRIBUTE_DATA_VERSION | 25,
881 CSSM_ATTRIBUTE_PRIME = CSSM_ATTRIBUTE_DATA_CSSM_DATA | 26,
882 CSSM_ATTRIBUTE_BASE = CSSM_ATTRIBUTE_DATA_CSSM_DATA | 27,
883 CSSM_ATTRIBUTE_SUBPRIME = CSSM_ATTRIBUTE_DATA_CSSM_DATA | 28,
884 CSSM_ATTRIBUTE_ALG_ID = CSSM_ATTRIBUTE_DATA_UINT32 | 29,
885 CSSM_ATTRIBUTE_ITERATION_COUNT = CSSM_ATTRIBUTE_DATA_UINT32 | 30,
886 CSSM_ATTRIBUTE_ROUNDS_RANGE = CSSM_ATTRIBUTE_DATA_RANGE | 31,
887 CSSM_ATTRIBUTE_KRPROFILE_LOCAL = CSSM_ATTRIBUTE_DATA_KR_PROFILE | 32,
888 CSSM_ATTRIBUTE_KRPROFILE_REMOTE = CSSM_ATTRIBUTE_DATA_KR_PROFILE | 33,
889 CSSM_ATTRIBUTE_CSP_HANDLE = CSSM_ATTRIBUTE_DATA_UINT32 | 34,
890 CSSM_ATTRIBUTE_DL_DB_HANDLE = CSSM_ATTRIBUTE_DATA_DL_DB_HANDLE | 35,
891 CSSM_ATTRIBUTE_ACCESS_CREDENTIALS = CSSM_ATTRIBUTE_DATA_ACCESS_CREDENTIALS | 36,
892 CSSM_ATTRIBUTE_PUBLIC_KEY_FORMAT = CSSM_ATTRIBUTE_DATA_UINT32 | 37,
893 CSSM_ATTRIBUTE_PRIVATE_KEY_FORMAT = CSSM_ATTRIBUTE_DATA_UINT32 | 38,
894 CSSM_ATTRIBUTE_SYMMETRIC_KEY_FORMAT = CSSM_ATTRIBUTE_DATA_UINT32 | 39,
895 CSSM_ATTRIBUTE_WRAPPED_KEY_FORMAT = CSSM_ATTRIBUTE_DATA_UINT32 | 40
896 }
897
898 enum
899 {
900 CSSM_PADDING_NONE = 0,
901 CSSM_PADDING_CUSTOM = CSSM_PADDING_NONE + 1,
902 CSSM_PADDING_ZERO = CSSM_PADDING_NONE + 2,
903 CSSM_PADDING_ONE = CSSM_PADDING_NONE + 3,
904 CSSM_PADDING_ALTERNATE = CSSM_PADDING_NONE + 4,
905 CSSM_PADDING_FF = CSSM_PADDING_NONE + 5,
906 CSSM_PADDING_PKCS5 = CSSM_PADDING_NONE + 6,
907 CSSM_PADDING_PKCS7 = CSSM_PADDING_NONE + 7,
908 CSSM_PADDING_CIPHERSTEALING = CSSM_PADDING_NONE + 8,
909 CSSM_PADDING_RANDOM = CSSM_PADDING_NONE + 9,
910 CSSM_PADDING_PKCS1 = CSSM_PADDING_NONE + 10,
911 CSSM_PADDING_VENDOR_DEFINED = CSSM_PADDING_NONE + 0x80000000
912 }
913
914 enum
915 {
916 CSSM_CSP_TOK_RNG = 0x00000001,
917 CSSM_CSP_TOK_CLOCK_EXISTS = 0x00000040
918 }
919
920 enum
921 {
922 CSSM_CSP_RDR_TOKENPRESENT = 0x00000001,
923 CSSM_CSP_RDR_EXISTS = 0x00000002,
924 CSSM_CSP_RDR_HW = 0x00000004
925 }
926
927 enum
928 {
929 CSSM_CSP_TOK_WRITE_PROTECTED = 0x00000002,
930 CSSM_CSP_TOK_LOGIN_REQUIRED = 0x00000004,
931 CSSM_CSP_TOK_USER_PIN_INITIALIZED = 0x00000008,
932 CSSM_CSP_TOK_PROT_AUTHENTICATION = 0x00000100,
933 CSSM_CSP_TOK_USER_PIN_EXPIRED = 0x00100000,
934 CSSM_CSP_TOK_SESSION_KEY_PASSWORD = 0x00200000,
935 CSSM_CSP_TOK_PRIVATE_KEY_PASSWORD = 0x00400000,
936 CSSM_CSP_STORES_PRIVATE_KEYS = 0x01000000,
937 CSSM_CSP_STORES_PUBLIC_KEYS = 0x02000000,
938 CSSM_CSP_STORES_SESSION_KEYS = 0x04000000,
939 CSSM_CSP_STORES_CERTIFICATES = 0x08000000,
940 CSSM_CSP_STORES_GENERIC = 0x10000000
941 }
942
943 enum
944 {
945 CSSM_PKCS_OAEP_MGF_NONE = 0,
946 CSSM_PKCS_OAEP_MGF1_SHA1 = CSSM_PKCS_OAEP_MGF_NONE + 1,
947 CSSM_PKCS_OAEP_MGF1_MD5 = CSSM_PKCS_OAEP_MGF_NONE + 2
948 }
949
950 enum
951 {
952 CSSM_PKCS_OAEP_PSOURCE_NONE = 0,
953 CSSM_PKCS_OAEP_PSOURCE_Pspecified = CSSM_PKCS_OAEP_PSOURCE_NONE + 1
954 }
955
956 enum : uint
957 {
958 CSSM_VALUE_NOT_AVAILABLE = ~0
959 }
960
961 enum
962 {
963 CSSM_PKCS5_PBKDF2_PRF_HMAC_SHA1 = 0
964 }
965
966 enum
967 {
968 CSSM_TP_AUTHORITY_REQUEST_CERTISSUE = 0x01,
969 CSSM_TP_AUTHORITY_REQUEST_CERTREVOKE = 0x02,
970 CSSM_TP_AUTHORITY_REQUEST_CERTSUSPEND = 0x03,
971 CSSM_TP_AUTHORITY_REQUEST_CERTRESUME = 0x04,
972 CSSM_TP_AUTHORITY_REQUEST_CERTVERIFY = 0x05,
973 CSSM_TP_AUTHORITY_REQUEST_CERTNOTARIZE = 0x06,
974 CSSM_TP_AUTHORITY_REQUEST_CERTUSERECOVER = 0x07,
975 CSSM_TP_AUTHORITY_REQUEST_CRLISSUE = 0x100
976 }
977
978 enum
979 {
980 CSSM_TP_KEY_ARCHIVE = 0x0001,
981 CSSM_TP_CERT_PUBLISH = 0x0002,
982 CSSM_TP_CERT_NOTIFY_RENEW = 0x0004,
983 CSSM_TP_CERT_DIR_UPDATE = 0x0008,
984 CSSM_TP_CRL_DISTRIBUTE = 0x0010
985 }
986
987 enum
988 {
989 CSSM_TP_ACTION_DEFAULT = 0
990 }
991
992 enum
993 {
994 CSSM_TP_STOP_ON_POLICY = 0,
995 CSSM_TP_STOP_ON_NONE = 1,
996 CSSM_TP_STOP_ON_FIRST_PASS = 2,
997 CSSM_TP_STOP_ON_FIRST_FAIL = 3
998 }
999
1000 enum
1001 {
1002 CSSM_CRL_PARSE_FORMAT_NONE = 0x00,
1003 CSSM_CRL_PARSE_FORMAT_CUSTOM = 0x01,
1004 CSSM_CRL_PARSE_FORMAT_SEXPR = 0x02,
1005 CSSM_CRL_PARSE_FORMAT_COMPLEX = 0x03,
1006 CSSM_CRL_PARSE_FORMAT_OID_NAMED = 0x04,
1007 CSSM_CRL_PARSE_FORMAT_TUPLE = 0x05,
1008 CSSM_CRL_PARSE_FORMAT_MULTIPLE = 0x7FFE,
1009 CSSM_CRL_PARSE_FORMAT_LAST = 0x7FFF,
1010 CSSM_CL_CUSTOM_CRL_PARSE_FORMAT = 0x8000
1011 }
1012
1013 enum
1014 {
1015 CSSM_CRL_TYPE_UNKNOWN = 0x00,
1016 CSSM_CRL_TYPE_X_509v1 = 0x01,
1017 CSSM_CRL_TYPE_X_509v2 = 0x02,
1018 CSSM_CRL_TYPE_SPKI = 0x03,
1019 CSSM_CRL_TYPE_MULTIPLE = 0x7FFE
1020 }
1021
1022 enum
1023 {
1024 CSSM_CRL_ENCODING_UNKNOWN = 0x00,
1025 CSSM_CRL_ENCODING_CUSTOM = 0x01,
1026 CSSM_CRL_ENCODING_BER = 0x02,
1027 CSSM_CRL_ENCODING_DER = 0x03,
1028 CSSM_CRL_ENCODING_BLOOM = 0x04,
1029 CSSM_CRL_ENCODING_SEXPR = 0x05,
1030 CSSM_CRL_ENCODING_MULTIPLE = 0x7FFE
1031 }
1032
1033 enum
1034 {
1035 CSSM_CRLGROUP_DATA = 0x00,
1036 CSSM_CRLGROUP_ENCODED_CRL = 0x01,
1037 CSSM_CRLGROUP_PARSED_CRL = 0x02,
1038 CSSM_CRLGROUP_CRL_PAIR = 0x03
1039 }
1040
1041 enum
1042 {
1043 CSSM_EVIDENCE_FORM_UNSPECIFIC = 0x0,
1044 CSSM_EVIDENCE_FORM_CERT = 0x1,
1045 CSSM_EVIDENCE_FORM_CRL = 0x2,
1046 CSSM_EVIDENCE_FORM_CERT_ID = 0x3,
1047 CSSM_EVIDENCE_FORM_CRL_ID = 0x4,
1048 CSSM_EVIDENCE_FORM_VERIFIER_TIME = 0x5,
1049 CSSM_EVIDENCE_FORM_CRL_THISTIME = 0x6,
1050 CSSM_EVIDENCE_FORM_CRL_NEXTTIME = 0x7,
1051 CSSM_EVIDENCE_FORM_POLICYINFO = 0x8,
1052 CSSM_EVIDENCE_FORM_TUPLEGROUP = 0x9
1053 }
1054
1055 enum
1056 {
1057 CSSM_TP_CONFIRM_STATUS_UNKNOWN = 0x0,
1058 CSSM_TP_CONFIRM_ACCEPT = 0x1,
1059 CSSM_TP_CONFIRM_REJECT = 0x2
1060 }
1061
1062 enum
1063 {
1064 CSSM_ESTIMATED_TIME_UNKNOWN = -1
1065 }
1066
1067 enum
1068 {
1069 CSSM_ELAPSED_TIME_UNKNOWN = -1,
1070 CSSM_ELAPSED_TIME_COMPLETE = -2
1071 }
1072
1073 enum
1074 {
1075 CSSM_TP_CERTISSUE_STATUS_UNKNOWN = 0x0,
1076 CSSM_TP_CERTISSUE_OK = 0x1,
1077 CSSM_TP_CERTISSUE_OKWITHCERTMODS = 0x2,
1078 CSSM_TP_CERTISSUE_OKWITHSERVICEMODS = 0x3,
1079 CSSM_TP_CERTISSUE_REJECTED = 0x4,
1080 CSSM_TP_CERTISSUE_NOT_AUTHORIZED = 0x5,
1081 CSSM_TP_CERTISSUE_WILL_BE_REVOKED = 0x6
1082 }
1083
1084 enum
1085 {
1086 CSSM_TP_CERTCHANGE_NONE = 0x0,
1087 CSSM_TP_CERTCHANGE_REVOKE = 0x1,
1088 CSSM_TP_CERTCHANGE_HOLD = 0x2,
1089 CSSM_TP_CERTCHANGE_RELEASE = 0x3
1090 }
1091
1092 enum
1093 {
1094 CSSM_TP_CERTCHANGE_REASON_UNKNOWN = 0x0,
1095 CSSM_TP_CERTCHANGE_REASON_KEYCOMPROMISE = 0x1,
1096 CSSM_TP_CERTCHANGE_REASON_CACOMPROMISE = 0x2,
1097 CSSM_TP_CERTCHANGE_REASON_CEASEOPERATION = 0x3,
1098 CSSM_TP_CERTCHANGE_REASON_AFFILIATIONCHANGE = 0x4,
1099 CSSM_TP_CERTCHANGE_REASON_SUPERCEDED = 0x5,
1100 CSSM_TP_CERTCHANGE_REASON_SUSPECTEDCOMPROMISE = 0x6,
1101 CSSM_TP_CERTCHANGE_REASON_HOLDRELEASE = 0x7
1102 }
1103
1104 enum
1105 {
1106 CSSM_TP_CERTCHANGE_STATUS_UNKNOWN = 0x0,
1107 CSSM_TP_CERTCHANGE_OK = 0x1,
1108 CSSM_TP_CERTCHANGE_OKWITHNEWTIME = 0x2,
1109 CSSM_TP_CERTCHANGE_WRONGCA = 0x3,
1110 CSSM_TP_CERTCHANGE_REJECTED = 0x4,
1111 CSSM_TP_CERTCHANGE_NOT_AUTHORIZED = 0x5
1112 }
1113
1114 enum
1115 {
1116 CSSM_TP_CERTVERIFY_UNKNOWN = 0x0,
1117 CSSM_TP_CERTVERIFY_VALID = 0x1,
1118 CSSM_TP_CERTVERIFY_INVALID = 0x2,
1119 CSSM_TP_CERTVERIFY_REVOKED = 0x3,
1120 CSSM_TP_CERTVERIFY_SUSPENDED = 0x4,
1121 CSSM_TP_CERTVERIFY_EXPIRED = 0x5,
1122 CSSM_TP_CERTVERIFY_NOT_VALID_YET = 0x6,
1123 CSSM_TP_CERTVERIFY_INVALID_AUTHORITY = 0x7,
1124 CSSM_TP_CERTVERIFY_INVALID_SIGNATURE = 0x8,
1125 CSSM_TP_CERTVERIFY_INVALID_CERT_VALUE = 0x9,
1126 CSSM_TP_CERTVERIFY_INVALID_CERTGROUP = 0xA,
1127 CSSM_TP_CERTVERIFY_INVALID_POLICY = 0xB,
1128 CSSM_TP_CERTVERIFY_INVALID_POLICY_IDS = 0xC,
1129 CSSM_TP_CERTVERIFY_INVALID_BASIC_CONSTRAINTS = 0xD,
1130 CSSM_TP_CERTVERIFY_INVALID_CRL_DIST_PT = 0xE,
1131 CSSM_TP_CERTVERIFY_INVALID_NAME_TREE = 0xF,
1132 CSSM_TP_CERTVERIFY_UNKNOWN_CRITICAL_EXT = 0x10
1133 }
1134
1135 enum
1136 {
1137 CSSM_TP_CERTNOTARIZE_STATUS_UNKNOWN = 0x0,
1138 CSSM_TP_CERTNOTARIZE_OK = 0x1,
1139 CSSM_TP_CERTNOTARIZE_OKWITHOUTFIELDS = 0x2,
1140 CSSM_TP_CERTNOTARIZE_OKWITHSERVICEMODS = 0x3,
1141 CSSM_TP_CERTNOTARIZE_REJECTED = 0x4,
1142 CSSM_TP_CERTNOTARIZE_NOT_AUTHORIZED = 0x5
1143 }
1144
1145 enum
1146 {
1147 CSSM_TP_CERTRECLAIM_STATUS_UNKNOWN = 0x0,
1148 CSSM_TP_CERTRECLAIM_OK = 0x1,
1149 CSSM_TP_CERTRECLAIM_NOMATCH = 0x2,
1150 CSSM_TP_CERTRECLAIM_REJECTED = 0x3,
1151 CSSM_TP_CERTRECLAIM_NOT_AUTHORIZED = 0x4
1152 }
1153
1154 enum
1155 {
1156 CSSM_TP_CRLISSUE_STATUS_UNKNOWN = 0x0,
1157 CSSM_TP_CRLISSUE_OK = 0x1,
1158 CSSM_TP_CRLISSUE_NOT_CURRENT = 0x2,
1159 CSSM_TP_CRLISSUE_INVALID_DOMAIN = 0x3,
1160 CSSM_TP_CRLISSUE_UNKNOWN_IDENTIFIER = 0x4,
1161 CSSM_TP_CRLISSUE_REJECTED = 0x5,
1162 CSSM_TP_CRLISSUE_NOT_AUTHORIZED = 0x6
1163 }
1164
1165 enum
1166 {
1167 CSSM_TP_FORM_TYPE_GENERIC = 0x0,
1168 CSSM_TP_FORM_TYPE_REGISTRATION = 0x1
1169 }
1170
1171 enum
1172 {
1173 CSSM_CL_TEMPLATE_INTERMEDIATE_CERT = 1,
1174 CSSM_CL_TEMPLATE_PKIX_CERTTEMPLATE = 2
1175 }
1176
1177 enum
1178 {
1179 CSSM_CERT_BUNDLE_UNKNOWN = 0x00,
1180 CSSM_CERT_BUNDLE_CUSTOM = 0x01,
1181 CSSM_CERT_BUNDLE_PKCS7_SIGNED_DATA = 0x02,
1182 CSSM_CERT_BUNDLE_PKCS7_SIGNED_ENVELOPED_DATA = 0x03,
1183 CSSM_CERT_BUNDLE_PKCS12 = 0x04,
1184 CSSM_CERT_BUNDLE_PFX = 0x05,
1185 CSSM_CERT_BUNDLE_SPKI_SEQUENCE = 0x06,
1186 CSSM_CERT_BUNDLE_PGP_KEYRING = 0x07,
1187 CSSM_CERT_BUNDLE_LAST = 0x7FFF,
1188 CSSM_CL_CUSTOM_CERT_BUNDLE_TYPE = 0x8000
1189 }
1190
1191 enum
1192 {
1193 CSSM_CERT_BUNDLE_ENCODING_UNKNOWN = 0x00,
1194 CSSM_CERT_BUNDLE_ENCODING_CUSTOM = 0x01,
1195 CSSM_CERT_BUNDLE_ENCODING_BER = 0x02,
1196 CSSM_CERT_BUNDLE_ENCODING_DER = 0x03,
1197 CSSM_CERT_BUNDLE_ENCODING_SEXPR = 0x04,
1198 CSSM_CERT_BUNDLE_ENCODING_PGP = 0x05
1199 }
1200
1201 enum
1202 {
1203 CSSM_FIELDVALUE_COMPLEX_DATA_TYPE = 0xFFFFFFFF
1204 }
1205
1206 enum
1207 {
1208 CSSM_DB_ATTRIBUTE_NAME_AS_STRING = 0,
1209 CSSM_DB_ATTRIBUTE_NAME_AS_OID = 1,
1210 CSSM_DB_ATTRIBUTE_NAME_AS_INTEGER = 2
1211 }
1212
1213 enum
1214 {
1215 CSSM_DB_ATTRIBUTE_FORMAT_STRING = 0,
1216 CSSM_DB_ATTRIBUTE_FORMAT_SINT32 = 1,
1217 CSSM_DB_ATTRIBUTE_FORMAT_UINT32 = 2,
1218 CSSM_DB_ATTRIBUTE_FORMAT_BIG_NUM = 3,
1219 CSSM_DB_ATTRIBUTE_FORMAT_REAL = 4,
1220 CSSM_DB_ATTRIBUTE_FORMAT_TIME_DATE = 5,
1221 CSSM_DB_ATTRIBUTE_FORMAT_BLOB = 6,
1222 CSSM_DB_ATTRIBUTE_FORMAT_MULTI_UINT32 = 7,
1223 CSSM_DB_ATTRIBUTE_FORMAT_COMPLEX = 8
1224 }
1225
1226 enum
1227 {
1228 CSSM_DB_RECORDTYPE_SCHEMA_START = 0x00000000,
1229 CSSM_DB_RECORDTYPE_SCHEMA_END = CSSM_DB_RECORDTYPE_SCHEMA_START + 4,
1230 CSSM_DB_RECORDTYPE_OPEN_GROUP_START = 0x0000000A,
1231 CSSM_DB_RECORDTYPE_OPEN_GROUP_END = CSSM_DB_RECORDTYPE_OPEN_GROUP_START + 8,
1232 CSSM_DB_RECORDTYPE_APP_DEFINED_START = 0x80000000,
1233 CSSM_DB_RECORDTYPE_APP_DEFINED_END = 0xffffffff,
1234 CSSM_DL_DB_SCHEMA_INFO = CSSM_DB_RECORDTYPE_SCHEMA_START + 0,
1235 CSSM_DL_DB_SCHEMA_INDEXES = CSSM_DB_RECORDTYPE_SCHEMA_START + 1,
1236 CSSM_DL_DB_SCHEMA_ATTRIBUTES = CSSM_DB_RECORDTYPE_SCHEMA_START + 2,
1237 CSSM_DL_DB_SCHEMA_PARSING_MODULE = CSSM_DB_RECORDTYPE_SCHEMA_START + 3,
1238 CSSM_DL_DB_RECORD_ANY = CSSM_DB_RECORDTYPE_OPEN_GROUP_START + 0,
1239 CSSM_DL_DB_RECORD_CERT = CSSM_DB_RECORDTYPE_OPEN_GROUP_START + 1,
1240 CSSM_DL_DB_RECORD_CRL = CSSM_DB_RECORDTYPE_OPEN_GROUP_START + 2,
1241 CSSM_DL_DB_RECORD_POLICY = CSSM_DB_RECORDTYPE_OPEN_GROUP_START + 3,
1242 CSSM_DL_DB_RECORD_GENERIC = CSSM_DB_RECORDTYPE_OPEN_GROUP_START + 4,
1243 CSSM_DL_DB_RECORD_PUBLIC_KEY = CSSM_DB_RECORDTYPE_OPEN_GROUP_START + 5,
1244 CSSM_DL_DB_RECORD_PRIVATE_KEY = CSSM_DB_RECORDTYPE_OPEN_GROUP_START + 6,
1245 CSSM_DL_DB_RECORD_SYMMETRIC_KEY = CSSM_DB_RECORDTYPE_OPEN_GROUP_START + 7,
1246 CSSM_DL_DB_RECORD_ALL_KEYS = CSSM_DB_RECORDTYPE_OPEN_GROUP_START + 8
1247 }
1248
1249 enum
1250 {
1251 CSSM_DB_CERT_USE_TRUSTED = 0x00000001,
1252 CSSM_DB_CERT_USE_SYSTEM = 0x00000002,
1253 CSSM_DB_CERT_USE_OWNER = 0x00000004,
1254 CSSM_DB_CERT_USE_REVOKED = 0x00000008,
1255 CSSM_DB_CERT_USE_SIGNING = 0x00000010,
1256 CSSM_DB_CERT_USE_PRIVACY = 0x00000020
1257 }
1258
1259 enum
1260 {
1261 CSSM_DB_INDEX_UNIQUE = 0,
1262 CSSM_DB_INDEX_NONUNIQUE = 1
1263 }
1264
1265 enum
1266 {
1267 CSSM_DB_INDEX_ON_UNKNOWN = 0,
1268 CSSM_DB_INDEX_ON_ATTRIBUTE = 1,
1269 CSSM_DB_INDEX_ON_RECORD = 2
1270 }
1271
1272 enum
1273 {
1274 CSSM_DB_ACCESS_READ = 0x00001,
1275 CSSM_DB_ACCESS_WRITE = 0x00002,
1276 CSSM_DB_ACCESS_PRIVILEGED = 0x00004
1277 }
1278
1279 enum
1280 {
1281 CSSM_DB_MODIFY_ATTRIBUTE_NONE = 0,
1282 CSSM_DB_MODIFY_ATTRIBUTE_ADD = CSSM_DB_MODIFY_ATTRIBUTE_NONE + 1,
1283 CSSM_DB_MODIFY_ATTRIBUTE_DELETE = CSSM_DB_MODIFY_ATTRIBUTE_NONE + 2,
1284 CSSM_DB_MODIFY_ATTRIBUTE_REPLACE = CSSM_DB_MODIFY_ATTRIBUTE_NONE + 3
1285 }
1286
1287 enum
1288 {
1289 CSSM_DB_EQUAL = 0,
1290 CSSM_DB_NOT_EQUAL = 1,
1291 CSSM_DB_LESS_THAN = 2,
1292 CSSM_DB_GREATER_THAN = 3,
1293 CSSM_DB_CONTAINS = 4,
1294 CSSM_DB_CONTAINS_INITIAL_SUBSTRING = 5,
1295 CSSM_DB_CONTAINS_FINAL_SUBSTRING = 6
1296 }
1297
1298 enum
1299 {
1300 CSSM_DB_NONE = 0,
1301 CSSM_DB_AND = 1,
1302 CSSM_DB_OR = 2
1303 }
1304
1305 enum
1306 {
1307 CSSM_QUERY_TIMELIMIT_NONE = 0
1308 }
1309
1310 enum
1311 {
1312 CSSM_QUERY_SIZELIMIT_NONE = 0
1313 }
1314
1315 enum
1316 {
1317 CSSM_QUERY_RETURN_DATA = 0x01
1318 }
1319
1320 enum
1321 {
1322 CSSM_DL_UNKNOWN = 0,
1323 CSSM_DL_CUSTOM = 1,
1324 CSSM_DL_LDAP = 2,
1325 CSSM_DL_ODBC = 3,
1326 CSSM_DL_PKCS11 = 4,
1327 CSSM_DL_FFS = 5,
1328 CSSM_DL_MEMORY = 6,
1329 CSSM_DL_REMOTEDIR = 7
1330 }
1331
1332 enum
1333 {
1334 CSSM_DB_DATASTORES_UNKNOWN = 0xFFFFFFFF
1335 }
1336
1337 enum
1338 {
1339 CSSM_DB_TRANSACTIONAL_MODE = 0,
1340 CSSM_DB_FILESYSTEMSCAN_MODE = 1
1341 }
1342
1343 struct CSSM_DATA
1344 {
1345 uint Length;
1346 char* Data;
1347 }
1348
1349
1350 struct CSSM_GUID
1351 {
1352 uint Data1;
1353 ushort Data2;
1354 ushort Data3;
1355 char* Data4;
1356 }
1357
1358
1359 struct CSSM_VERSION
1360 {
1361 uint Major;
1362 uint Minor;
1363 }
1364
1365
1366 struct CSSM_SUBSERVICE_UID
1367 {
1368 CSSM_GUID Guid;
1369 CSSM_VERSION Version;
1370 uint SubserviceId;
1371 uint SubserviceType;
1372 }
1373
1374
1375 struct CSSM_NET_ADDRESS
1376 {
1377 uint AddressType;
1378 CSSM_DATA Address;
1379 }
1380
1381
1382 struct CSSM_CRYPTO_DATA
1383 {
1384 CSSM_DATA Param;
1385 CSSM_CALLBACK Callback;
1386 void* CallerCtx;
1387 }
1388
1389
1390 struct CSSM_LIST
1391 {
1392 uint ListType;
1393 CSSM_LIST_ELEMENT_PTR Head;
1394 CSSM_LIST_ELEMENT_PTR Tail;
1395 }
1396
1397
1398 struct CSSM_LIST_ELEMENT
1399 {
1400 CSSM_LIST_ELEMENT* NextElement;
1401 CSSM_WORDID_TYPE WordID;
1402 CSSM_LIST_ELEMENT_TYPE ElementType;
1403
1404 union
1405 {
1406 CSSM_LIST Sublist;
1407 CSSM_DATA Word;
1408 }
1409 }
1410
1411 struct CSSM_TUPLE
1412 {
1413 CSSM_LIST Issuer;
1414 int Subject;
1415 CSSM_BOOL Delegate;
1416 CSSM_LIST AuthorizationTag;
1417 CSSM_LIST ValidityPeriod;
1418 }
1419
1420
1421 struct CSSM_TUPLEGROUP
1422 {
1423 uint32 NumberOfTuples;
1424 CSSM_TUPLE_PTR Tuples;
1425 }
1426
1427
1428 struct CSSM_SAMPLE
1429 {
1430 CSSM_LIST TypedSample;
1431 CSSM_SUBSERVICE_UID* Verifier;
1432 }
1433
1434
1435 struct CSSM_SAMPLEGROUP
1436 {
1437 uint32 NumberOfSamples;
1438 CSSM_SAMPLE* Samples;
1439 }
1440
1441
1442 struct CSSM_MEMORY_FUNCS
1443 {
1444 CSSM_MALLOC malloc_func;
1445 CSSM_FREE free_func;
1446 CSSM_REALLOC realloc_func;
1447 CSSM_CALLOC calloc_func;
1448 void* AllocRef;
1449 }
1450
1451
1452 struct CSSM_ENCODED_CERT
1453 {
1454 uint CertType;
1455 CSSM_CERT_ENCODING CertEncoding;
1456 CSSM_DATA CertBlob;
1457 }
1458
1459
1460 struct CSSM_PARSED_CERT
1461 {
1462 uint CertType;
1463 CSSM_CERT_PARSE_FORMAT ParsedCertFormat;
1464 void* ParsedCert;
1465 }
1466
1467
1468 struct CSSM_CERT_PAIR
1469 {
1470 CSSM_ENCODED_CERT EncodedCert;
1471 CSSM_PARSED_CERT ParsedCert;
1472 }
1473
1474
1475 struct CSSM_CERTGROUP
1476 {
1477 CSSM_CERT_TYPE CertType;
1478 CSSM_CERT_ENCODING CertEncoding;
1479 uint NumCerts;
1480
1481 union
1482 {
1483 CSSM_DATA_PTR CertList;
1484 CSSM_ENCODED_CERT_PTR EncodedCertList;
1485 CSSM_PARSED_CERT_PTR ParsedCertList;
1486 CSSM_CERT_PAIR_PTR PairCertList;
1487 }
1488
1489 CSSM_CERTGROUP_TYPE CertGroupType;
1490 void* Reserved;
1491 }
1492
1493 struct CSSM_BASE_CERTS
1494 {
1495 CSSM_TP_HANDLE TPHandle;
1496 CSSM_CL_HANDLE CLHandle;
1497 byte[68] Certs;
1498 }
1499
1500
1501 struct CSSM_ACCESS_CREDENTIALS
1502 {
1503 CSSM_STRING EntryTag;
1504 CSSM_BASE_CERTS BaseCerts;
1505 CSSM_SAMPLEGROUP Samples;
1506 CSSM_CHALLENGE_CALLBACK Callback;
1507 uint CallerCtx;
1508 }
1509
1510
1511 struct CSSM_AUTHORIZATIONGROUP
1512 {
1513 uint32 NumberOfAuthTags;
1514 CSSM_ACL_AUTHORIZATION_TAG* AuthTags;
1515 }
1516
1517
1518 struct CSSM_ACL_VALIDITY_PERIOD
1519 {
1520 CSSM_DATA StartDate;
1521 CSSM_DATA EndDate;
1522 }
1523
1524
1525 struct CSSM_ACL_ENTRY_PROTOTYPE
1526 {
1527 CSSM_LIST TypedSubject;
1528 CSSM_BOOL Delegate;
1529 byte[68] Authorization;
1530 CSSM_ACL_VALIDITY_PERIOD TimeRange;
1531 CSSM_STRING EntryTag;
1532 }
1533
1534
1535 struct CSSM_ACL_OWNER_PROTOTYPE
1536 {
1537 CSSM_LIST TypedSubject;
1538 CSSM_BOOL Delegate;
1539 }
1540
1541
1542 struct CSSM_ACL_ENTRY_INPUT
1543 {
1544 CSSM_ACL_ENTRY_PROTOTYPE Prototype;
1545 CSSM_ACL_SUBJECT_CALLBACK Callback;
1546 void* CallerContext;
1547 }
1548
1549
1550 struct CSSM_RESOURCE_CONTROL_CONTEXT
1551 {
1552 CSSM_ACCESS_CREDENTIALS_PTR AccessCred;
1553 CSSM_ACL_ENTRY_INPUT InitialAclEntry;
1554 }
1555
1556
1557 struct CSSM_ACL_ENTRY_INFO
1558 {
1559 CSSM_ACL_ENTRY_PROTOTYPE EntryPublicInfo;
1560 uint EntryHandle;
1561 }
1562
1563
1564 struct CSSM_ACL_EDIT
1565 {
1566 CSSM_ACL_EDIT_MODE EditMode;
1567 CSSM_ACL_HANDLE OldEntryHandle;
1568 byte[68] NewEntry;
1569 }
1570
1571
1572 struct CSSM_FUNC_NAME_ADDR
1573 {
1574 CSSM_STRING Name;
1575 char* Address;
1576 }
1577
1578
1579 struct CSSM_DATE
1580 {
1581 char* Year;
1582 uint8* Month;
1583 uint Day;
1584 }
1585
1586
1587 struct CSSM_RANGE
1588 {
1589 uint32 Min;
1590 uint Max;
1591 }
1592
1593
1594 struct CSSM_QUERY_SIZE_DATA
1595 {
1596 uint32 SizeInputBlock;
1597 uint SizeOutputBlock;
1598 }
1599
1600
1601 struct CSSM_KEY_SIZE
1602 {
1603 uint32 LogicalKeySizeInBits;
1604 uint EffectiveKeySizeInBits;
1605 }
1606
1607
1608 struct CSSM_KEYHEADER
1609 {
1610 uint HeaderVersion;
1611 uint CspId;
1612 uint BlobType;
1613 uint Format;
1614 uint AlgorithmId;
1615 uint KeyClass;
1616 uint LogicalKeySizeInBits;
1617 CSSM_KEYATTR_FLAGS KeyAttr;
1618 CSSM_KEYUSE KeyUsage;
1619 uint StartDate;
1620 uint EndDate;
1621 uint WrapAlgorithmId;
1622 CSSM_ENCRYPT_MODE WrapMode;
1623 uint32 Reserved;
1624 }
1625
1626
1627 struct CSSM_KEY
1628 {
1629 CSSM_KEYHEADER KeyHeader;
1630 int KeyData;
1631 }
1632
1633
1634 struct CSSM_DL_DB_HANDLE
1635 {
1636 CSSM_DL_HANDLE DLHandle;
1637 CSSM_DB_HANDLE DBHandle;
1638 }
1639
1640
1641 struct CSSM_CONTEXT_ATTRIBUTE
1642 {
1643 uint Attribute;
1644 }
1645
1646
1647 struct CSSM_CONTEXT
1648 {
1649 CSSM_CONTEXT_TYPE ContextType;
1650 int AlgorithmType;
1651 int NumberOfAttributes;
1652 uint ContextAttributes;
1653 uint CSPHandle;
1654 uint Privileged;
1655 uint32 EncryptionProhibited;
1656 uint WorkFactor;
1657 uint32 Reserved;
1658 }
1659
1660
1661 struct CSSM_PKCS1_OAEP_PARAMS
1662 {
1663 uint32 HashAlgorithm;
1664 uint HashParams;
1665 CSSM_PKCS_OAEP_MGF MGF;
1666 CSSM_DATA MGFParams;
1667 int PSource;
1668 uint PSourceParams;
1669 }
1670
1671
1672 struct CSSM_CSP_OPERATIONAL_STATISTICS
1673 {
1674 uint UserAuthenticated;
1675 uint DeviceFlags;
1676 uint TokenMaxSessionCount;
1677 uint TokenOpenedSessionCount;
1678 uint TokenMaxRWSessionCount;
1679 uint TokenOpenedRWSessionCount;
1680 uint TokenTotalPublicMem;
1681 uint32 TokenFreePublicMem;
1682 uint32 TokenTotalPrivateMem;
1683 uint32 TokenFreePrivateMem;
1684 }
1685
1686
1687 struct CSSM_PKCS5_PBKDF1_PARAMS
1688 {
1689 CSSM_DATA Passphrase;
1690 uint InitVector;
1691 }
1692
1693
1694 struct CSSM_PKCS5_PBKDF2_PARAMS
1695 {
1696 CSSM_DATA Passphrase;
1697 CSSM_PKCS5_PBKDF2_PRF PseudoRandomFunction;
1698 }
1699
1700
1701 struct CSSM_KEA_DERIVE_PARAMS
1702 {
1703 CSSM_DATA Rb;
1704 CSSM_DATA Yb;
1705 }
1706
1707
1708 struct CSSM_TP_AUTHORITY_ID
1709 {
1710 CSSM_DATA* AuthorityCert;
1711 CSSM_NET_ADDRESS_PTR AuthorityLocation;
1712 }
1713
1714
1715 struct CSSM_FIELD
1716 {
1717 uint FieldOid;
1718 CSSM_DATA FieldValue;
1719 }
1720
1721
1722 struct CSSM_TP_POLICYINFO
1723 {
1724 uint32 NumberOfPolicyIds;
1725 uint PolicyIds;
1726 void* PolicyControl;
1727 }
1728
1729
1730 struct CSSM_DL_DB_LIST
1731 {
1732 uint32 NumHandles;
1733 char* DLDBHandle;
1734 }
1735
1736
1737 struct CSSM_TP_CALLERAUTH_CONTEXT
1738 {
1739 CSSM_TP_POLICYINFO Policy;
1740 uint VerifyTime;
1741 CSSM_TP_STOP_ON VerificationAbortOn;
1742 CSSM_TP_VERIFICATION_RESULTS_CALLBACK CallbackWithVerifiedCert;
1743 uint32 NumberOfAnchorCerts;
1744 CSSM_DATA_PTR AnchorCerts;
1745 uint DBList;
1746 uint CallerCredentials;
1747 }
1748
1749
1750 struct CSSM_ENCODED_CRL
1751 {
1752 CSSM_CRL_TYPE CrlType;
1753 uint CrlEncoding;
1754 uint CrlBlob;
1755 }
1756
1757
1758 struct CSSM_PARSED_CRL
1759 {
1760 CSSM_CRL_TYPE CrlType;
1761 CSSM_CRL_PARSE_FORMAT ParsedCrlFormat;
1762 void* ParsedCrl;
1763 }
1764
1765
1766 struct CSSM_CRL_PAIR
1767 {
1768 uint EncodedCrl;
1769 CSSM_PARSED_CRL ParsedCrl;
1770 }
1771
1772
1773 struct CSSM_CRLGROUP
1774 {
1775 CSSM_CRL_TYPE CrlType;
1776 CSSM_CRL_ENCODING CrlEncoding;
1777 uint NumberOfCrls;
1778
1779 union
1780 {
1781 CSSM_DATA_PTR CrlList;
1782 CSSM_ENCODED_CRL_PTR EncodedCrlList;
1783 CSSM_PARSED_CRL_PTR ParsedCrlList;
1784 CSSM_CRL_PAIR_PTR PairCrlList;
1785 }
1786
1787 CSSM_CRLGROUP_TYPE CrlGroupType;
1788 }
1789
1790 struct CSSM_FIELDGROUP
1791 {
1792 int NumberOfFields;
1793 CSSM_FIELD_PTR Fields;
1794 }
1795
1796
1797 struct CSSM_EVIDENCE
1798 {
1799 CSSM_EVIDENCE_FORM EvidenceForm;
1800 void* Evidence;
1801 }
1802
1803
1804 struct CSSM_TP_VERIFY_CONTEXT
1805 {
1806 CSSM_TP_ACTION Action;
1807 uint ActionData;
1808 CSSM_CRLGROUP Crls;
1809 CSSM_TP_CALLERAUTH_CONTEXT_PTR Cred;
1810 }
1811
1812
1813 struct CSSM_TP_VERIFY_CONTEXT_RESULT
1814 {
1815 uint32 NumberOfEvidences;
1816 CSSM_EVIDENCE_PTR Evidence;
1817 }
1818
1819
1820 struct CSSM_TP_REQUEST_SET
1821 {
1822 uint32 NumberOfRequests;
1823 void* Requests;
1824 }
1825
1826
1827 struct CSSM_TP_RESULT_SET
1828 {
1829 uint32 NumberOfResults;
1830 void* Results;
1831 }
1832
1833
1834 struct CSSM_TP_CONFIRM_RESPONSE
1835 {
1836 int NumberOfResponses;
1837 uint Responses;
1838 }
1839
1840
1841 struct CSSM_TP_CERTISSUE_INPUT
1842 {
1843 uint CSPSubserviceUid;
1844 uint CLHandle;
1845 uint32 NumberOfTemplateFields;
1846 CSSM_FIELD_PTR SubjectCertFields;
1847 CSSM_TP_SERVICES MoreServiceRequests;
1848 uint NumberOfServiceControls;
1849 CSSM_FIELD_PTR ServiceControls;
1850 uint UserCredentials;
1851 }
1852
1853
1854 struct CSSM_TP_CERTISSUE_OUTPUT
1855 {
1856 uint IssueStatus;
1857 uint CertGroup;
1858 int PerformedServiceRequests;
1859 }
1860
1861
1862 struct CSSM_TP_CERTCHANGE_INPUT
1863 {
1864 CSSM_TP_CERTCHANGE_ACTION Action;
1865 char* Reason;
1866 CSSM_CL_HANDLE CLHandle;
1867 CSSM_DATA_PTR Cert;
1868 uint ChangeInfo;
1869 CSSM_TIMESTRING StartTime;
1870 CSSM_ACCESS_CREDENTIALS_PTR CallerCredentials;
1871 }
1872
1873
1874 struct CSSM_TP_CERTCHANGE_OUTPUT
1875 {
1876 CSSM_TP_CERTCHANGE_STATUS ActionStatus;
1877 CSSM_FIELD RevokeInfo;
1878 }
1879
1880
1881 struct CSSM_TP_CERTVERIFY_INPUT
1882 {
1883 uint CLHandle;
1884 uint Cert;
1885 CSSM_TP_VERIFY_CONTEXT_PTR VerifyContext;
1886 }
1887
1888
1889 struct CSSM_TP_CERTVERIFY_OUTPUT
1890 {
1891 int VerifyStatus;
1892 uint NumberOfEvidence;
1893 CSSM_EVIDENCE_PTR Evidence;
1894 }
1895
1896
1897 struct CSSM_TP_CERTNOTARIZE_INPUT
1898 {
1899 uint CLHandle;
1900 uint NumberOfFields;
1901 uint MoreFields;
1902 CSSM_FIELD_PTR SignScope;
1903 uint32 ScopeSize;
1904 CSSM_TP_SERVICES MoreServiceRequests;
1905 uint NumberOfServiceControls;
1906 CSSM_FIELD_PTR ServiceControls;
1907 uint UserCredentials;
1908 }
1909
1910
1911 struct CSSM_TP_CERTNOTARIZE_OUTPUT
1912 {
1913 int NotarizeStatus;
1914 uint NotarizedCertGroup;
1915 CSSM_TP_SERVICES PerformedServiceRequests;
1916 }
1917
1918
1919 struct CSSM_TP_CERTRECLAIM_INPUT
1920 {
1921 CSSM_CL_HANDLE CLHandle;
1922 uint NumberOfSelectionFields;
1923 CSSM_FIELD_PTR SelectionFields;
1924 ulong UserCredentials;
1925 }
1926
1927
1928 struct CSSM_TP_CERTRECLAIM_OUTPUT
1929 {
1930 int ReclaimStatus;
1931 uint ReclaimedCertGroup;
1932 char* KeyCacheHandle;
1933 }
1934
1935
1936 struct CSSM_TP_CRLISSUE_INPUT
1937 {
1938 CSSM_CL_HANDLE CLHandle;
1939 uint32 CrlIdentifier;
1940 uint CrlThisTime;
1941 CSSM_FIELD_PTR PolicyIdentifier;
1942 char* CallerCredentials;
1943 }
1944
1945
1946 struct CSSM_TP_CRLISSUE_OUTPUT
1947 {
1948 uint IssueStatus;
1949 uint Crl;
1950 CSSM_TIMESTRING CrlNextTime;
1951 }
1952
1953
1954 struct CSSM_CERT_BUNDLE_HEADER
1955 {
1956 CSSM_CERT_BUNDLE_TYPE BundleType;
1957 CSSM_CERT_BUNDLE_ENCODING BundleEncoding;
1958 }
1959
1960
1961 struct CSSM_CERT_BUNDLE
1962 {
1963 CSSM_CERT_BUNDLE_HEADER BundleHeader;
1964 CSSM_DATA Bundle;
1965 }
1966
1967
1968 struct CSSM_DB_ATTRIBUTE_INFO
1969 {
1970 CSSM_DB_ATTRIBUTE_NAME_FORMAT AttributeNameFormat;
1971
1972 union cssm_db_attribute_label
1973 {
1974 char* AttributeName;
1975 CSSM_OID AttributeOID;
1976 uint AttributeID;
1977 }
1978
1979 cssm_db_attribute_label Label;
1980 CSSM_DB_ATTRIBUTE_FORMAT AttributeFormat;
1981 }
1982
1983 struct CSSM_DB_ATTRIBUTE_DATA
1984 {
1985 uint Info;
1986 uint32 NumberOfValues;
1987 CSSM_DATA_PTR Value;
1988 }
1989
1990
1991 struct CSSM_DB_RECORD_ATTRIBUTE_INFO
1992 {
1993 uint DataRecordType;
1994 uint NumberOfAttributes;
1995 CSSM_DB_ATTRIBUTE_INFO_PTR AttributeInfo;
1996 }
1997
1998
1999 struct CSSM_DB_RECORD_ATTRIBUTE_DATA
2000 {
2001 uint DataRecordType;
2002 uint32 SemanticInformation;
2003 uint32 NumberOfAttributes;
2004 uint AttributeData;
2005 }
2006
2007
2008 struct CSSM_DB_PARSING_MODULE_INFO
2009 {
2010 CSSM_DB_RECORDTYPE RecordType;
2011 CSSM_SUBSERVICE_UID ModuleSubserviceUid;
2012 }
2013
2014
2015 struct CSSM_DB_INDEX_INFO
2016 {
2017 CSSM_DB_INDEX_TYPE IndexType;
2018 CSSM_DB_INDEXED_DATA_LOCATION IndexedDataLocation;
2019 uint Info;
2020 }
2021
2022
2023 struct CSSM_DB_UNIQUE_RECORD
2024 {
2025 CSSM_DB_INDEX_INFO RecordLocator;
2026 CSSM_DATA RecordIdentifier;
2027 }
2028
2029
2030 struct CSSM_DB_RECORD_INDEX_INFO
2031 {
2032 CSSM_DB_RECORDTYPE DataRecordType;
2033 uint32 NumberOfIndexes;
2034 CSSM_DB_INDEX_INFO_PTR IndexInfo;
2035 }
2036
2037
2038 struct CSSM_DBINFO
2039 {
2040 char* NumberOfRecordTypes;
2041 CSSM_DB_PARSING_MODULE_INFO_PTR DefaultParsingModules;
2042 CSSM_DB_RECORD_ATTRIBUTE_INFO_PTR RecordAttributeNames;
2043 uint RecordIndexes;
2044 CSSM_BOOL IsLocal;
2045 char* AccessPath;
2046 uint Reserved;
2047 }
2048
2049
2050 struct CSSM_SELECTION_PREDICATE
2051 {
2052 CSSM_DB_OPERATOR DbOperator;
2053 uint Attribute;
2054 }
2055
2056
2057 struct CSSM_QUERY_LIMITS
2058 {
2059 uint TimeLimit;
2060 uint32 SizeLimit;
2061 }
2062
2063
2064 struct CSSM_QUERY
2065 {
2066 uint RecordType;
2067 CSSM_DB_CONJUNCTIVE Conjunctive;
2068 uint NumSelectionPredicates;
2069 CSSM_SELECTION_PREDICATE_PTR SelectionPredicate;
2070 uint QueryLimits;
2071 CSSM_QUERY_FLAGS QueryFlags;
2072 }
2073
2074
2075 struct CSSM_DL_PKCS11_ATTRIBUTE
2076 {
2077 uint DeviceAccessFlags;
2078 }
2079
2080
2081 struct CSSM_NAME_LIST
2082 {
2083 uint32 NumStrings;
2084 uint String;
2085 }
2086
2087
2088 struct CSSM_DB_SCHEMA_ATTRIBUTE_INFO
2089 {
2090 uint AttributeId;
2091 uint AttributeName;
2092 uint AttributeNameID;
2093 uint DataType;
2094 }
2095
2096
2097 struct CSSM_DB_SCHEMA_INDEX_INFO
2098 {
2099 uint32 AttributeId;
2100 uint32 IndexId;
2101 CSSM_DB_INDEX_TYPE IndexType;
2102 CSSM_DB_INDEXED_DATA_LOCATION IndexedDataLocation;
2103 }
2104