PageRenderTime 68ms CodeModel.GetById 28ms RepoModel.GetById 1ms app.codeStats 0ms

/packages/univint/src/cssmtype.pas

https://github.com/slibre/freepascal
Pascal | 2640 lines | 1937 code | 232 blank | 471 comment | 0 complexity | 4c5d8aa7734f8921e2e28c076783c682 MD5 | raw file
Possible License(s): LGPL-2.0, LGPL-2.1, LGPL-3.0
  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. * cssmtype.h -- Common Security Services Manager Common Data Types
  24. }
  25. { Pascal Translation Updated: Jonas Maebe, <jonas@freepascal.org>, September 2010 }
  26. { Pascal Translation Update: Jonas Maebe <jonas@freepascal.org>, October 2012 }
  27. {
  28. Modified for use with Free Pascal
  29. Version 308
  30. Please report any bugs to <gpc@microbizz.nl>
  31. }
  32. {$ifc not defined MACOSALLINCLUDE or not MACOSALLINCLUDE}
  33. {$mode macpas}
  34. {$packenum 1}
  35. {$macro on}
  36. {$inline on}
  37. {$calling mwpascal}
  38. unit cssmtype;
  39. interface
  40. {$setc UNIVERSAL_INTERFACES_VERSION := $0400}
  41. {$setc GAP_INTERFACES_VERSION := $0308}
  42. {$ifc not defined USE_CFSTR_CONSTANT_MACROS}
  43. {$setc USE_CFSTR_CONSTANT_MACROS := TRUE}
  44. {$endc}
  45. {$ifc defined CPUPOWERPC and defined CPUI386}
  46. {$error Conflicting initial definitions for CPUPOWERPC and CPUI386}
  47. {$endc}
  48. {$ifc defined FPC_BIG_ENDIAN and defined FPC_LITTLE_ENDIAN}
  49. {$error Conflicting initial definitions for FPC_BIG_ENDIAN and FPC_LITTLE_ENDIAN}
  50. {$endc}
  51. {$ifc not defined __ppc__ and defined CPUPOWERPC32}
  52. {$setc __ppc__ := 1}
  53. {$elsec}
  54. {$setc __ppc__ := 0}
  55. {$endc}
  56. {$ifc not defined __ppc64__ and defined CPUPOWERPC64}
  57. {$setc __ppc64__ := 1}
  58. {$elsec}
  59. {$setc __ppc64__ := 0}
  60. {$endc}
  61. {$ifc not defined __i386__ and defined CPUI386}
  62. {$setc __i386__ := 1}
  63. {$elsec}
  64. {$setc __i386__ := 0}
  65. {$endc}
  66. {$ifc not defined __x86_64__ and defined CPUX86_64}
  67. {$setc __x86_64__ := 1}
  68. {$elsec}
  69. {$setc __x86_64__ := 0}
  70. {$endc}
  71. {$ifc not defined __arm__ and defined CPUARM}
  72. {$setc __arm__ := 1}
  73. {$elsec}
  74. {$setc __arm__ := 0}
  75. {$endc}
  76. {$ifc defined cpu64}
  77. {$setc __LP64__ := 1}
  78. {$elsec}
  79. {$setc __LP64__ := 0}
  80. {$endc}
  81. {$ifc defined __ppc__ and __ppc__ and defined __i386__ and __i386__}
  82. {$error Conflicting definitions for __ppc__ and __i386__}
  83. {$endc}
  84. {$ifc defined __ppc__ and __ppc__}
  85. {$setc TARGET_CPU_PPC := TRUE}
  86. {$setc TARGET_CPU_PPC64 := FALSE}
  87. {$setc TARGET_CPU_X86 := FALSE}
  88. {$setc TARGET_CPU_X86_64 := FALSE}
  89. {$setc TARGET_CPU_ARM := FALSE}
  90. {$setc TARGET_OS_MAC := TRUE}
  91. {$setc TARGET_OS_IPHONE := FALSE}
  92. {$setc TARGET_IPHONE_SIMULATOR := FALSE}
  93. {$setc TARGET_OS_EMBEDDED := FALSE}
  94. {$elifc defined __ppc64__ and __ppc64__}
  95. {$setc TARGET_CPU_PPC := FALSE}
  96. {$setc TARGET_CPU_PPC64 := TRUE}
  97. {$setc TARGET_CPU_X86 := FALSE}
  98. {$setc TARGET_CPU_X86_64 := FALSE}
  99. {$setc TARGET_CPU_ARM := FALSE}
  100. {$setc TARGET_OS_MAC := TRUE}
  101. {$setc TARGET_OS_IPHONE := FALSE}
  102. {$setc TARGET_IPHONE_SIMULATOR := FALSE}
  103. {$setc TARGET_OS_EMBEDDED := FALSE}
  104. {$elifc defined __i386__ and __i386__}
  105. {$setc TARGET_CPU_PPC := FALSE}
  106. {$setc TARGET_CPU_PPC64 := FALSE}
  107. {$setc TARGET_CPU_X86 := TRUE}
  108. {$setc TARGET_CPU_X86_64 := FALSE}
  109. {$setc TARGET_CPU_ARM := FALSE}
  110. {$ifc defined(iphonesim)}
  111. {$setc TARGET_OS_MAC := FALSE}
  112. {$setc TARGET_OS_IPHONE := TRUE}
  113. {$setc TARGET_IPHONE_SIMULATOR := TRUE}
  114. {$elsec}
  115. {$setc TARGET_OS_MAC := TRUE}
  116. {$setc TARGET_OS_IPHONE := FALSE}
  117. {$setc TARGET_IPHONE_SIMULATOR := FALSE}
  118. {$endc}
  119. {$setc TARGET_OS_EMBEDDED := FALSE}
  120. {$elifc defined __x86_64__ and __x86_64__}
  121. {$setc TARGET_CPU_PPC := FALSE}
  122. {$setc TARGET_CPU_PPC64 := FALSE}
  123. {$setc TARGET_CPU_X86 := FALSE}
  124. {$setc TARGET_CPU_X86_64 := TRUE}
  125. {$setc TARGET_CPU_ARM := FALSE}
  126. {$setc TARGET_OS_MAC := TRUE}
  127. {$setc TARGET_OS_IPHONE := FALSE}
  128. {$setc TARGET_IPHONE_SIMULATOR := FALSE}
  129. {$setc TARGET_OS_EMBEDDED := FALSE}
  130. {$elifc defined __arm__ and __arm__}
  131. {$setc TARGET_CPU_PPC := FALSE}
  132. {$setc TARGET_CPU_PPC64 := FALSE}
  133. {$setc TARGET_CPU_X86 := FALSE}
  134. {$setc TARGET_CPU_X86_64 := FALSE}
  135. {$setc TARGET_CPU_ARM := TRUE}
  136. { will require compiler define when/if other Apple devices with ARM cpus ship }
  137. {$setc TARGET_OS_MAC := FALSE}
  138. {$setc TARGET_OS_IPHONE := TRUE}
  139. {$setc TARGET_IPHONE_SIMULATOR := FALSE}
  140. {$setc TARGET_OS_EMBEDDED := TRUE}
  141. {$elsec}
  142. {$error __ppc__ nor __ppc64__ nor __i386__ nor __x86_64__ nor __arm__ is defined.}
  143. {$endc}
  144. {$ifc defined __LP64__ and __LP64__ }
  145. {$setc TARGET_CPU_64 := TRUE}
  146. {$elsec}
  147. {$setc TARGET_CPU_64 := FALSE}
  148. {$endc}
  149. {$ifc defined FPC_BIG_ENDIAN}
  150. {$setc TARGET_RT_BIG_ENDIAN := TRUE}
  151. {$setc TARGET_RT_LITTLE_ENDIAN := FALSE}
  152. {$elifc defined FPC_LITTLE_ENDIAN}
  153. {$setc TARGET_RT_BIG_ENDIAN := FALSE}
  154. {$setc TARGET_RT_LITTLE_ENDIAN := TRUE}
  155. {$elsec}
  156. {$error Neither FPC_BIG_ENDIAN nor FPC_LITTLE_ENDIAN are defined.}
  157. {$endc}
  158. {$setc ACCESSOR_CALLS_ARE_FUNCTIONS := TRUE}
  159. {$setc CALL_NOT_IN_CARBON := FALSE}
  160. {$setc OLDROUTINENAMES := FALSE}
  161. {$setc OPAQUE_TOOLBOX_STRUCTS := TRUE}
  162. {$setc OPAQUE_UPP_TYPES := TRUE}
  163. {$setc OTCARBONAPPLICATION := TRUE}
  164. {$setc OTKERNEL := FALSE}
  165. {$setc PM_USE_SESSION_APIS := TRUE}
  166. {$setc TARGET_API_MAC_CARBON := TRUE}
  167. {$setc TARGET_API_MAC_OS8 := FALSE}
  168. {$setc TARGET_API_MAC_OSX := TRUE}
  169. {$setc TARGET_CARBON := TRUE}
  170. {$setc TARGET_CPU_68K := FALSE}
  171. {$setc TARGET_CPU_MIPS := FALSE}
  172. {$setc TARGET_CPU_SPARC := FALSE}
  173. {$setc TARGET_OS_UNIX := FALSE}
  174. {$setc TARGET_OS_WIN32 := FALSE}
  175. {$setc TARGET_RT_MAC_68881 := FALSE}
  176. {$setc TARGET_RT_MAC_CFM := FALSE}
  177. {$setc TARGET_RT_MAC_MACHO := TRUE}
  178. {$setc TYPED_FUNCTION_POINTERS := TRUE}
  179. {$setc TYPE_BOOL := FALSE}
  180. {$setc TYPE_EXTENDED := FALSE}
  181. {$setc TYPE_LONGLONG := TRUE}
  182. uses MacTypes,cssmconfig;
  183. {$endc} {not MACOSALLINCLUDE}
  184. {$ifc TARGET_OS_MAC}
  185. {$packrecords c}
  186. { Handle types. }
  187. type
  188. CSSM_HANDLE = CSSM_INTPTR;
  189. CSSM_HANDLE_PTR = ^CSSM_INTPTR;
  190. CSSM_HANDLEPtr = ^CSSM_INTPTR;
  191. type
  192. CSSM_LONG_HANDLE = UInt64;
  193. CSSM_LONG_HANDLE_PTR = ^UInt64;
  194. CSSM_LONG_HANDLEPtr = ^UInt64;
  195. type
  196. CSSM_MODULE_HANDLE = CSSM_HANDLE;
  197. CSSM_MODULE_HANDLE_PTR = ^CSSM_HANDLE;
  198. CSSM_MODULE_HANDLEPtr = ^CSSM_HANDLE;
  199. type
  200. CSSM_CC_HANDLE = CSSM_LONG_HANDLE; { Cryptographic Context Handle }
  201. type
  202. CSSM_CSP_HANDLE = CSSM_MODULE_HANDLE; { Cryptographic Service Provider Handle }
  203. type
  204. CSSM_TP_HANDLE = CSSM_MODULE_HANDLE; { Trust Policy Handle }
  205. type
  206. CSSM_AC_HANDLE = CSSM_MODULE_HANDLE; { Authorization Computation Handle }
  207. type
  208. CSSM_CL_HANDLE = CSSM_MODULE_HANDLE; { Certificate Library Handle }
  209. type
  210. CSSM_DL_HANDLE = CSSM_MODULE_HANDLE; { Data Storage Library Handle }
  211. type
  212. CSSM_DB_HANDLE = CSSM_MODULE_HANDLE; { Data Storage Database Handle }
  213. { invalid or NULL value for any CSSM_HANDLE type }
  214. const
  215. CSSM_INVALID_HANDLE = 0;
  216. { Data Types for Core Services }
  217. type
  218. CSSM_BOOL = SInt32;
  219. const
  220. CSSM_FALSE = 0;
  221. CSSM_TRUE = 1;
  222. { The standard declares this as uint32 but we changed it to sint32 to match OSStatus. }
  223. type
  224. CSSM_RETURNPtr = ^CSSM_RETURN;
  225. CSSM_RETURN = SInt32;
  226. const
  227. CSSM_OK = 0;
  228. const
  229. CSSM_MODULE_STRING_SIZE = 64;
  230. type
  231. CSSM_STRING = array [0..CSSM_MODULE_STRING_SIZE + 4-1] of char;
  232. type
  233. CSSM_DATA_PTR = ^cssm_data;
  234. CSSM_DATAPtr = ^cssm_data;
  235. CSSM_DATAArrayPtr = ^cssm_dataPtr;
  236. cssm_data = record
  237. Length: CSSM_SIZE; { in bytes }
  238. Data: UInt8Ptr;
  239. end;
  240. (* DEPRECATED_IN_MAC_OS_X_VERSION_10_7_AND_LATER *)
  241. type
  242. CSSM_GUID_PTR = ^cssm_guid;
  243. CSSM_GUIDPtr = ^cssm_guid;
  244. cssm_guid = record
  245. Data1: UInt32;
  246. Data2: UInt16;
  247. Data3: UInt16;
  248. Data4: array [0..8-1] of UInt8;
  249. end;
  250. (* DEPRECATED_IN_MAC_OS_X_VERSION_10_7_AND_LATER *)
  251. type
  252. CSSM_BITMASK = UInt32;
  253. CSSM_KEY_HIERARCHY = CSSM_BITMASK;
  254. const
  255. CSSM_KEY_HIERARCHY_NONE = 0;
  256. CSSM_KEY_HIERARCHY_INTEG = 1;
  257. CSSM_KEY_HIERARCHY_EXPORT = 2;
  258. type
  259. CSSM_PVC_MODE = CSSM_BITMASK;
  260. const
  261. CSSM_PVC_NONE = 0;
  262. CSSM_PVC_APP = 1;
  263. CSSM_PVC_SP = 2;
  264. type
  265. CSSM_PRIVILEGE_SCOPE = UInt32;
  266. const
  267. CSSM_PRIVILEGE_SCOPE_NONE = 0;
  268. CSSM_PRIVILEGE_SCOPE_PROCESS = 1;
  269. CSSM_PRIVILEGE_SCOPE_THREAD = 2;
  270. type
  271. CSSM_VERSION_PTR = ^cssm_version;
  272. CSSM_VERSIONPtr = ^cssm_version;
  273. cssm_version = record
  274. Major: UInt32;
  275. Minor: UInt32;
  276. end;
  277. (* DEPRECATED_IN_MAC_OS_X_VERSION_10_7_AND_LATER *)
  278. type
  279. CSSM_SERVICE_MASK = UInt32;
  280. const
  281. CSSM_SERVICE_CSSM = $1;
  282. CSSM_SERVICE_CSP = $2;
  283. CSSM_SERVICE_DL = $4;
  284. CSSM_SERVICE_CL = $8;
  285. CSSM_SERVICE_TP = $10;
  286. CSSM_SERVICE_AC = $20;
  287. CSSM_SERVICE_KR = $40;
  288. type
  289. CSSM_SERVICE_TYPE = CSSM_SERVICE_MASK;
  290. type
  291. CSSM_SUBSERVICE_UID_PTR = ^cssm_subservice_uid;
  292. CSSM_SUBSERVICE_UIDPtr = ^cssm_subservice_uid;
  293. cssm_subservice_uid = record
  294. Guid: CSSM_GUID;
  295. Version: CSSM_VERSION;
  296. SubserviceId: UInt32;
  297. SubserviceType: CSSM_SERVICE_TYPE;
  298. end;
  299. (* DEPRECATED_IN_MAC_OS_X_VERSION_10_7_AND_LATER *)
  300. type
  301. CSSM_MODULE_EVENT = UInt32;
  302. CSSM_MODULE_EVENT_PTR = ^UInt32;
  303. CSSM_MODULE_EVENTPtr = ^UInt32;
  304. const
  305. CSSM_NOTIFY_INSERT = 1;
  306. CSSM_NOTIFY_REMOVE = 2;
  307. CSSM_NOTIFY_FAULT = 3;
  308. type
  309. CSSM_API_ModuleEventHandler = function( const (*var*) ModuleGuid: CSSM_GUID; AppNotifyCallbackCtx: UnivPtr; SubserviceId: UInt32; ServiceType: CSSM_SERVICE_TYPE; EventType: CSSM_MODULE_EVENT ): CSSM_RETURN;
  310. type
  311. CSSM_ATTACH_FLAGS = UInt32;
  312. const
  313. CSSM_ATTACH_READ_ONLY = $00000001;
  314. { Non-export privilege range: (0x00000000 - 0x7FFFFFFF) }
  315. { Vendor specific range: (0x80000000 - 0xFFFFFFFF) }
  316. type
  317. CSSM_PRIVILEGE = UInt64;
  318. CSSM_USEE_TAG = CSSM_PRIVILEGE;
  319. const
  320. CSSM_USEE_LAST = $FF;
  321. CSSM_USEE_NONE = 0;
  322. CSSM_USEE_DOMESTIC = 1;
  323. CSSM_USEE_FINANCIAL = 2;
  324. CSSM_USEE_KRLE = 3;
  325. CSSM_USEE_KRENT = 4;
  326. CSSM_USEE_SSL = 5;
  327. CSSM_USEE_AUTHENTICATION = 6;
  328. CSSM_USEE_KEYEXCH = 7;
  329. CSSM_USEE_MEDICAL = 8;
  330. CSSM_USEE_INSURANCE = 9;
  331. CSSM_USEE_WEAK = 10;
  332. type
  333. CSSM_NET_ADDRESS_TYPE = UInt32;
  334. const
  335. CSSM_ADDR_NONE = 0;
  336. CSSM_ADDR_CUSTOM = 1;
  337. CSSM_ADDR_URL = 2; { char* }
  338. CSSM_ADDR_SOCKADDR = 3;
  339. CSSM_ADDR_NAME = 4; { char* - qualified by access method }
  340. type
  341. CSSM_NET_ADDRESS_PTR = ^cssm_net_address;
  342. CSSM_NET_ADDRESSPtr = ^cssm_net_address;
  343. cssm_net_address = record
  344. AddressType: CSSM_NET_ADDRESS_TYPE;
  345. Address: CSSM_DATA;
  346. end;
  347. (* DEPRECATED_IN_MAC_OS_X_VERSION_10_7_AND_LATER *)
  348. type
  349. CSSM_NET_PROTOCOL = UInt32;
  350. const
  351. CSSM_NET_PROTO_NONE = 0; { local }
  352. CSSM_NET_PROTO_CUSTOM = 1; { proprietary implementation }
  353. CSSM_NET_PROTO_UNSPECIFIED = 2; { implementation default }
  354. CSSM_NET_PROTO_LDAP = 3; { light weight directory access protocol }
  355. CSSM_NET_PROTO_LDAPS = 4; { ldap/ssl where SSL initiates the connection }
  356. CSSM_NET_PROTO_LDAPNS = 5; { ldap where ldap negotiates an SSL session }
  357. CSSM_NET_PROTO_X500DAP = 6; { x.500 Directory access protocol }
  358. CSSM_NET_PROTO_FTP = 7; { ftp for cert/crl fetch }
  359. CSSM_NET_PROTO_FTPS = 8; { ftp/ssl/tls where SSL/TLS initiates the connection }
  360. CSSM_NET_PROTO_OCSP = 9; { online certificate status protocol }
  361. CSSM_NET_PROTO_CMP = 10; { the cert request protocol in PKIX3 }
  362. CSSM_NET_PROTO_CMPS = 11; { The ssl/tls derivative of CMP }
  363. type
  364. CSSM_CALLBACK = function( OutData: CSSM_DATA_PTR; CallerCtx: UnivPtr ): CSSM_RETURN;
  365. type
  366. CSSM_CRYPTO_DATA_PTR = ^cssm_crypto_data;
  367. CSSM_CRYPTO_DATAPtr = ^cssm_crypto_data;
  368. cssm_crypto_data = record
  369. Param: CSSM_DATA;
  370. Callback: CSSM_CALLBACK;
  371. CallerCtx: UnivPtr;
  372. end;
  373. (* DEPRECATED_IN_MAC_OS_X_VERSION_10_7_AND_LATER *)
  374. type
  375. CSSM_WORDID_TYPE = SInt32;
  376. const
  377. CSSM_WORDID__UNK_ = -1; { not in dictionary }
  378. CSSM_WORDID__NLU_ = 0; { not yet looked up }
  379. CSSM_WORDID__STAR_ = 1;
  380. CSSM_WORDID_A = 2;
  381. CSSM_WORDID_ACL = 3;
  382. CSSM_WORDID_ALPHA = 4;
  383. CSSM_WORDID_B = 5;
  384. CSSM_WORDID_BER = 6;
  385. CSSM_WORDID_BINARY = 7;
  386. CSSM_WORDID_BIOMETRIC = 8;
  387. CSSM_WORDID_C = 9;
  388. CSSM_WORDID_CANCELED = 10;
  389. CSSM_WORDID_CERT = 11;
  390. CSSM_WORDID_COMMENT = 12;
  391. CSSM_WORDID_CRL = 13;
  392. CSSM_WORDID_CUSTOM = 14;
  393. CSSM_WORDID_D = 15;
  394. CSSM_WORDID_DATE = 16;
  395. CSSM_WORDID_DB_DELETE = 17;
  396. CSSM_WORDID_DB_EXEC_STORED_QUERY = 18;
  397. CSSM_WORDID_DB_INSERT = 19;
  398. CSSM_WORDID_DB_MODIFY = 20;
  399. CSSM_WORDID_DB_READ = 21;
  400. CSSM_WORDID_DBS_CREATE = 22;
  401. CSSM_WORDID_DBS_DELETE = 23;
  402. CSSM_WORDID_DECRYPT = 24;
  403. CSSM_WORDID_DELETE = 25;
  404. CSSM_WORDID_DELTA_CRL = 26;
  405. CSSM_WORDID_DER = 27;
  406. CSSM_WORDID_DERIVE = 28;
  407. CSSM_WORDID_DISPLAY = 29;
  408. CSSM_WORDID_DO = 30;
  409. CSSM_WORDID_DSA = 31;
  410. CSSM_WORDID_DSA_SHA1 = 32;
  411. CSSM_WORDID_E = 33;
  412. CSSM_WORDID_ELGAMAL = 34;
  413. CSSM_WORDID_ENCRYPT = 35;
  414. CSSM_WORDID_ENTRY = 36;
  415. CSSM_WORDID_EXPORT_CLEAR = 37;
  416. CSSM_WORDID_EXPORT_WRAPPED = 38;
  417. CSSM_WORDID_G = 39;
  418. CSSM_WORDID_GE = 40;
  419. CSSM_WORDID_GENKEY = 41;
  420. CSSM_WORDID_HASH = 42;
  421. CSSM_WORDID_HASHED_PASSWORD = 43;
  422. CSSM_WORDID_HASHED_SUBJECT = 44;
  423. CSSM_WORDID_HAVAL = 45;
  424. CSSM_WORDID_IBCHASH = 46;
  425. CSSM_WORDID_IMPORT_CLEAR = 47;
  426. CSSM_WORDID_IMPORT_WRAPPED = 48;
  427. CSSM_WORDID_INTEL = 49;
  428. CSSM_WORDID_ISSUER = 50;
  429. CSSM_WORDID_ISSUER_INFO = 51;
  430. CSSM_WORDID_K_OF_N = 52;
  431. CSSM_WORDID_KEA = 53;
  432. CSSM_WORDID_KEYHOLDER = 54;
  433. CSSM_WORDID_L = 55;
  434. CSSM_WORDID_LE = 56;
  435. CSSM_WORDID_LOGIN = 57;
  436. CSSM_WORDID_LOGIN_NAME = 58;
  437. CSSM_WORDID_MAC = 59;
  438. CSSM_WORDID_MD2 = 60;
  439. CSSM_WORDID_MD2WITHRSA = 61;
  440. CSSM_WORDID_MD4 = 62;
  441. CSSM_WORDID_MD5 = 63;
  442. CSSM_WORDID_MD5WITHRSA = 64;
  443. CSSM_WORDID_N = 65;
  444. CSSM_WORDID_NAME = 66;
  445. CSSM_WORDID_NDR = 67;
  446. CSSM_WORDID_NHASH = 68;
  447. CSSM_WORDID_NOT_AFTER = 69;
  448. CSSM_WORDID_NOT_BEFORE = 70;
  449. CSSM_WORDID_NULL = 71;
  450. CSSM_WORDID_NUMERIC = 72;
  451. CSSM_WORDID_OBJECT_HASH = 73;
  452. CSSM_WORDID_ONE_TIME = 74;
  453. CSSM_WORDID_ONLINE = 75;
  454. CSSM_WORDID_OWNER = 76;
  455. CSSM_WORDID_P = 77;
  456. CSSM_WORDID_PAM_NAME = 78;
  457. CSSM_WORDID_PASSWORD = 79;
  458. CSSM_WORDID_PGP = 80;
  459. CSSM_WORDID_PREFIX = 81;
  460. CSSM_WORDID_PRIVATE_KEY = 82;
  461. CSSM_WORDID_PROMPTED_BIOMETRIC = 83;
  462. CSSM_WORDID_PROMPTED_PASSWORD = 84;
  463. CSSM_WORDID_PROPAGATE = 85;
  464. CSSM_WORDID_PROTECTED_BIOMETRIC = 86;
  465. CSSM_WORDID_PROTECTED_PASSWORD = 87;
  466. CSSM_WORDID_PROTECTED_PIN = 88;
  467. CSSM_WORDID_PUBLIC_KEY = 89;
  468. CSSM_WORDID_PUBLIC_KEY_FROM_CERT = 90;
  469. CSSM_WORDID_Q = 91;
  470. CSSM_WORDID_RANGE = 92;
  471. CSSM_WORDID_REVAL = 93;
  472. CSSM_WORDID_RIPEMAC = 94;
  473. CSSM_WORDID_RIPEMD = 95;
  474. CSSM_WORDID_RIPEMD160 = 96;
  475. CSSM_WORDID_RSA = 97;
  476. CSSM_WORDID_RSA_ISO9796 = 98;
  477. CSSM_WORDID_RSA_PKCS = 99;
  478. CSSM_WORDID_RSA_PKCS_MD5 = 100;
  479. CSSM_WORDID_RSA_PKCS_SHA1 = 101;
  480. CSSM_WORDID_RSA_PKCS1 = 102;
  481. CSSM_WORDID_RSA_PKCS1_MD5 = 103;
  482. CSSM_WORDID_RSA_PKCS1_SHA1 = 104;
  483. CSSM_WORDID_RSA_PKCS1_SIG = 105;
  484. CSSM_WORDID_RSA_RAW = 106;
  485. CSSM_WORDID_SDSIV1 = 107;
  486. CSSM_WORDID_SEQUENCE = 108;
  487. CSSM_WORDID_SET = 109;
  488. CSSM_WORDID_SEXPR = 110;
  489. CSSM_WORDID_SHA1 = 111;
  490. CSSM_WORDID_SHA1WITHDSA = 112;
  491. CSSM_WORDID_SHA1WITHECDSA = 113;
  492. CSSM_WORDID_SHA1WITHRSA = 114;
  493. CSSM_WORDID_SIGN = 115;
  494. CSSM_WORDID_SIGNATURE = 116;
  495. CSSM_WORDID_SIGNED_NONCE = 117;
  496. CSSM_WORDID_SIGNED_SECRET = 118;
  497. CSSM_WORDID_SPKI = 119;
  498. CSSM_WORDID_SUBJECT = 120;
  499. CSSM_WORDID_SUBJECT_INFO = 121;
  500. CSSM_WORDID_TAG = 122;
  501. CSSM_WORDID_THRESHOLD = 123;
  502. CSSM_WORDID_TIME = 124;
  503. CSSM_WORDID_URI = 125;
  504. CSSM_WORDID_VERSION = 126;
  505. CSSM_WORDID_X509_ATTRIBUTE = 127;
  506. CSSM_WORDID_X509V1 = 128;
  507. CSSM_WORDID_X509V2 = 129;
  508. CSSM_WORDID_X509V3 = 130;
  509. CSSM_WORDID_X9_ATTRIBUTE = 131;
  510. CSSM_WORDID_VENDOR_START = $00010000;
  511. CSSM_WORDID_VENDOR_END = $7FFF0000;
  512. type
  513. CSSM_LIST_ELEMENT_TYPE = UInt32;
  514. CSSM_LIST_ELEMENT_TYPE_PTR = ^UInt32;
  515. CSSM_LIST_ELEMENT_TYPEPtr = ^UInt32;
  516. const
  517. CSSM_LIST_ELEMENT_DATUM = $00;
  518. CSSM_LIST_ELEMENT_SUBLIST = $01;
  519. CSSM_LIST_ELEMENT_WORDID = $02;
  520. type
  521. CSSM_LIST_TYPE = UInt32;
  522. CSSM_LIST_TYPE_PTR = ^UInt32;
  523. CSSM_LIST_TYPEPtr = ^UInt32;
  524. const
  525. CSSM_LIST_TYPE_UNKNOWN = 0;
  526. CSSM_LIST_TYPE_CUSTOM = 1;
  527. CSSM_LIST_TYPE_SEXPR = 2;
  528. type
  529. CSSM_LIST_ELEMENT_PTR = ^cssm_list_element;
  530. CSSM_LIST_ELEMENTPtr = ^cssm_list_element;
  531. CSSM_LIST_PTR = ^cssm_list;
  532. CSSM_LISTPtr = ^cssm_list;
  533. cssm_list = record
  534. ListType: CSSM_LIST_TYPE; { type of this list }
  535. Head: CSSM_LIST_ELEMENT_PTR; { head of the list }
  536. Tail: CSSM_LIST_ELEMENT_PTR; { tail of the list }
  537. end;
  538. (* DEPRECATED_IN_MAC_OS_X_VERSION_10_7_AND_LATER *)
  539. __embedded_cssm_list_element = record
  540. case Integer of
  541. 0: (Sublist: CSSM_LIST); { sublist }
  542. 1: (Word: CSSM_DATA); { a byte-string }
  543. end;
  544. cssm_list_element = record
  545. NextElement: cssm_list_element_ptr; { next list element }
  546. WordID: CSSM_WORDID_TYPE; { integer identifier associated }
  547. { with a Word value }
  548. ElementType: CSSM_LIST_ELEMENT_TYPE;
  549. Element: __embedded_cssm_list_element;
  550. end;
  551. type
  552. CSSM_TUPLE_PTR = ^CSSM_TUPLE;
  553. CSSM_TUPLEPtr = ^CSSM_TUPLE;
  554. CSSM_TUPLE = record
  555. { 5-tuple definition }
  556. Issuer: CSSM_LIST; { issuer, or empty if ACL }
  557. Subject: CSSM_LIST; { subject }
  558. Delegate: CSSM_BOOL; { permission to delegate }
  559. AuthorizationTag: CSSM_LIST; { authorization field }
  560. ValidityPeriod: CSSM_LIST; { validity information (dates) }
  561. end;
  562. (* DEPRECATED_IN_MAC_OS_X_VERSION_10_7_AND_LATER *)
  563. type
  564. CSSM_TUPLEGROUP_PTR = ^cssm_tuplegroup;
  565. CSSM_TUPLEGROUPPtr = ^cssm_tuplegroup;
  566. cssm_tuplegroup = record
  567. NumberOfTuples: UInt32;
  568. Tuples: CSSM_TUPLE_PTR;
  569. end;
  570. (* DEPRECATED_IN_MAC_OS_X_VERSION_10_7_AND_LATER *)
  571. type
  572. CSSM_SAMPLE_TYPE = CSSM_WORDID_TYPE;
  573. const
  574. CSSM_SAMPLE_TYPE_PASSWORD = CSSM_WORDID_PASSWORD;
  575. CSSM_SAMPLE_TYPE_HASHED_PASSWORD = CSSM_WORDID_HASHED_PASSWORD;
  576. CSSM_SAMPLE_TYPE_PROTECTED_PASSWORD = CSSM_WORDID_PROTECTED_PASSWORD;
  577. CSSM_SAMPLE_TYPE_PROMPTED_PASSWORD = CSSM_WORDID_PROMPTED_PASSWORD;
  578. CSSM_SAMPLE_TYPE_SIGNED_NONCE = CSSM_WORDID_SIGNED_NONCE;
  579. CSSM_SAMPLE_TYPE_SIGNED_SECRET = CSSM_WORDID_SIGNED_SECRET;
  580. CSSM_SAMPLE_TYPE_BIOMETRIC = CSSM_WORDID_BIOMETRIC;
  581. CSSM_SAMPLE_TYPE_PROTECTED_BIOMETRIC = CSSM_WORDID_PROTECTED_BIOMETRIC;
  582. CSSM_SAMPLE_TYPE_PROMPTED_BIOMETRIC = CSSM_WORDID_PROMPTED_BIOMETRIC;
  583. CSSM_SAMPLE_TYPE_THRESHOLD = CSSM_WORDID_THRESHOLD;
  584. type
  585. CSSM_SAMPLE_PTR = ^cssm_sample;
  586. CSSM_SAMPLEPtr = ^cssm_sample;
  587. cssm_sample = record
  588. TypedSample: CSSM_LIST;
  589. Verifier: {const} CSSM_SUBSERVICE_UIDPtr;
  590. end;
  591. (* DEPRECATED_IN_MAC_OS_X_VERSION_10_7_AND_LATER *)
  592. type
  593. CSSM_SAMPLEGROUP_PTR = ^cssm_samplegroup;
  594. CSSM_SAMPLEGROUPPtr = ^cssm_samplegroup;
  595. cssm_samplegroup = record
  596. NumberOfSamples: UInt32;
  597. Samples: {const} CSSM_SAMPLEPtr;
  598. end;
  599. (* DEPRECATED_IN_MAC_OS_X_VERSION_10_7_AND_LATER *)
  600. type
  601. CSSM_MALLOC = function( size: CSSM_SIZE; allocref: UnivPtr ): UnivPtr;
  602. type
  603. CSSM_FREE = procedure( memblock: UnivPtr; allocref: UnivPtr );
  604. type
  605. CSSM_REALLOC = function( memblock: UnivPtr; size: CSSM_SIZE; allocref: UnivPtr ): UnivPtr;
  606. type
  607. CSSM_CALLOC = function( num: UInt32; size: CSSM_SIZE; allocref: UnivPtr ): UnivPtr;
  608. type
  609. CSSM_MEMORY_FUNCS_PTR = ^cssm_memory_funcs;
  610. CSSM_MEMORY_FUNCSPtr = ^cssm_memory_funcs;
  611. cssm_memory_funcs = record
  612. malloc_func: CSSM_MALLOC;
  613. free_func: CSSM_FREE;
  614. realloc_func: CSSM_REALLOC;
  615. calloc_func: CSSM_CALLOC;
  616. AllocRef: UnivPtr;
  617. end;
  618. (* DEPRECATED_IN_MAC_OS_X_VERSION_10_7_AND_LATER *)
  619. type
  620. CSSM_API_MEMORY_FUNCS = CSSM_MEMORY_FUNCS;
  621. CSSM_API_MEMORY_FUNCS_PTR = ^CSSM_API_MEMORY_FUNCS;
  622. CSSM_API_MEMORY_FUNCSPtr = ^CSSM_API_MEMORY_FUNCS;
  623. type
  624. CSSM_CHALLENGE_CALLBACK = function( const (*var*) Challenge: CSSM_LIST; Response: CSSM_SAMPLEGROUP_PTR; CallerCtx: UnivPtr; const (*var*) MemFuncs: CSSM_MEMORY_FUNCS ): CSSM_RETURN;
  625. type
  626. CSSM_CERT_TYPE = UInt32;
  627. CSSM_CERT_TYPE_PTR = ^UInt32;
  628. CSSM_CERT_TYPEPtr = ^UInt32;
  629. const
  630. CSSM_CERT_UNKNOWN = $00;
  631. CSSM_CERT_X_509v1 = $01;
  632. CSSM_CERT_X_509v2 = $02;
  633. CSSM_CERT_X_509v3 = $03;
  634. CSSM_CERT_PGP = $04;
  635. CSSM_CERT_SPKI = $05;
  636. CSSM_CERT_SDSIv1 = $06;
  637. CSSM_CERT_Intel = $08;
  638. CSSM_CERT_X_509_ATTRIBUTE = $09; { X.509 attribute cert }
  639. CSSM_CERT_X9_ATTRIBUTE = $0A; { X9 attribute cert }
  640. CSSM_CERT_TUPLE = $0B;
  641. CSSM_CERT_ACL_ENTRY = $0C;
  642. CSSM_CERT_MULTIPLE = $7FFE;
  643. CSSM_CERT_LAST = $7FFF;
  644. { Applications wishing to define their own custom certificate
  645. type should define and publicly document a uint32 value greater
  646. than the CSSM_CL_CUSTOM_CERT_TYPE }
  647. CSSM_CL_CUSTOM_CERT_TYPE = $08000;
  648. type
  649. CSSM_CERT_ENCODING = UInt32;
  650. CSSM_CERT_ENCODING_PTR = ^UInt32;
  651. CSSM_CERT_ENCODINGPtr = ^UInt32;
  652. const
  653. CSSM_CERT_ENCODING_UNKNOWN = $00;
  654. CSSM_CERT_ENCODING_CUSTOM = $01;
  655. CSSM_CERT_ENCODING_BER = $02;
  656. CSSM_CERT_ENCODING_DER = $03;
  657. CSSM_CERT_ENCODING_NDR = $04;
  658. CSSM_CERT_ENCODING_SEXPR = $05;
  659. CSSM_CERT_ENCODING_PGP = $06;
  660. CSSM_CERT_ENCODING_MULTIPLE = $7FFE;
  661. CSSM_CERT_ENCODING_LAST = $7FFF;
  662. { Applications wishing to define their own custom certificate
  663. encoding should create a uint32 value greater than the
  664. CSSM_CL_CUSTOM_CERT_ENCODING }
  665. CSSM_CL_CUSTOM_CERT_ENCODING = $8000;
  666. type
  667. CSSM_ENCODED_CERT_PTR = ^cssm_encoded_cert;
  668. CSSM_ENCODED_CERTPtr = ^cssm_encoded_cert;
  669. cssm_encoded_cert = record
  670. CertType: CSSM_CERT_TYPE; { type of certificate }
  671. CertEncoding: CSSM_CERT_ENCODING; { encoding for this packed cert }
  672. CertBlob: CSSM_DATA; { packed cert }
  673. end;
  674. (* DEPRECATED_IN_MAC_OS_X_VERSION_10_7_AND_LATER *)
  675. type
  676. CSSM_CERT_PARSE_FORMAT = UInt32;
  677. CSSM_CERT_PARSE_FORMAT_PTR = ^UInt32;
  678. CSSM_CERT_PARSE_FORMATPtr = ^UInt32;
  679. const
  680. CSSM_CERT_PARSE_FORMAT_NONE = $00;
  681. CSSM_CERT_PARSE_FORMAT_CUSTOM = $01; { void* }
  682. CSSM_CERT_PARSE_FORMAT_SEXPR = $02; { CSSM_LIST }
  683. CSSM_CERT_PARSE_FORMAT_COMPLEX = $03; { void* }
  684. CSSM_CERT_PARSE_FORMAT_OID_NAMED = $04; { CSSM_FIELDGROUP }
  685. CSSM_CERT_PARSE_FORMAT_TUPLE = $05; { CSSM_TUPLE }
  686. CSSM_CERT_PARSE_FORMAT_MULTIPLE = $7FFE;
  687. { multiple forms, each cert carries a
  688. parse format indicator }
  689. CSSM_CERT_PARSE_FORMAT_LAST = $7FFF;
  690. { Applications wishing to define their
  691. own custom parse format should create
  692. a * uint32 value greater than the
  693. CSSM_CL_CUSTOM_CERT_PARSE_FORMAT }
  694. CSSM_CL_CUSTOM_CERT_PARSE_FORMAT = $8000;
  695. type
  696. CSSM_PARSED_CERT_PTR = ^cssm_parsed_cert;
  697. CSSM_PARSED_CERTPtr = ^cssm_parsed_cert;
  698. cssm_parsed_cert = record
  699. CertType: CSSM_CERT_TYPE; { certificate type }
  700. ParsedCertFormat: CSSM_CERT_PARSE_FORMAT;
  701. { struct of ParsedCert }
  702. ParsedCert: UnivPtr; { parsed cert (to be typecast) }
  703. end;
  704. (* DEPRECATED_IN_MAC_OS_X_VERSION_10_7_AND_LATER *)
  705. type
  706. CSSM_CERT_PAIR_PTR = ^cssm_cert_pair;
  707. CSSM_CERT_PAIRPtr = ^cssm_cert_pair;
  708. cssm_cert_pair = record
  709. EncodedCert: CSSM_ENCODED_CERT; { an encoded certificate blob }
  710. ParsedCert: CSSM_PARSED_CERT; { equivalent parsed certificate }
  711. end;
  712. (* DEPRECATED_IN_MAC_OS_X_VERSION_10_7_AND_LATER *)
  713. type
  714. CSSM_CERTGROUP_TYPE = UInt32;
  715. CSSM_CERTGROUP_TYPE_PTR = ^UInt32;
  716. CSSM_CERTGROUP_TYPEPtr = ^UInt32;
  717. const
  718. CSSM_CERTGROUP_DATA = $00;
  719. CSSM_CERTGROUP_ENCODED_CERT = $01;
  720. CSSM_CERTGROUP_PARSED_CERT = $02;
  721. CSSM_CERTGROUP_CERT_PAIR = $03;
  722. type
  723. __EmbeddedGroupListType = record
  724. case Integer of
  725. 0: (CertList: CSSM_DATA_PTR); { legacy list of single type certificate blobs }
  726. 1: (EncodedCertList: CSSM_ENCODED_CERT_PTR);
  727. { list of multi-type certificate blobs }
  728. 2: (ParsedCertList: CSSM_PARSED_CERT_PTR);
  729. { list of multi-type parsed certs }
  730. 3: (PairCertList: CSSM_CERT_PAIR_PTR);
  731. {list of single or multi-type certs with two representations: blob and parsed }
  732. end;
  733. cssm_certgroup = record
  734. CertType: CSSM_CERT_TYPE;
  735. CertEncoding: CSSM_CERT_ENCODING;
  736. NumCerts: UInt32; { # of certificates in this list }
  737. CertGroupType: __EmbeddedGroupListType;
  738. { type of structure in the GroupList }
  739. Reserved: UnivPtr; { reserved for implementation dependent use }
  740. end;
  741. cssm_certgroup_ptr = ^cssm_certgroup;
  742. CSSM_certgroupPtr = ^cssm_certgroup;
  743. type
  744. CSSM_BASE_CERTS_PTR = ^cssm_base_certs;
  745. CSSM_BASE_CERTSPtr = ^cssm_base_certs;
  746. cssm_base_certs = record
  747. TPHandle: CSSM_TP_HANDLE;
  748. CLHandle: CSSM_CL_HANDLE;
  749. Certs: CSSM_CERTGROUP;
  750. end;
  751. (* DEPRECATED_IN_MAC_OS_X_VERSION_10_7_AND_LATER *)
  752. type
  753. CSSM_ACCESS_CREDENTIALS_PTR = ^cssm_access_credentials;
  754. CSSM_ACCESS_CREDENTIALSPtr = ^cssm_access_credentials;
  755. cssm_access_credentials = record
  756. EntryTag: CSSM_STRING;
  757. BaseCerts: CSSM_BASE_CERTS;
  758. Samples: CSSM_SAMPLEGROUP;
  759. Callback: CSSM_CHALLENGE_CALLBACK;
  760. CallerCtx: UnivPtr;
  761. end;
  762. (* DEPRECATED_IN_MAC_OS_X_VERSION_10_7_AND_LATER *)
  763. type
  764. CSSM_ACL_SUBJECT_TYPE = SInt32;
  765. const
  766. CSSM_ACL_SUBJECT_TYPE_ANY = CSSM_WORDID__STAR_;
  767. CSSM_ACL_SUBJECT_TYPE_THRESHOLD = CSSM_WORDID_THRESHOLD;
  768. CSSM_ACL_SUBJECT_TYPE_PASSWORD = CSSM_WORDID_PASSWORD;
  769. CSSM_ACL_SUBJECT_TYPE_PROTECTED_PASSWORD = CSSM_WORDID_PROTECTED_PASSWORD;
  770. CSSM_ACL_SUBJECT_TYPE_PROMPTED_PASSWORD = CSSM_WORDID_PROMPTED_PASSWORD;
  771. CSSM_ACL_SUBJECT_TYPE_PUBLIC_KEY = CSSM_WORDID_PUBLIC_KEY;
  772. CSSM_ACL_SUBJECT_TYPE_HASHED_SUBJECT = CSSM_WORDID_HASHED_SUBJECT;
  773. CSSM_ACL_SUBJECT_TYPE_BIOMETRIC = CSSM_WORDID_BIOMETRIC;
  774. CSSM_ACL_SUBJECT_TYPE_PROTECTED_BIOMETRIC = CSSM_WORDID_PROTECTED_BIOMETRIC;
  775. CSSM_ACL_SUBJECT_TYPE_PROMPTED_BIOMETRIC = CSSM_WORDID_PROMPTED_BIOMETRIC;
  776. CSSM_ACL_SUBJECT_TYPE_LOGIN_NAME = CSSM_WORDID_LOGIN_NAME;
  777. CSSM_ACL_SUBJECT_TYPE_EXT_PAM_NAME = CSSM_WORDID_PAM_NAME;
  778. { Authorization tag type }
  779. type
  780. CSSM_ACL_AUTHORIZATION_TAG = SInt32;
  781. CSSM_ACL_AUTHORIZATION_TAGPtr = ^CSSM_ACL_AUTHORIZATION_TAG;
  782. const
  783. { All vendor specific constants must be in the number range
  784. starting at CSSM_ACL_AUTHORIZATION_TAG_VENDOR_DEFINED_START }
  785. CSSM_ACL_AUTHORIZATION_TAG_VENDOR_DEFINED_START = $00010000;
  786. { No restrictions. Permission to perform all operations on
  787. the resource or available to an ACL owner. }
  788. CSSM_ACL_AUTHORIZATION_ANY = CSSM_WORDID__STAR_;
  789. { Defined authorization tag values for CSPs }
  790. CSSM_ACL_AUTHORIZATION_LOGIN = CSSM_WORDID_LOGIN;
  791. CSSM_ACL_AUTHORIZATION_GENKEY = CSSM_WORDID_GENKEY;
  792. CSSM_ACL_AUTHORIZATION_DELETE = CSSM_WORDID_DELETE;
  793. CSSM_ACL_AUTHORIZATION_EXPORT_WRAPPED = CSSM_WORDID_EXPORT_WRAPPED;
  794. CSSM_ACL_AUTHORIZATION_EXPORT_CLEAR = CSSM_WORDID_EXPORT_CLEAR;
  795. CSSM_ACL_AUTHORIZATION_IMPORT_WRAPPED = CSSM_WORDID_IMPORT_WRAPPED;
  796. CSSM_ACL_AUTHORIZATION_IMPORT_CLEAR = CSSM_WORDID_IMPORT_CLEAR;
  797. CSSM_ACL_AUTHORIZATION_SIGN = CSSM_WORDID_SIGN;
  798. CSSM_ACL_AUTHORIZATION_ENCRYPT = CSSM_WORDID_ENCRYPT;
  799. CSSM_ACL_AUTHORIZATION_DECRYPT = CSSM_WORDID_DECRYPT;
  800. CSSM_ACL_AUTHORIZATION_MAC = CSSM_WORDID_MAC;
  801. CSSM_ACL_AUTHORIZATION_DERIVE = CSSM_WORDID_DERIVE;
  802. { Defined authorization tag values for DLs }
  803. CSSM_ACL_AUTHORIZATION_DBS_CREATE = CSSM_WORDID_DBS_CREATE;
  804. CSSM_ACL_AUTHORIZATION_DBS_DELETE = CSSM_WORDID_DBS_DELETE;
  805. CSSM_ACL_AUTHORIZATION_DB_READ = CSSM_WORDID_DB_READ;
  806. CSSM_ACL_AUTHORIZATION_DB_INSERT = CSSM_WORDID_DB_INSERT;
  807. CSSM_ACL_AUTHORIZATION_DB_MODIFY = CSSM_WORDID_DB_MODIFY;
  808. CSSM_ACL_AUTHORIZATION_DB_DELETE = CSSM_WORDID_DB_DELETE;
  809. type
  810. CSSM_AUTHORIZATIONGROUP_PTR = ^cssm_authorizationgroup;
  811. CSSM_AUTHORIZATIONGROUPPtr = ^cssm_authorizationgroup;
  812. cssm_authorizationgroup = record
  813. NumberOfAuthTags: UInt32;
  814. AuthTags: CSSM_ACL_AUTHORIZATION_TAGPtr;
  815. end;
  816. (* DEPRECATED_IN_MAC_OS_X_VERSION_10_7_AND_LATER *)
  817. type
  818. CSSM_ACL_VALIDITY_PERIOD_PTR = ^cssm_acl_validity_period;
  819. CSSM_ACL_VALIDITY_PERIODPtr = ^cssm_acl_validity_period;
  820. cssm_acl_validity_period = record
  821. StartDate: CSSM_DATA;
  822. EndDate: CSSM_DATA;
  823. end;
  824. (* DEPRECATED_IN_MAC_OS_X_VERSION_10_7_AND_LATER *)
  825. type
  826. CSSM_ACL_ENTRY_PROTOTYPE_PTR = ^cssm_acl_entry_prototype;
  827. CSSM_ACL_ENTRY_PROTOTYPEPtr = ^cssm_acl_entry_prototype;
  828. cssm_acl_entry_prototype = record
  829. TypedSubject: CSSM_LIST;
  830. Delegate: CSSM_BOOL;
  831. Authorization: CSSM_AUTHORIZATIONGROUP;
  832. TimeRange: CSSM_ACL_VALIDITY_PERIOD;
  833. EntryTag: CSSM_STRING;
  834. end;
  835. (* DEPRECATED_IN_MAC_OS_X_VERSION_10_7_AND_LATER *)
  836. type
  837. CSSM_ACL_OWNER_PROTOTYPE_PTR = ^cssm_acl_owner_prototype;
  838. CSSM_ACL_OWNER_PROTOTYPEPtr = ^cssm_acl_owner_prototype;
  839. cssm_acl_owner_prototype = record
  840. TypedSubject: CSSM_LIST;
  841. Delegate: CSSM_BOOL;
  842. end;
  843. (* DEPRECATED_IN_MAC_OS_X_VERSION_10_7_AND_LATER *)
  844. type
  845. CSSM_ACL_SUBJECT_CALLBACK = function( const (*var*) SubjectRequest: CSSM_LIST; SubjectResponse: CSSM_LIST_PTR; CallerContext: UnivPtr; const (*var*) MemFuncs: CSSM_MEMORY_FUNCS ): CSSM_RETURN;
  846. type
  847. CSSM_ACL_ENTRY_INPUT_PTR = ^cssm_acl_entry_input;
  848. CSSM_ACL_ENTRY_INPUTPtr = ^cssm_acl_entry_input;
  849. cssm_acl_entry_input = record
  850. Prototype: CSSM_ACL_ENTRY_PROTOTYPE;
  851. Callback: CSSM_ACL_SUBJECT_CALLBACK;
  852. CallerContext: UnivPtr;
  853. end;
  854. (* DEPRECATED_IN_MAC_OS_X_VERSION_10_7_AND_LATER *)
  855. type
  856. CSSM_RESOURCE_CONTROL_CONTEXT_PTR = ^cssm_resource_control_context;
  857. CSSM_RESOURCE_CONTROL_CONTEXTPtr = ^cssm_resource_control_context;
  858. cssm_resource_control_context = record
  859. AccessCred: CSSM_ACCESS_CREDENTIALS_PTR;
  860. InitialAclEntry: CSSM_ACL_ENTRY_INPUT;
  861. end;
  862. (* DEPRECATED_IN_MAC_OS_X_VERSION_10_7_AND_LATER *)
  863. type
  864. CSSM_ACL_HANDLE = CSSM_HANDLE;
  865. type
  866. CSSM_ACL_ENTRY_INFO_PTR = ^cssm_acl_entry_info;
  867. CSSM_ACL_ENTRY_INFOPtr = ^cssm_acl_entry_info;
  868. cssm_acl_entry_info = record
  869. EntryPublicInfo: CSSM_ACL_ENTRY_PROTOTYPE;
  870. EntryHandle: CSSM_ACL_HANDLE;
  871. end;
  872. (* DEPRECATED_IN_MAC_OS_X_VERSION_10_7_AND_LATER *)
  873. type
  874. CSSM_ACL_EDIT_MODE = UInt32;
  875. const
  876. CSSM_ACL_EDIT_MODE_ADD = 1;
  877. CSSM_ACL_EDIT_MODE_DELETE = 2;
  878. CSSM_ACL_EDIT_MODE_REPLACE = 3;
  879. type
  880. CSSM_ACL_EDIT_PTR = ^cssm_acl_edit;
  881. CSSM_ACL_EDITPtr = ^cssm_acl_edit;
  882. cssm_acl_edit = record
  883. EditMode: CSSM_ACL_EDIT_MODE;
  884. OldEntryHandle: CSSM_ACL_HANDLE;
  885. NewEntry: {const} CSSM_ACL_ENTRY_INPUTPtr;
  886. end;
  887. (* DEPRECATED_IN_MAC_OS_X_VERSION_10_7_AND_LATER *)
  888. {$ifc defined(WIN32)}
  889. type
  890. CSSM_PROC_ADDR = FARPROC;
  891. {$elsec}
  892. type
  893. CSSM_PROC_ADDR = procedure;
  894. {$endc}
  895. CSSM_PROC_ADDRPtr = ^CSSM_PROC_ADDR;
  896. type
  897. CSSM_PROC_ADDR_PTR = CSSM_PROC_ADDRPtr;
  898. type
  899. CSSM_FUNC_NAME_ADDR_PTR = ^cssm_func_name_addr;
  900. CSSM_FUNC_NAME_ADDRPtr = ^cssm_func_name_addr;
  901. cssm_func_name_addr = record
  902. Name: CSSM_STRING;
  903. Address: CSSM_PROC_ADDR;
  904. end;
  905. (* DEPRECATED_IN_MAC_OS_X_VERSION_10_7_AND_LATER *)
  906. { Data Types for Cryptographic Services }
  907. type
  908. CSSM_DATE_PTR = ^cssm_date;
  909. CSSM_DATEPtr = ^cssm_date;
  910. cssm_date = record
  911. Year: array [0..4-1] of UInt8;
  912. Month: array [0..2-1] of UInt8;
  913. Day: array [0..2-1] of UInt8;
  914. end;
  915. (* DEPRECATED_IN_MAC_OS_X_VERSION_10_7_AND_LATER *)
  916. type
  917. CSSM_RANGE_PTR = ^cssm_range;
  918. CSSM_RANGEPtr = ^cssm_range;
  919. cssm_range = record
  920. Min: UInt32; { inclusive minimum value }
  921. Max: UInt32; { inclusive maximum value }
  922. end;
  923. (* DEPRECATED_IN_MAC_OS_X_VERSION_10_7_AND_LATER *)
  924. type
  925. CSSM_QUERY_SIZE_DATA_PTR = ^cssm_query_size_data;
  926. CSSM_QUERY_SIZE_DATAPtr = ^cssm_query_size_data;
  927. cssm_query_size_data = record
  928. SizeInputBlock: UInt32; { size of input data block }
  929. SizeOutputBlock: UInt32; { size of resulting output data block }
  930. end;
  931. (* DEPRECATED_IN_MAC_OS_X_VERSION_10_7_AND_LATER *)
  932. type
  933. CSSM_HEADERVERSION = UInt32;
  934. const
  935. CSSM_KEYHEADER_VERSION = 2;
  936. type
  937. CSSM_KEY_SIZE_PTR = ^cssm_key_size;
  938. CSSM_KEY_SIZEPtr = ^cssm_key_size;
  939. cssm_key_size = record
  940. LogicalKeySizeInBits: UInt32; { Logical key size in bits }
  941. EffectiveKeySizeInBits: UInt32; { Effective key size in bits }
  942. end;
  943. (* DEPRECATED_IN_MAC_OS_X_VERSION_10_7_AND_LATER *)
  944. type
  945. CSSM_KEYBLOB_TYPE = UInt32;
  946. const
  947. CSSM_KEYBLOB_RAW = 0; { The blob is a clear, raw key }
  948. CSSM_KEYBLOB_REFERENCE = 2; { The blob is a reference to a key }
  949. CSSM_KEYBLOB_WRAPPED = 3; { The blob is a wrapped RAW key }
  950. CSSM_KEYBLOB_OTHER = $FFFFFFFF;
  951. type
  952. CSSM_KEYBLOB_FORMAT = UInt32;
  953. const
  954. { Raw Format }
  955. CSSM_KEYBLOB_RAW_FORMAT_NONE = 0;
  956. { No further conversion need to be done }
  957. CSSM_KEYBLOB_RAW_FORMAT_PKCS1 = 1; { RSA PKCS1 V1.5 }
  958. CSSM_KEYBLOB_RAW_FORMAT_PKCS3 = 2; { RSA PKCS3 V1.5 }
  959. CSSM_KEYBLOB_RAW_FORMAT_MSCAPI = 3; { Microsoft CAPI V2.0 }
  960. CSSM_KEYBLOB_RAW_FORMAT_PGP = 4; { PGP V }
  961. CSSM_KEYBLOB_RAW_FORMAT_FIPS186 = 5; { US Gov. FIPS 186 - DSS V }
  962. CSSM_KEYBLOB_RAW_FORMAT_BSAFE = 6; { RSA Bsafe V3.0 }
  963. CSSM_KEYBLOB_RAW_FORMAT_CCA = 9; { CCA clear public key blob }
  964. CSSM_KEYBLOB_RAW_FORMAT_PKCS8 = 10; { RSA PKCS8 V1.2 }
  965. CSSM_KEYBLOB_RAW_FORMAT_SPKI = 11; { SPKI Specification }
  966. CSSM_KEYBLOB_RAW_FORMAT_OCTET_STRING = 12;
  967. CSSM_KEYBLOB_RAW_FORMAT_OTHER = $FFFFFFFF; { Other, CSP defined }
  968. const
  969. { Wrapped Format }
  970. CSSM_KEYBLOB_WRAPPED_FORMAT_NONE = 0;
  971. { No further conversion need to be done }
  972. CSSM_KEYBLOB_WRAPPED_FORMAT_PKCS8 = 1; { RSA PKCS8 V1.2 }
  973. CSSM_KEYBLOB_WRAPPED_FORMAT_PKCS7 = 2;
  974. CSSM_KEYBLOB_WRAPPED_FORMAT_MSCAPI = 3;
  975. CSSM_KEYBLOB_WRAPPED_FORMAT_OTHER = $FFFFFFFF; { Other, CSP defined }
  976. const
  977. { Reference Format }
  978. CSSM_KEYBLOB_REF_FORMAT_INTEGER = 0; { Reference is a number or handle }
  979. CSSM_KEYBLOB_REF_FORMAT_STRING = 1; { Reference is a string or label }
  980. CSSM_KEYBLOB_REF_FORMAT_SPKI = 2; { Reference is an SPKI S-expression }
  981. { to be evaluated to locate the key }
  982. CSSM_KEYBLOB_REF_FORMAT_OTHER = $FFFFFFFF; { Other, CSP defined }
  983. type
  984. CSSM_KEYCLASS = UInt32;
  985. const
  986. CSSM_KEYCLASS_PUBLIC_KEY = 0; { Key is public key }
  987. CSSM_KEYCLASS_PRIVATE_KEY = 1; { Key is private key }
  988. CSSM_KEYCLASS_SESSION_KEY = 2; { Key is session or symmetric key }
  989. CSSM_KEYCLASS_SECRET_PART = 3; { Key is part of secret key }
  990. CSSM_KEYCLASS_OTHER = $FFFFFFFF; { Other }
  991. type
  992. CSSM_KEYATTR_FLAGS = UInt32;
  993. const
  994. { Valid only during call to an API. Will never be valid when set in a key header }
  995. CSSM_KEYATTR_RETURN_DEFAULT = $00000000;
  996. CSSM_KEYATTR_RETURN_DATA = $10000000;
  997. CSSM_KEYATTR_RETURN_REF = $20000000;
  998. CSSM_KEYATTR_RETURN_NONE = $40000000;
  999. { Valid during an API call and in a key header }
  1000. CSSM_KEYATTR_PERMANENT = $00000001;
  1001. CSSM_KEYATTR_PRIVATE = $00000002;
  1002. CSSM_KEYATTR_MODIFIABLE = $00000004;
  1003. CSSM_KEYATTR_SENSITIVE = $00000008;
  1004. CSSM_KEYATTR_EXTRACTABLE = $00000020;
  1005. { Valid only in a key header generated by a CSP, not valid during an API call }
  1006. CSSM_KEYATTR_ALWAYS_SENSITIVE = $00000010;
  1007. CSSM_KEYATTR_NEVER_EXTRACTABLE = $00000040;
  1008. type
  1009. CSSM_KEYUSE = UInt32;
  1010. const
  1011. CSSM_KEYUSE_ANY = $80000000;
  1012. CSSM_KEYUSE_ENCRYPT = $00000001;
  1013. CSSM_KEYUSE_DECRYPT = $00000002;
  1014. CSSM_KEYUSE_SIGN = $00000004;
  1015. CSSM_KEYUSE_VERIFY = $00000008;
  1016. CSSM_KEYUSE_SIGN_RECOVER = $00000010;
  1017. CSSM_KEYUSE_VERIFY_RECOVER = $00000020;
  1018. CSSM_KEYUSE_WRAP = $00000040;
  1019. CSSM_KEYUSE_UNWRAP = $00000080;
  1020. CSSM_KEYUSE_DERIVE = $00000100;
  1021. type
  1022. CSSM_ALGORITHMS = UInt32;
  1023. const
  1024. CSSM_ALGID_NONE = 0;
  1025. CSSM_ALGID_CUSTOM = CSSM_ALGID_NONE + 1;
  1026. CSSM_ALGID_DH = CSSM_ALGID_NONE + 2;
  1027. CSSM_ALGID_PH = CSSM_ALGID_NONE + 3;
  1028. CSSM_ALGID_KEA = CSSM_ALGID_NONE + 4;
  1029. CSSM_ALGID_MD2 = CSSM_ALGID_NONE + 5;
  1030. CSSM_ALGID_MD4 = CSSM_ALGID_NONE + 6;
  1031. CSSM_ALGID_MD5 = CSSM_ALGID_NONE + 7;
  1032. CSSM_ALGID_SHA1 = CSSM_ALGID_NONE + 8;
  1033. CSSM_ALGID_NHASH = CSSM_ALGID_NONE + 9;
  1034. CSSM_ALGID_HAVAL = CSSM_ALGID_NONE + 10;
  1035. CSSM_ALGID_RIPEMD = CSSM_ALGID_NONE + 11;
  1036. CSSM_ALGID_IBCHASH = CSSM_ALGID_NONE + 12;
  1037. CSSM_ALGID_RIPEMAC = CSSM_ALGID_NONE + 13;
  1038. CSSM_ALGID_DES = CSSM_ALGID_NONE + 14;
  1039. CSSM_ALGID_DESX = CSSM_ALGID_NONE + 15;
  1040. CSSM_ALGID_RDES = CSSM_ALGID_NONE + 16;
  1041. CSSM_ALGID_3DES_3KEY_EDE = CSSM_ALGID_NONE + 17;
  1042. CSSM_ALGID_3DES_2KEY_EDE = CSSM_ALGID_NONE + 18;
  1043. CSSM_ALGID_3DES_1KEY_EEE = CSSM_ALGID_NONE + 19;
  1044. CSSM_ALGID_3DES_3KEY = CSSM_ALGID_3DES_3KEY_EDE;
  1045. CSSM_ALGID_3DES_3KEY_EEE = CSSM_ALGID_NONE + 20;
  1046. CSSM_ALGID_3DES_2KEY = CSSM_ALGID_3DES_2KEY_EDE;
  1047. CSSM_ALGID_3DES_2KEY_EEE = CSSM_ALGID_NONE + 21;
  1048. CSSM_ALGID_3DES_1KEY = CSSM_ALGID_3DES_3KEY_EEE;
  1049. CSSM_ALGID_IDEA = CSSM_ALGID_NONE + 22;
  1050. CSSM_ALGID_RC2 = CSSM_ALGID_NONE + 23;
  1051. CSSM_ALGID_RC5 = CSSM_ALGID_NONE + 24;
  1052. CSSM_ALGID_RC4 = CSSM_ALGID_NONE + 25;
  1053. CSSM_ALGID_SEAL = CSSM_ALGID_NONE + 26;
  1054. CSSM_ALGID_CAST = CSSM_ALGID_NONE + 27;
  1055. CSSM_ALGID_BLOWFISH = CSSM_ALGID_NONE + 28;
  1056. CSSM_ALGID_SKIPJACK = CSSM_ALGID_NONE + 29;
  1057. CSSM_ALGID_LUCIFER = CSSM_ALGID_NONE + 30;
  1058. CSSM_ALGID_MADRYGA = CSSM_ALGID_NONE + 31;
  1059. CSSM_ALGID_FEAL = CSSM_ALGID_NONE + 32;
  1060. CSSM_ALGID_REDOC = CSSM_ALGID_NONE + 33;
  1061. CSSM_ALGID_REDOC3 = CSSM_ALGID_NONE + 34;
  1062. CSSM_ALGID_LOKI = CSSM_ALGID_NONE + 35;
  1063. CSSM_ALGID_KHUFU = CSSM_ALGID_NONE + 36;
  1064. CSSM_ALGID_KHAFRE = CSSM_ALGID_NONE + 37;
  1065. CSSM_ALGID_MMB = CSSM_ALGID_NONE + 38;
  1066. CSSM_ALGID_GOST = CSSM_ALGID_NONE + 39;
  1067. CSSM_ALGID_SAFER = CSSM_ALGID_NONE + 40;
  1068. CSSM_ALGID_CRAB = CSSM_ALGID_NONE + 41;
  1069. CSSM_ALGID_RSA = CSSM_ALGID_NONE + 42;
  1070. CSSM_ALGID_DSA = CSSM_ALGID_NONE + 43;
  1071. CSSM_ALGID_MD5WithRSA = CSSM_ALGID_NONE + 44;
  1072. CSSM_ALGID_MD2WithRSA = CSSM_ALGID_NONE + 45;
  1073. CSSM_ALGID_ElGamal = CSSM_ALGID_NONE + 46;
  1074. CSSM_ALGID_MD2Random = CSSM_ALGID_NONE + 47;
  1075. CSSM_ALGID_MD5Random = CSSM_ALGID_NONE + 48;
  1076. CSSM_ALGID_SHARandom = CSSM_ALGID_NONE + 49;
  1077. CSSM_ALGID_DESRandom = CSSM_ALGID_NONE + 50;
  1078. CSSM_ALGID_SHA1WithRSA = CSSM_ALGID_NONE + 51;
  1079. CSSM_ALGID_CDMF = CSSM_ALGID_NONE + 52;
  1080. CSSM_ALGID_CAST3 = CSSM_ALGID_NONE + 53;
  1081. CSSM_ALGID_CAST5 = CSSM_ALGID_NONE + 54;
  1082. CSSM_ALGID_GenericSecret = CSSM_ALGID_NONE + 55;
  1083. CSSM_ALGID_ConcatBaseAndKey = CSSM_ALGID_NONE + 56;
  1084. CSSM_ALGID_ConcatKeyAndBase = CSSM_ALGID_NONE + 57;
  1085. CSSM_ALGID_ConcatBaseAndData = CSSM_ALGID_NONE + 58;
  1086. CSSM_ALGID_ConcatDataAndBase = CSSM_ALGID_NONE + 59;
  1087. CSSM_ALGID_XORBaseAndData = CSSM_ALGID_NONE + 60;
  1088. CSSM_ALGID_ExtractFromKey = CSSM_ALGID_NONE + 61;
  1089. CSSM_ALGID_SSL3PreMasterGen = CSSM_ALGID_NONE + 62;
  1090. CSSM_ALGID_SSL3MasterDerive = CSSM_ALGID_NONE + 63;
  1091. CSSM_ALGID_SSL3KeyAndMacDerive = CSSM_ALGID_NONE + 64;
  1092. CSSM_ALGID_SSL3MD5_MAC = CSSM_ALGID_NONE + 65;
  1093. CSSM_ALGID_SSL3SHA1_MAC = CSSM_ALGID_NONE + 66;
  1094. CSSM_ALGID_PKCS5_PBKDF1_MD5 = CSSM_ALGID_NONE + 67;
  1095. CSSM_ALGID_PKCS5_PBKDF1_MD2 = CSSM_ALGID_NONE + 68;
  1096. CSSM_ALGID_PKCS5_PBKDF1_SHA1 = CSSM_ALGID_NONE + 69;
  1097. CSSM_ALGID_WrapLynks = CSSM_ALGID_NONE + 70;
  1098. CSSM_ALGID_WrapSET_OAEP = CSSM_ALGID_NONE + 71;
  1099. CSSM_ALGID_BATON = CSSM_ALGID_NONE + 72;
  1100. CSSM_ALGID_ECDSA = CSSM_ALGID_NONE + 73;
  1101. CSSM_ALGID_MAYFLY = CSSM_ALGID_NONE + 74;
  1102. CSSM_ALGID_JUNIPER = CSSM_ALGID_NONE + 75;
  1103. CSSM_ALGID_FASTHASH = CSSM_ALGID_NONE + 76;
  1104. CSSM_ALGID_3DES = CSSM_ALGID_NONE + 77;
  1105. CSSM_ALGID_SSL3MD5 = CSSM_ALGID_NONE + 78;
  1106. CSSM_ALGID_SSL3SHA1 = CSSM_ALGID_NONE + 79;
  1107. CSSM_ALGID_FortezzaTimestamp = CSSM_ALGID_NONE + 80;
  1108. CSSM_ALGID_SHA1WithDSA = CSSM_ALGID_NONE + 81;
  1109. CSSM_ALGID_SHA1WithECDSA = CSSM_ALGID_NONE + 82;
  1110. CSSM_ALGID_DSA_BSAFE = CSSM_ALGID_NONE + 83;
  1111. CSSM_ALGID_ECDH = CSSM_ALGID_NONE + 84;
  1112. CSSM_ALGID_ECMQV = CSSM_ALGID_NONE + 85;
  1113. CSSM_ALGID_PKCS12_SHA1_PBE = CSSM_ALGID_NONE + 86;
  1114. CSSM_ALGID_ECNRA = CSSM_ALGID_NONE + 87;
  1115. CSSM_ALGID_SHA1WithECNRA = CSSM_ALGID_NONE + 88;
  1116. CSSM_ALGID_ECES = CSSM_ALGID_NONE + 89;
  1117. CSSM_ALGID_ECAES = CSSM_ALGID_NONE + 90;
  1118. CSSM_ALGID_SHA1HMAC = CSSM_ALGID_NONE + 91;
  1119. CSSM_ALGID_FIPS186Random = CSSM_ALGID_NONE + 92;
  1120. CSSM_ALGID_ECC = CSSM_ALGID_NONE + 93;
  1121. CSSM_ALGID_MQV = CSSM_ALGID_NONE + 94;
  1122. CSSM_ALGID_NRA = CSSM_ALGID_NONE + 95;
  1123. CSSM_ALGID_IntelPlatformRandom = CSSM_ALGID_NONE + 96;
  1124. CSSM_ALGID_UTC = CSSM_ALGID_NONE + 97;
  1125. CSSM_ALGID_HAVAL3 = CSSM_ALGID_NONE + 98;
  1126. CSSM_ALGID_HAVAL4 = CSSM_ALGID_NONE + 99;
  1127. CSSM_ALGID_HAVAL5 = CSSM_ALGID_NONE + 100;
  1128. CSSM_ALGID_TIGER = CSSM_ALGID_NONE + 101;
  1129. CSSM_ALGID_MD5HMAC = CSSM_ALGID_NONE + 102;
  1130. CSSM_ALGID_PKCS5_PBKDF2 = CSSM_ALGID_NONE + 103;
  1131. CSSM_ALGID_RUNNING_COUNTER = CSSM_ALGID_NONE + 104;
  1132. CSSM_ALGID_LAST = CSSM_ALGID_NONE + $7FFFFFFF;
  1133. { All algorithms IDs that are vendor specific, and not
  1134. part of the CSSM specification should be defined relative
  1135. to CSSM_ALGID_VENDOR_DEFINED. }
  1136. CSSM_ALGID_VENDOR_DEFINED = CSSM_ALGID_NONE + $80000000;
  1137. type
  1138. CSSM_ENCRYPT_MODE = UInt32;
  1139. const
  1140. CSSM_ALGMODE_NONE = 0;
  1141. CSSM_ALGMODE_CUSTOM = CSSM_ALGMODE_NONE + 1;
  1142. CSSM_ALGMODE_ECB = CSSM_ALGMODE_NONE + 2;
  1143. CSSM_ALGMODE_ECBPad = CSSM_ALGMODE_NONE + 3;
  1144. CSSM_ALGMODE_CBC = CSSM_ALGMODE_NONE + 4;
  1145. CSSM_ALGMODE_CBC_IV8 = CSSM_ALGMODE_NONE + 5;
  1146. CSSM_ALGMODE_CBCPadIV8 = CSSM_ALGMODE_NONE + 6;
  1147. CSSM_ALGMODE_CFB = CSSM_ALGMODE_NONE + 7;
  1148. CSSM_ALGMODE_CFB_IV8 = CSSM_ALGMODE_NONE + 8;
  1149. CSSM_ALGMODE_CFBPadIV8 = CSSM_ALGMODE_NONE + 9;
  1150. CSSM_ALGMODE_OFB = CSSM_ALGMODE_NONE + 10;
  1151. CSSM_ALGMODE_OFB_IV8 = CSSM_ALGMODE_NONE + 11;
  1152. CSSM_ALGMODE_OFBPadIV8 = CSSM_ALGMODE_NONE + 12;
  1153. CSSM_ALGMODE_COUNTER = CSSM_ALGMODE_NONE + 13;
  1154. CSSM_ALGMODE_BC = CSSM_ALGMODE_NONE + 14;
  1155. CSSM_ALGMODE_PCBC = CSSM_ALGMODE_NONE + 15;
  1156. CSSM_ALGMODE_CBCC = CSSM_ALGMODE_NONE + 16;
  1157. CSSM_ALGMODE_OFBNLF = CSSM_ALGMODE_NONE + 17;
  1158. CSSM_ALGMODE_PBC = CSSM_ALGMODE_NONE + 18;
  1159. CSSM_ALGMODE_PFB = CSSM_ALGMODE_NONE + 19;
  1160. CSSM_ALGMODE_CBCPD = CSSM_ALGMODE_NONE + 20;
  1161. CSSM_ALGMODE_PUBLIC_KEY = CSSM_ALGMODE_NONE + 21;
  1162. CSSM_ALGMODE_PRIVATE_KEY = CSSM_ALGMODE_NONE + 22;
  1163. CSSM_ALGMODE_SHUFFLE = CSSM_ALGMODE_NONE + 23;
  1164. CSSM_ALGMODE_ECB64 = CSSM_ALGMODE_NONE + 24;
  1165. CSSM_ALGMODE_CBC64 = CSSM_ALGMODE_NONE + 25;
  1166. CSSM_ALGMODE_OFB64 = CSSM_ALGMODE_NONE + 26;
  1167. CSSM_ALGMODE_CFB32 = CSSM_ALGMODE_NONE + 28;
  1168. CSSM_ALGMODE_CFB16 = CSSM_ALGMODE_NONE + 29;
  1169. CSSM_ALGMODE_CFB8 = CSSM_ALGMODE_NONE + 30;
  1170. CSSM_ALGMODE_WRAP = CSSM_ALGMODE_NONE + 31;
  1171. CSSM_ALGMODE_PRIVATE_WRAP = CSSM_ALGMODE_NONE + 32;
  1172. CSSM_ALGMODE_RELAYX = CSSM_ALGMODE_NONE + 33;
  1173. CSSM_ALGMODE_ECB128 = CSSM_ALGMODE_NONE + 34;
  1174. CSSM_ALGMODE_ECB96 = CSSM_ALGMODE_NONE + 35;
  1175. CSSM_ALGMODE_CBC128 = CSSM_ALGMODE_NONE + 36;
  1176. CSSM_ALGMODE_OAEP_HASH = CSSM_ALGMODE_NONE + 37;
  1177. CSSM_ALGMODE_PKCS1_EME_V15 = CSSM_ALGMODE_NONE + 38;
  1178. CSSM_ALGMODE_PKCS1_EME_OAEP = CSSM_ALGMODE_NONE + 39;
  1179. CSSM_ALGMODE_PKCS1_EMSA_V15 = CSSM_ALGMODE_NONE + 40;
  1180. CSSM_ALGMODE_ISO_9796 = CSSM_ALGMODE_NONE + 41;
  1181. CSSM_ALGMODE_X9_31 = CSSM_ALGMODE_NONE + 42;
  1182. CSSM_ALGMODE_LAST = CSSM_ALGMODE_NONE + $7FFFFFFF;
  1183. { All algorithms modes that are vendor specific, and
  1184. not part of the CSSM specification should be defined
  1185. relative to CSSM_ALGMODE_VENDOR_DEFINED. }
  1186. CSSM_ALGMODE_VENDOR_DEFINED = CSSM_ALGMODE_NONE + $80000000;
  1187. type
  1188. CSSM_KEYHEADER_PTR = ^cssm_keyheader;
  1189. CSSM_KEYHEADERPtr = ^cssm_keyheader;
  1190. cssm_keyheader = record
  1191. HeaderVersion: CSSM_HEADERVERSION; { Key header version }
  1192. CspId: CSSM_GUID; { GUID of CSP generating the key }
  1193. BlobType: CSSM_KEYBLOB_TYPE; { See BlobType enum }
  1194. Format: CSSM_KEYBLOB_FORMAT; { Raw or Reference format }
  1195. AlgorithmId: CSSM_ALGORITHMS; { Algorithm ID of key }
  1196. KeyClass: CSSM_KEYCLASS; { Public/Private/Secret, etc. }
  1197. LogicalKeySizeInBits: UInt32; { Logical key size in bits }
  1198. KeyAttr: CSSM_KEYATTR_FLAGS; { Attribute flags }
  1199. KeyUsage: CSSM_KEYUSE; { Key use flags }
  1200. StartDate: CSSM_DATE; { Effective date of key }
  1201. EndDate: CSSM_DATE; { Expiration date of key }
  1202. WrapAlgorithmId: CSSM_ALGORITHMS; { == CSSM_ALGID_NONE if clear key }
  1203. WrapMode: CSSM_ENCRYPT_MODE; { if alg supports multiple wrapping modes }
  1204. Reserved: UInt32;
  1205. end;
  1206. (* DEPRECATED_IN_MAC_OS_X_VERSION_10_7_AND_LATER *)
  1207. type
  1208. CSSM_KEY_PTR = ^cssm_key;
  1209. CSSM_KEYPtr = ^cssm_key;
  1210. cssm_key = record
  1211. KeyHeader: CSSM_KEYHEADER; { Fixed length key header }
  1212. KeyData: CSSM_DATA; { Variable length key data }
  1213. end;
  1214. (* DEPRECATED_IN_MAC_OS_X_VERSION_10_7_AND_LATER *)
  1215. type
  1216. CSSM_WRAP_KEY = CSSM_KEY;
  1217. CSSM_WRAP_KEY_PTR = ^CSSM_KEY;
  1218. CSSM_WRAP_KEYPtr = ^CSSM_KEY;
  1219. type
  1220. CSSM_CSPTYPE = UInt32;
  1221. const
  1222. CSSM_CSP_SOFTWARE = 1;
  1223. CSSM_CSP_HARDWARE = CSSM_CSP_SOFTWARE + 1;
  1224. CSSM_CSP_HYBRID = CSSM_CSP_SOFTWARE + 2;
  1225. { From DL. }
  1226. type
  1227. CSSM_DL_DB_HANDLE_PTR = ^cssm_dl_db_handle;
  1228. CSSM_DL_DB_HANDLEPtr = ^cssm_dl_db_handle;
  1229. cssm_dl_db_handle = record
  1230. DLHandle: CSSM_DL_HANDLE;
  1231. DBHandle: CSSM_DB_HANDLE;
  1232. end;
  1233. (* DEPRECATED_IN_MAC_OS_X_VERSION_10_7_AND_LATER *)
  1234. type
  1235. CSSM_CONTEXT_TYPE = UInt32;
  1236. const
  1237. CSSM_ALGCLASS_NONE = 0;
  1238. CSSM_ALGCLASS_CUSTOM = CSSM_ALGCLASS_NONE + 1;
  1239. CSSM_ALGCLASS_SIGNATURE = CSSM_ALGCLASS_NONE + 2;
  1240. CSSM_ALGCLASS_SYMMETRIC = CSSM_ALGCLASS_NONE + 3;
  1241. CSSM_ALGCLASS_DIGEST = CSSM_ALGCLASS_NONE + 4;
  1242. CSSM_ALGCLASS_RANDOMGEN = CSSM_ALGCLASS_NONE + 5;
  1243. CSSM_ALGCLASS_UNIQUEGEN = CSSM_ALGCLASS_NONE + 6;
  1244. CSSM_ALGCLASS_MAC = CSSM_ALGCLASS_NONE + 7;
  1245. CSSM_ALGCLASS_ASYMMETRIC = CSSM_ALGCLASS_NONE + 8;
  1246. CSSM_ALGCLASS_KEYGEN = CSSM_ALGCLASS_NONE + 9;
  1247. CSSM_ALGCLASS_DERIVEKEY = CSSM_ALGCLASS_NONE + 10;
  1248. { Attribute data type tags }
  1249. const
  1250. CSSM_ATTRIBUTE_DATA_NONE = $00000000;
  1251. CSSM_ATTRIBUTE_DATA_UINT32 = $10000000;
  1252. CSSM_ATTRIBUTE_DATA_CSSM_DATA = $20000000;
  1253. CSSM_ATTRIBUTE_DATA_CRYPTO_DATA = $30000000;
  1254. CSSM_ATTRIBUTE_DATA_KEY = $40000000;
  1255. CSSM_ATTRIBUTE_DATA_STRING = $50000000;
  1256. CSSM_ATTRIBUTE_DATA_DATE = $60000000;
  1257. CSSM_ATTRIBUTE_DATA_RANGE = $70000000;
  1258. CSSM_ATTRIBUTE_DATA_ACCESS_CREDENTIALS = $80000000;
  1259. CSSM_ATTRIBUTE_DATA_VERSION = $01000000;
  1260. CSSM_ATTRIBUTE_DATA_DL_DB_HANDLE = $02000000;
  1261. CSSM_ATTRIBUTE_DATA_KR_PROFILE = $03000000;
  1262. CSSM_ATTRIBUTE_TYPE_MASK = $FF000000;
  1263. type
  1264. CSSM_ATTRIBUTE_TYPE = UInt32;
  1265. const
  1266. CSSM_ATTRIBUTE_NONE = 0;
  1267. CSSM_ATTRIBUTE_CUSTOM = CSSM_ATTRIBUTE_DATA_CSSM_DATA or 1;
  1268. CSSM_ATTRIBUTE_DESCRIPTION = CSSM_ATTRIBUTE_DATA_STRING or 2;
  1269. CSSM_ATTRIBUTE_KEY = CSSM_ATTRIBUTE_DATA_KEY or 3;
  1270. CSSM_ATTRIBUTE_INIT_VECTOR = CSSM_ATTRIBUTE_DATA_CSSM_DATA or 4;
  1271. CSSM_ATTRIBUTE_SALT = CSSM_ATTRIBUTE_DATA_CSSM_DATA or 5;
  1272. CSSM_ATTRIBUTE_PADDING = CSSM_ATTRIBUTE_DATA_UINT32 or 6;
  1273. CSSM_ATTRIBUTE_RANDOM = CSSM_ATTRIBUTE_DATA_CSSM_DATA or 7;
  1274. CSSM_ATTRIBUTE_SEED = CSSM_ATTRIBUTE_DATA_CRYPTO_DATA or 8;
  1275. CSSM_ATTRIBUTE_PASSPHRASE = CSSM_ATTRIBUTE_DATA_CRYPTO_DATA or 9;
  1276. CSSM_ATTRIBUTE_KEY_LENGTH = CSSM_ATTRIBUTE_DATA_UINT32 or 10;
  1277. CSSM_ATTRIBUTE_KEY_LENGTH_RANGE = CSSM_ATTRIBUTE_DATA_RANGE or 11;
  1278. CSSM_ATTRIBUTE_BLOCK_SIZE = CSSM_ATTRIBUTE_DATA_UINT32 or 12;
  1279. CSSM_ATTRIBUTE_OUTPUT_SIZE = CSSM_ATTRIBUTE_DATA_UINT32 or 13;
  1280. CSSM_ATTRIBUTE_ROUNDS = CSSM_ATTRIBUTE_DATA_UINT32 or 14;
  1281. CSSM_ATTRIBUTE_IV_SIZE = CSSM_ATTRIBUTE_DATA_UINT32 or 15;
  1282. CSSM_ATTRIBUTE_ALG_PARAMS = CSSM_ATTRIBUTE_DATA_CSSM_DATA or 16;
  1283. CSSM_ATTRIBUTE_LABEL = CSSM_ATTRIBUTE_DATA_CSSM_DATA or 17;
  1284. CSSM_ATTRIBUTE_KEY_TYPE = CSSM_ATTRIBUTE_DATA_UINT32 or 18;
  1285. CSSM_ATTRIBUTE_MODE = CSSM_ATTRIBUTE_DATA_UINT32 or 19;
  1286. CSSM_ATTRIBUTE_EFFECTIVE_BITS = CSSM_ATTRIBUTE_DATA_UINT32 or 20;
  1287. CSSM_ATTRIBUTE_START_DATE = CSSM_ATTRIBUTE_DATA_DATE or 21;
  1288. CSSM_ATTRIBUTE_END_DATE = CSSM_ATTRIBUTE_DATA_DATE or 22;
  1289. CSSM_ATTRIBUTE_KEYUSAGE = CSSM_ATTRIBUTE_DATA_UINT32 or 23;
  1290. CSSM_ATTRIBUTE_KEYATTR = CSSM_ATTRIBUTE_DATA_UINT32 or 24;
  1291. CSSM_ATTRIBUTE_VERSION = CSSM_ATTRIBUTE_DATA_VERSION or 25;
  1292. CSSM_ATTRIBUTE_PRIME = CSSM_ATTRIBUTE_DATA_CSSM_DATA or 26;
  1293. CSSM_ATTRIBUTE_BASE = CSSM_ATTRIBUTE_DATA_CSSM_DATA or 27;
  1294. CSSM_ATTRIBUTE_SUBPRIME = CSSM_ATTRIBUTE_DATA_CSSM_DATA or 28;
  1295. CSSM_ATTRIBUTE_ALG_ID = CSSM_ATTRIBUTE_DATA_UINT32 or 29;
  1296. CSSM_ATTRIBUTE_ITERATION_COUNT = CSSM_ATTRIBUTE_DATA_UINT32 or 30;
  1297. CSSM_ATTRIBUTE_ROUNDS_RANGE = CSSM_ATTRIBUTE_DATA_RANGE or 31;
  1298. CSSM_ATTRIBUTE_KRPROFILE_LOCAL = CSSM_ATTRIBUTE_DATA_KR_PROFILE or 32;
  1299. CSSM_ATTRIBUTE_KRPROFILE_REMOTE = CSSM_ATTRIBUTE_DATA_KR_PROFILE or 33;
  1300. CSSM_ATTRIBUTE_CSP_HANDLE = CSSM_ATTRIBUTE_DATA_UINT32 or 34;
  1301. CSSM_ATTRIBUTE_DL_DB_HANDLE = CSSM_ATTRIBUTE_DATA_DL_DB_HANDLE or 35;
  1302. CSSM_ATTRIBUTE_ACCESS_CREDENTIALS = CSSM_ATTRIBUTE_DATA_ACCESS_CREDENTIALS or 36;
  1303. CSSM_ATTRIBUTE_PUBLIC_KEY_FORMAT = CSSM_ATTRIBUTE_DATA_UINT32 or 37;
  1304. CSSM_ATTRIBUTE_PRIVATE_KEY_FORMAT = CSSM_ATTRIBUTE_DATA_UINT32 or 38;
  1305. CSSM_ATTRIBUTE_SYMMETRIC_KEY_FORMAT = CSSM_ATTRIBUTE_DATA_UINT32 or 39;
  1306. CSSM_ATTRIBUTE_WRAPPED_KEY_FORMAT = CSSM_ATTRIBUTE_DATA_UINT32 or 40;
  1307. type
  1308. CSSM_PADDING = UInt32;
  1309. const
  1310. CSSM_PADDING_NONE = 0;
  1311. CSSM_PADDING_CUSTOM = CSSM_PADDING_NONE + 1;
  1312. CSSM_PADDING_ZERO = CSSM_PADDING_NONE + 2;
  1313. CSSM_PADDING_ONE = CSSM_PADDING_NONE + 3;
  1314. CSSM_PADDING_ALTERNATE = CSSM_PADDING_NONE + 4;
  1315. CSSM_PADDING_FF = CSSM_PADDING_NONE + 5;
  1316. CSSM_PADDING_PKCS5 = CSSM_PADDING_NONE + 6;
  1317. CSSM_PADDING_PKCS7 = CSSM_PADDING_NONE + 7;
  1318. CSSM_PADDING_CIPHERSTEALING = CSSM_PADDING_NONE + 8;
  1319. CSSM_PADDING_RANDOM = CSSM_PADDING_NONE + 9;
  1320. CSSM_PADDING_PKCS1 = CSSM_PADDING_NONE + 10;
  1321. { All padding types that are vendor specific, and not
  1322. part of the CSSM specification should be defined
  1323. relative to CSSM_PADDING_VENDOR_DEFINED. }
  1324. CSSM_PADDING_VENDOR_DEFINED = CSSM_PADDING_NONE + $80000000;
  1325. type
  1326. CSSM_KEY_TYPE = CSSM_ALGORITHMS;
  1327. type
  1328. __embedded_cssm_context_attribute = record
  1329. case Integer of
  1330. 0: (String_: CStringPtr);
  1331. 1: (Uint32: UInt32_fix);
  1332. 2: (AccessCredentials: CSSM_ACCESS_CREDENTIALS_PTR);
  1333. 3: (Key: CSSM_KEY_PTR);
  1334. 4: (Data: CSSM_DATA_PTR);
  1335. 5: (Padding: CSSM_PADDING);
  1336. 6: (Date: CSSM_DATE_PTR);
  1337. 7: (Range: CSSM_RANGE_PTR);
  1338. 8: (CryptoData: CSSM_CRYPTO_DATA_PTR);
  1339. 9: (Version: CSSM_VERSION_PTR);
  1340. 10: (DLDBHandle: CSSM_DL_DB_HANDLE_PTR);
  1341. 11: (KRProfile: UnivPtr {cssm_kr_profile_ptr});
  1342. end;
  1343. CSSM_CONTEXT_ATTRIBUTE_PTR = ^cssm_context_attribute;
  1344. CSSM_CONTEXT_ATTRIBUTEPtr = ^cssm_context_attribute;
  1345. cssm_context_attribute = record
  1346. AttributeType: CSSM_ATTRIBUTE_TYPE;
  1347. AttributeLength: UInt32;
  1348. Attribute: __embedded_cssm_context_attribute;
  1349. end;
  1350. type
  1351. CSSM_CONTEXT_PTR = ^cssm_context;
  1352. CSSM_CONTEXTPtr = ^cssm_context;
  1353. cssm_context = record
  1354. ContextType: CSSM_CONTEXT_TYPE;
  1355. AlgorithmType: CSSM_ALGORITHMS;
  1356. NumberOfAttributes: UInt32;
  1357. ContextAttributes: CSSM_CONTEXT_ATTRIBUTE_PTR;
  1358. CSPHandle: CSSM_CSP_HANDLE;
  1359. Privileged: CSSM_BOOL;
  1360. EncryptionProhibited: uint32 {CSSM_KR_POLICY_FLAGS} ;
  1361. WorkFactor: UInt32;
  1362. Reserved: UInt32; { reserved for future use }
  1363. end;
  1364. (* DEPRECATED_IN_MAC_OS_X_VERSION_10_7_AND_LATER *)
  1365. type
  1366. CSSM_SC_FLAGS = UInt32;
  1367. const
  1368. CSSM_CSP_TOK_RNG = $00000001;
  1369. CSSM_CSP_TOK_CLOCK_EXISTS = $00000040;
  1370. type
  1371. CSSM_CSP_READER_FLAGS = UInt32;
  1372. const
  1373. CSSM_CSP_RDR_TOKENPRESENT = $00000001;
  1374. { Token is present in reader/slot }
  1375. CSSM_CSP_RDR_EXISTS = $00000002;
  1376. { Device is a reader with a
  1377. removable token }
  1378. CSSM_CSP_RDR_HW = $00000004;
  1379. { Slot is a hardware slot }
  1380. type
  1381. CSSM_CSP_FLAGS = UInt32;
  1382. const
  1383. CSSM_CSP_TOK_WRITE_PROTECTED = $00000002;
  1384. CSSM_CSP_TOK_LOGIN_REQUIRED = $00000004;
  1385. CSSM_CSP_TOK_USER_PIN_INITIALIZED = $00000008;
  1386. CSSM_CSP_TOK_PROT_AUTHENTICATION = $00000100;
  1387. CSSM_CSP_TOK_USER_PIN_EXPIRED = $00100000;
  1388. CSSM_CSP_TOK_SESSION_KEY_PASSWORD = $00200000;
  1389. CSSM_CSP_TOK_PRIVATE_KEY_PASSWORD = $00400000;
  1390. CSSM_CSP_STORES_PRIVATE_KEYS = $01000000;
  1391. CSSM_CSP_STORES_PUBLIC_KEYS = $02000000;
  1392. CSSM_CSP_STORES_SESSION_KEYS = $04000000;
  1393. CSSM_CSP_STORES_CERTIFICATES = $08000000;
  1394. CSSM_CSP_STORES_GENERIC = $10000000;
  1395. type
  1396. CSSM_PKCS_OAEP_MGF = UInt32;
  1397. const
  1398. CSSM_PKCS_OAEP_MGF_NONE = 0;
  1399. CSSM_PKCS_OAEP_MGF1_SHA1 = CSSM_PKCS_OAEP_MGF_NONE + 1;
  1400. CSSM_PKCS_OAEP_MGF1_MD5 = CSSM_PKCS_OAEP_MGF_NONE + 2;
  1401. type
  1402. CSSM_PKCS_OAEP_PSOURCE = UInt32;
  1403. const
  1404. CSSM_PKCS_OAEP_PSOURCE_NONE = 0;
  1405. CSSM_PKCS_OAEP_PSOURCE_Pspecified = CSSM_PKCS_OAEP_PSOURCE_NONE + 1;
  1406. type
  1407. CSSM_PKCS1_OAEP_PARAMS_PTR = ^cssm_pkcs1_oaep_params;
  1408. CSSM_PKCS1_OAEP_PARAMSPtr = ^cssm_pkcs1_oaep_params;
  1409. cssm_pkcs1_oaep_params = record
  1410. HashAlgorithm: UInt32;
  1411. HashParams: CSSM_DATA;
  1412. MGF: CSSM_PKCS_OAEP_MGF;
  1413. MGFParams: CSSM_DATA;
  1414. PSource: CSSM_PKCS_OAEP_PSOURCE;
  1415. PSourceParams: CSSM_DATA;
  1416. end;
  1417. (* DEPRECATED_IN_MAC_OS_X_VERSION_10_7_AND_LATER *)
  1418. type
  1419. CSSM_CSP_OPERATIONAL_STATISTICS_PTR = ^cssm_csp_operational_statistics;
  1420. CSSM_CSP_OPERATIONAL_STATISTICSPtr = ^cssm_csp_operational_statistics;
  1421. cssm_csp_operational_statistics = record
  1422. UserAuthenticated: CSSM_BOOL;
  1423. { CSSM_TRUE if the user is logged in to the token, CSSM_FALSE otherwise. }
  1424. DeviceFlags: CSSM_CSP_FLAGS;
  1425. TokenMaxSessionCount: UInt32; { Exported by Cryptoki modules. }
  1426. TokenOpenedSessionCount: UInt32;
  1427. TokenMaxRWSessionCount: UInt32;
  1428. TokenOpenedRWSessionCount: UInt32;
  1429. TokenTotalPublicMem: UInt32; { Storage space statistics. }
  1430. TokenFreePublicMem: UInt32;
  1431. TokenTotalPrivateMem: UInt32;
  1432. TokenFreePrivateMem: UInt32;
  1433. end;
  1434. (* DEPRECATED_IN_MAC_OS_X_VERSION_10_7_AND_LATER *)
  1435. { Indicates that the statistical value can not be revealed or is not
  1436. relevant for a CSP }
  1437. const
  1438. CSSM_VALUE_NOT_AVAILABLE = $FFFFFFFF;
  1439. type
  1440. CSSM_PKCS5_PBKDF1_PARAMS_PTR = ^cssm_pkcs5_pbkdf1_params;
  1441. CSSM_PKCS5_PBKDF1_PARAMSPtr = ^cssm_pkcs5_pbkdf1_params;
  1442. cssm_pkcs5_pbkdf1_params = record
  1443. Passphrase: CSSM_DATA;
  1444. InitVector: CSSM_DATA;
  1445. end;
  1446. (* DEPRECATED_IN_MAC_OS_X_VERSION_10_7_AND_LATER *)
  1447. type
  1448. CSSM_PKCS5_PBKDF2_PRF = UInt32;
  1449. const
  1450. CSSM_PKCS5_PBKDF2_PRF_HMAC_SHA1 = 0;
  1451. type
  1452. CSSM_PKCS5_PBKDF2_PARAMS_PTR = ^cssm_pkcs5_pbkdf2_params;
  1453. CSSM_PKCS5_PBKDF2_PARAMSPtr = ^cssm_pkcs5_pbkdf2_params;
  1454. cssm_pkcs5_pbkdf2_params = record
  1455. Passphrase: CSSM_DATA;
  1456. PseudoRandomFunction: CSSM_PKCS5_PBKDF2_PRF;
  1457. end;
  1458. (* DEPRECATED_IN_MAC_OS_X_VERSION_10_7_AND_LATER *)
  1459. type
  1460. CSSM_KEA_DERIVE_PARAMS_PTR = ^cssm_kea_derive_params;
  1461. CSSM_KEA_DERIVE_PARAMSPtr = ^cssm_kea_derive_params;
  1462. cssm_kea_derive_params = record
  1463. Rb: CSSM_DATA;
  1464. Yb: CSSM_DATA;
  1465. end;
  1466. (* DEPRECATED_IN_MAC_OS_X_VERSION_10_7_AND_LATER *)
  1467. { Data Types for Trust Policy Services }
  1468. type
  1469. CSSM_TP_AUTHORITY_ID_PTR = ^cssm_tp_authority_id;
  1470. CSSM_TP_AUTHORITY_IDPtr = ^cssm_tp_authority_id;
  1471. cssm_tp_authority_id = record
  1472. AuthorityCert: CSSM_DATAPtr;
  1473. AuthorityLocation: CSSM_NET_ADDRESS_PTR;
  1474. end;
  1475. (* DEPRECATED_IN_MAC_OS_X_VERSION_10_7_AND_LATER *)
  1476. type
  1477. CSSM_TP_AUTHORITY_REQUEST_TYPE = UInt32;
  1478. CSSM_TP_AUTHORITY_REQUEST_TYPE_PTR = ^UInt32;
  1479. CSSM_TP_AUTHORITY_REQUEST_TYPEPtr = ^UInt32;
  1480. const
  1481. CSSM_TP_AUTHORITY_REQUEST_CERTISSUE = $01;
  1482. CSSM_TP_AUTHORITY_REQUEST_CERTREVOKE = $02;
  1483. CSSM_TP_AUTHORITY_REQUEST_CERTSUSPEND = $03;
  1484. CSSM_TP_AUTHORITY_REQUEST_CERTRESUME = $04;
  1485. CSSM_TP_AUTHORITY_REQUEST_CERTVERIFY = $05;
  1486. CSSM_TP_AUTHORITY_REQUEST_CERTNOTARIZE = $06;
  1487. CSSM_TP_AUTHORITY_REQUEST_CERTUSERECOVER = $07;
  1488. CSSM_TP_AUTHORITY_REQUEST_CRLISSUE = $100;
  1489. type
  1490. CSSM_TP_VERIFICATION_RESULTS_CALLBACK = function( ModuleHandle: CSSM_MODULE_HANDLE; CallerCtx: UnivPtr; VerifiedCert: CSSM_DATA_PTR ): CSSM_RETURN;
  1491. { From CL }
  1492. type
  1493. CSSM_OID = CSSM_DATA;
  1494. CSSM_OID_PTR = ^CSSM_DATA;
  1495. CSSM_OIDPtr = ^CSSM_DATA;
  1496. type
  1497. CSSM_FIELD_PTR = ^cssm_field;
  1498. CSSM_FIELDPtr = ^cssm_field;
  1499. cssm_field = record
  1500. FieldOid: CSSM_OID;
  1501. FieldValue: CSSM_DATA;
  1502. end;
  1503. (* DEPRECATED_IN_MAC_OS_X_VERSION_10_7_AND_LATER *)
  1504. { TP Again. }
  1505. type
  1506. CSSM_TP_POLICYINFO_PTR = ^cssm_tp_policyinfo;
  1507. CSSM_TP_POLICYINFOPtr = ^cssm_tp_policyinfo;
  1508. cssm_tp_policyinfo = record
  1509. NumberOfPolicyIds: UInt32;
  1510. PolicyIds: CSSM_FIELD_PTR;
  1511. PolicyControl: UnivPtr;
  1512. end;
  1513. (* DEPRECATED_IN_MAC_OS_X_VERSION_10_7_AND_LATER *)
  1514. type
  1515. CSSM_TP_SERVICES = UInt32;
  1516. const
  1517. { bit masks for additional Authority services available through TP }
  1518. CSSM_TP_KEY_ARCHIVE = $0001; { archive cert & keys }
  1519. CSSM_TP_CERT_PUBLISH = $0002; { register cert in directory }
  1520. CSSM_TP_CERT_NOTIFY_RENEW = $0004; { notify at renewal time }
  1521. CSSM_TP_CERT_DIR_UPDATE = $0008; { update cert registry entry }
  1522. CSSM_TP_CRL_DISTRIBUTE = $0010; { push CRL to everyone }
  1523. type
  1524. CSSM_TP_ACTION = UInt32;
  1525. const
  1526. CSSM_TP_ACTION_DEFAULT = 0;
  1527. type
  1528. CSSM_TP_STOP_ON = UInt32;
  1529. const
  1530. CSSM_TP_STOP_ON_POLICY = 0; { use the pre-defined stopping criteria }
  1531. CSSM_TP_STOP_ON_NONE = 1; { evaluate all condition whether TRUE or FALSE }
  1532. CSSM_TP_STOP_ON_FIRST_PASS = 2; { stop evaluation at first TRUE }
  1533. CSSM_TP_STOP_ON_FIRST_FAIL = 3; { stop evaluation at first FALSE }
  1534. type
  1535. CSSM_TIMESTRING = CStringPtr;
  1536. { From DL. }
  1537. type
  1538. CSSM_DL_DB_LIST_PTR = ^cssm_dl_db_list;
  1539. CSSM_DL_DB_LISTPtr = ^cssm_dl_db_list;
  1540. cssm_dl_db_list = record
  1541. NumHandles: UInt32;
  1542. DLDBHandle: CSSM_DL_DB_HANDLE_PTR;
  1543. end;
  1544. (* DEPRECATED_IN_MAC_OS_X_VERSION_10_7_AND_LATER *)
  1545. { TP Again. }
  1546. type
  1547. CSSM_TP_CALLERAUTH_CONTEXT_PTR = ^cssm_tp_callerauth_context;
  1548. CSSM_TP_CALLERAUTH_CONTEXTPtr = ^cssm_tp_callerauth_context;
  1549. cssm_tp_callerauth_context = record
  1550. Policy: CSSM_TP_POLICYINFO;
  1551. VerifyTime: CSSM_TIMESTRING;
  1552. VerificationAbortOn: CSSM_TP_STOP_ON;
  1553. CallbackWithVerifiedCert: CSSM_TP_VERIFICATION_RESULTS_CALLBACK;
  1554. NumberOfAnchorCerts: UInt32;
  1555. AnchorCerts: CSSM_DATA_PTR;
  1556. DBList: CSSM_DL_DB_LIST_PTR;
  1557. CallerCredentials: CSSM_ACCESS_CREDENTIALS_PTR;
  1558. end;
  1559. (* DEPRECATED_IN_MAC_OS_X_VERSION_10_7_AND_LATER *)
  1560. type
  1561. CSSM_CRL_PARSE_FORMAT = UInt32;
  1562. CSSM_CRL_PARSE_FORMAT_PTR = ^UInt32;
  1563. CSSM_CRL_PARSE_FORMATPtr = ^UInt32;
  1564. const
  1565. CSSM_CRL_PARSE_FORMAT_NONE = $00;
  1566. CSSM_CRL_PARSE_FORMAT_CUSTOM = $01;
  1567. CSSM_CRL_PARSE_FORMAT_SEXPR = $02;
  1568. CSSM_CRL_PARSE_FORMAT_COMPLEX = $03;
  1569. CSSM_CRL_PARSE_FORMAT_OID_NAMED = $04;
  1570. CSSM_CRL_PARSE_FORMAT_TUPLE = $05;
  1571. CSSM_CRL_PARSE_FORMAT_MULTIPLE = $7FFE;
  1572. CSSM_CRL_PARSE_FORMAT_LAST = $7FFF;
  1573. { Applications wishing to define their own custom parse
  1574. format should create a uint32 value greater than the
  1575. CSSM_CL_CUSTOM_CRL_PARSE_FORMAT }
  1576. CSSM_CL_CUSTOM_CRL_PARSE_FORMAT = $8000;
  1577. { From CL. }
  1578. type
  1579. CSSM_CRL_TYPE = UInt32;
  1580. CSSM_CRL_TYPE_PTR = ^UInt32;
  1581. CSSM_CRL_TYPEPtr = ^UInt32;
  1582. const
  1583. CSSM_CRL_TYPE_UNKNOWN = $00;
  1584. CSSM_CRL_TYPE_X_509v1 = $01;
  1585. CSSM_CRL_TYPE_X_509v2 = $02;
  1586. CSSM_CRL_TYPE_SPKI = $03;
  1587. CSSM_CRL_TYPE_MULTIPLE = $7FFE;
  1588. type
  1589. CSSM_CRL_ENCODING = UInt32;
  1590. CSSM_CRL_ENCODING_PTR = ^UInt32;
  1591. CSSM_CRL_ENCODINGPtr = ^UInt32;
  1592. const
  1593. CSSM_CRL_ENCODING_UNKNOWN = $00;
  1594. CSSM_CRL_ENCODING_CUSTOM = $01;
  1595. CSSM_CRL_ENCODING_BER = $02;
  1596. CSSM_CRL_ENCODING_DER = $03;
  1597. CSSM_CRL_ENCODING_BLOOM = $04;
  1598. CSSM_CRL_ENCODING_SEXPR = $05;
  1599. CSSM_CRL_ENCODING_MULTIPLE = $7FFE;
  1600. type
  1601. CSSM_ENCODED_CRL_PTR = ^cssm_encoded_crl;
  1602. CSSM_ENCODED_CRLPtr = ^cssm_encoded_crl;
  1603. cssm_encoded_crl = record
  1604. CrlType: CSSM_CRL_TYPE; { type of CRL }
  1605. CrlEncoding: CSSM_CRL_ENCODING; { encoding for this packed CRL }
  1606. CrlBlob: CSSM_DATA; { packed CRL }
  1607. end;
  1608. (* DEPRECATED_IN_MAC_OS_X_VERSION_10_7_AND_LATER *)
  1609. { TP Again. }
  1610. type
  1611. CSSM_PARSED_CRL_PTR = ^cssm_parsed_crl;
  1612. CSSM_PARSED_CRLPtr = ^cssm_parsed_crl;
  1613. cssm_parsed_crl = record
  1614. CrlType: CSSM_CRL_TYPE; { CRL type }
  1615. ParsedCrlFormat: CSSM_CRL_PARSE_FORMAT;
  1616. { struct of ParsedCrl }
  1617. ParsedCrl: UnivPtr; { parsed CRL (to be typecast) }
  1618. end;
  1619. (* DEPRECATED_IN_MAC_OS_X_VERSION_10_7_AND_LATER *)
  1620. type
  1621. CSSM_CRL_PAIR_PTR = ^cssm_crl_pair;
  1622. CSSM_CRL_PAIRPtr = ^cssm_crl_pair;
  1623. cssm_crl_pair = record
  1624. EncodedCrl: CSSM_ENCODED_CRL; { an encoded CRL blob }
  1625. ParsedCrl: CSSM_PARSED_CRL; { equivalent parsed CRL }
  1626. end;
  1627. (* DEPRECATED_IN_MAC_OS_X_VERSION_10_7_AND_LATER *)
  1628. type
  1629. CSSM_CRLGROUP_TYPE = UInt32;
  1630. CSSM_CRLGROUP_TYPE_PTR = ^UInt32;
  1631. CSSM_CRLGROUP_TYPEPtr = ^UInt32;
  1632. const
  1633. CSSM_CRLGROUP_DATA = $00;
  1634. CSSM_CRLGROUP_ENCODED_CRL = $01;
  1635. CSSM_CRLGROUP_PARSED_CRL = $02;
  1636. CSSM_CRLGROUP_CRL_PAIR = $03;
  1637. type
  1638. __embedded_cssm_crlgroup = record
  1639. case Integer of
  1640. 0: (CrlList: CSSM_DATA_PTR); { CRL blob }
  1641. 1: (EncodedCrlList: CSSM_ENCODED_CRL_PTR); { CRL blob w/ separate type }
  1642. 2: (ParsedCrlList: CSSM_PARSED_CRL_PTR); { bushy, parsed CRL }
  1643. 3: (PairCrlList: CSSM_CRL_PAIR_PTR);
  1644. end;
  1645. CSSM_CRLGROUP_PTR = ^cssm_crlgroup;
  1646. CSSM_CRLGROUPPtr = ^cssm_crlgroup;
  1647. cssm_crlgroup = record
  1648. CrlType: CSSM_CRL_TYPE;
  1649. CrlEncoding: CSSM_CRL_ENCODING;
  1650. NumberOfCrls: UInt32;
  1651. GroupCrlList: __embedded_cssm_crlgroup;
  1652. end;
  1653. type
  1654. CSSM_FIELDGROUP_PTR = ^cssm_fieldgroup;
  1655. CSSM_FIELDGROUPPtr = ^cssm_fieldgroup;
  1656. cssm_fieldgroup = record
  1657. NumberOfFields: SInt32; { number of fields in the array }
  1658. Fields: CSSM_FIELD_PTR; { array of fields }
  1659. end;
  1660. (* DEPRECATED_IN_MAC_OS_X_VERSION_10_7_AND_LATER *)
  1661. type
  1662. CSSM_EVIDENCE_FORM = UInt32;
  1663. const
  1664. CSSM_EVIDENCE_FORM_UNSPECIFIC = $0;
  1665. CSSM_EVIDENCE_FORM_CERT = $1;
  1666. CSSM_EVIDENCE_FORM_CRL = $2;
  1667. CSSM_EVIDENCE_FORM_CERT_ID = $3;
  1668. CSSM_EVIDENCE_FORM_CRL_ID = $4;
  1669. CSSM_EVIDENCE_FORM_VERIFIER_TIME = $5;
  1670. CSSM_EVIDENCE_FORM_CRL_THISTIME = $6;
  1671. CSSM_EVIDENCE_FORM_CRL_NEXTTIME = $7;
  1672. CSSM_EVIDENCE_FORM_POLICYINFO = $8;
  1673. CSSM_EVIDENCE_FORM_TUPLEGROUP = $9;
  1674. type
  1675. CSSM_EVIDENCE_PTR = ^cssm_evidence;
  1676. CSSM_EVIDENCEPtr = ^cssm_evidence;
  1677. cssm_evidence = record
  1678. EvidenceForm: CSSM_EVIDENCE_FORM;
  1679. Evidence: UnivPtr; { Evidence content }
  1680. end;
  1681. (* DEPRECATED_IN_MAC_OS_X_VERSION_10_7_AND_LATER *)
  1682. type
  1683. CSSM_TP_VERIFY_CONTEXT_PTR = ^cssm_tp_verify_context;
  1684. CSSM_TP_VERIFY_CONTEXTPtr = ^cssm_tp_verify_context;
  1685. cssm_tp_verify_context = record
  1686. Action: CSSM_TP_ACTION;
  1687. ActionData: CSSM_DATA;
  1688. Crls: CSSM_CRLGROUP;
  1689. Cred: CSSM_TP_CALLERAUTH_CONTEXT_PTR;
  1690. end;
  1691. (* DEPRECATED_IN_MAC_OS_X_VERSION_10_7_AND_LATER *)
  1692. type
  1693. CSSM_TP_VERIFY_CONTEXT_RESULT_PTR = ^cssm_tp_verify_context_result;
  1694. CSSM_TP_VERIFY_CONTEXT_RESULTPtr = ^cssm_tp_verify_context_result;
  1695. cssm_tp_verify_context_result = record
  1696. NumberOfEvidences: UInt32;
  1697. Evidence: CSSM_EVIDENCE_PTR;
  1698. end;
  1699. (* DEPRECATED_IN_MAC_OS_X_VERSION_10_7_AND_LATER *)
  1700. type
  1701. CSSM_TP_REQUEST_SET_PTR = ^cssm_tp_request_set;
  1702. CSSM_TP_REQUEST_SETPtr = ^cssm_tp_request_set;
  1703. cssm_tp_request_set = record
  1704. NumberOfRequests: UInt32;
  1705. Requests: UnivPtr;
  1706. end;
  1707. (* DEPRECATED_IN_MAC_OS_X_VERSION_10_7_AND_LATER *)
  1708. type
  1709. CSSM_TP_RESULT_SET_PTR = ^cssm_tp_result_set;
  1710. CSSM_TP_RESULT_SETPtr = ^cssm_tp_result_set;
  1711. cssm_tp_result_set = record
  1712. NumberOfResults: UInt32;
  1713. Results: UnivPtr;
  1714. end;
  1715. (* DEPRECATED_IN_MAC_OS_X_VERSION_10_7_AND_LATER *)
  1716. type
  1717. CSSM_TP_CONFIRM_STATUS = UInt32;
  1718. CSSM_TP_CONFIRM_STATUS_PTR = ^UInt32;
  1719. CSSM_TP_CONFIRM_STATUSPtr = ^UInt32;
  1720. const
  1721. CSSM_TP_CONFIRM_STATUS_UNKNOWN = $0;
  1722. { indeterminate }
  1723. CSSM_TP_CONFIRM_ACCEPT = $1;
  1724. { accept results of executing a
  1725. submit-retrieve function pair }
  1726. CSSM_TP_CONFIRM_REJECT = $2;
  1727. { reject results of executing a
  1728. submit-retrieve function pair }
  1729. type
  1730. CSSM_TP_CONFIRM_RESPONSE_PTR = ^cssm_tp_confirm_response;
  1731. CSSM_TP_CONFIRM_RESPONSEPtr = ^cssm_tp_confirm_response;
  1732. cssm_tp_confirm_response = record
  1733. NumberOfResponses: UInt32;
  1734. Responses: CSSM_TP_CONFIRM_STATUS_PTR;
  1735. end;
  1736. (* DEPRECATED_IN_MAC_OS_X_VERSION_10_7_AND_LATER *)
  1737. const
  1738. CSSM_ESTIMATED_TIME_UNKNOWN = -1;
  1739. const
  1740. CSSM_ELAPSED_TIME_UNKNOWN = -1;
  1741. CSSM_ELAPSED_TIME_COMPLETE = -2;
  1742. type
  1743. CSSM_TP_CERTISSUE_INPUT_PTR = ^cssm_tp_certissue_input;
  1744. CSSM_TP_CERTISSUE_INPUTPtr = ^cssm_tp_certissue_input;
  1745. cssm_tp_certissue_input = record
  1746. CSPSubserviceUid: CSSM_SUBSERVICE_UID;
  1747. CLHandle: CSSM_CL_HANDLE;
  1748. NumberOfTemplateFields: UInt32;
  1749. SubjectCertFields: CSSM_FIELD_PTR;
  1750. MoreServiceRequests: CSSM_TP_SERVICES;
  1751. NumberOfServiceControls: UInt32;
  1752. ServiceControls: CSSM_FIELD_PTR;
  1753. UserCredentials: CSSM_ACCESS_CREDENTIALS_PTR;
  1754. end;
  1755. (* DEPRECATED_IN_MAC_OS_X_VERSION_10_7_AND_LATER *)
  1756. type
  1757. CSSM_TP_CERTISSUE_STATUS = UInt32;
  1758. const
  1759. CSSM_TP_CERTISSUE_STATUS_UNKNOWN = $0;
  1760. { indeterminate }
  1761. CSSM_TP_CERTISSUE_OK = $1;
  1762. { cert issued as requested }
  1763. CSSM_TP_CERTISSUE_OKWITHCERTMODS = $2;
  1764. { cert issued but cert contents were
  1765. updated by the issuing authority }
  1766. CSSM_TP_CERTISSUE_OKWITHSERVICEMODS = $3;
  1767. { cert issued but some requested backend
  1768. services were not performed by the
  1769. issuing authority }
  1770. CSSM_TP_CERTISSUE_REJECTED = $4;
  1771. { cert was not issued due to some error
  1772. condition }
  1773. CSSM_TP_CERTISSUE_NOT_AUTHORIZED = $5;
  1774. { cert was not issued, the request was
  1775. not authorized }
  1776. CSSM_TP_CERTISSUE_WILL_BE_REVOKED = $6;
  1777. { cert was issued, but TP has initiated
  1778. a revocation of the certificate }
  1779. type
  1780. CSSM_TP_CERTISSUE_OUTPUT_PTR = ^cssm_tp_certissue_output;
  1781. CSSM_TP_CERTISSUE_OUTPUTPtr = ^cssm_tp_certissue_output;
  1782. cssm_tp_certissue_output = record
  1783. IssueStatus: CSSM_TP_CERTISSUE_STATUS;
  1784. CertGroup: CSSM_CERTGROUP_PTR;
  1785. PerformedServiceRequests: CSSM_TP_SERVICES;
  1786. end;
  1787. (* DEPRECATED_IN_MAC_OS_X_VERSION_10_7_AND_LATER *)
  1788. type
  1789. CSSM_TP_CERTCHANGE_ACTION = UInt32;
  1790. const
  1791. CSSM_TP_CERTCHANGE_NONE = $0; { no change }
  1792. CSSM_TP_CERTCHANGE_REVOKE = $1; { Revoke the certificate }
  1793. { This action type indicates a request to revoke a single
  1794. certificate. Notice of the revocation operation remains
  1795. in affect until the certificate itself expires. Revocation
  1796. should be used to permanently remove a certificate from use. }
  1797. CSSM_TP_CERTCHANGE_HOLD = $2; { Hold/suspend the certificate }
  1798. { This action type indicates a request to suspend a
  1799. single certificate. A suspension operation implies
  1800. that the requester intends, at some time in the future,
  1801. to request that the certificate be released from hold,
  1802. making it available for use again. Placing a hold on
  1803. a certificate does not obligate the requester to
  1804. request a release. In practice, a certificate may
  1805. remain on hold until the certificate itself expires.
  1806. Revocation should be used to permanently remove a
  1807. certificate from use. }
  1808. CSSM_TP_CERTCHANGE_RELEASE = $3; { Release the held certificate }
  1809. { This action type indicates a request to release a
  1810. single certificate currently on hold. A release
  1811. operation makes a certificate available for use again.
  1812. Revocation should be used to permanently remove a
  1813. certificate from use. }
  1814. type
  1815. CSSM_TP_CERTCHANGE_REASON = UInt32;
  1816. const
  1817. CSSM_TP_CERTCHANGE_REASON_UNKNOWN = $0;
  1818. { unspecified }
  1819. CSSM_TP_CERTCHANGE_REASON_KEYCOMPROMISE = $1;
  1820. { Subject key believed to be compromised }
  1821. CSSM_TP_CERTCHANGE_REASON_CACOMPROMISE = $2;
  1822. { CAs key believed to be compromised }
  1823. CSSM_TP_CERTCHANGE_REASON_CEASEOPERATION = $3;
  1824. { certificate holder ceases operation under
  1825. the jurisdiction of this certificate }
  1826. CSSM_TP_CERTCHANGE_REASON_AFFILIATIONCHANGE = $4;
  1827. { certificate holder has moved from this
  1828. jurisdiction }
  1829. CSSM_TP_CERTCHANGE_REASON_SUPERCEDED = $5;
  1830. { certificate holder as issued a new, superceding
  1831. certificate }
  1832. CSSM_TP_CERTCHANGE_REASON_SUSPECTEDCOMPROMISE = $6;
  1833. { certificate could be compromised }
  1834. CSSM_TP_CERTCHANGE_REASON_HOLDRELEASE = $7;
  1835. { certificate holder resumes operation under the
  1836. jurisdiction of this certificate }
  1837. type
  1838. CSSM_TP_CERTCHANGE_INPUT_PTR = ^cssm_tp_certchange_input;
  1839. CSSM_TP_CERTCHANGE_INPUTPtr = ^cssm_tp_certchange_input;
  1840. cssm_tp_certchange_input = record
  1841. Action: CSSM_TP_CERTCHANGE_ACTION;
  1842. Reason: CSSM_TP_CERTCHANGE_REASON;
  1843. CLHandle: CSSM_CL_HANDLE;
  1844. Cert: CSSM_DATA_PTR;
  1845. ChangeInfo: CSSM_FIELD_PTR;
  1846. StartTime: CSSM_TIMESTRING;
  1847. CallerCredentials: CSSM_ACCESS_CREDENTIALS_PTR;
  1848. end;
  1849. (* DEPRECATED_IN_MAC_OS_X_VERSION_10_7_AND_LATER *)
  1850. type
  1851. CSSM_TP_CERTCHANGE_STATUS = UInt32;
  1852. const
  1853. CSSM_TP_CERTCHANGE_STATUS_UNKNOWN = $0;
  1854. { indeterminate }
  1855. CSSM_TP_CERTCHANGE_OK = $1;
  1856. { cert state was successfully changed
  1857. beginning at the specified time }
  1858. CSSM_TP_CERTCHANGE_OKWITHNEWTIME = $2;
  1859. { cert state was successfully changed,
  1860. at a modified effective time }
  1861. CSSM_TP_CERTCHANGE_WRONGCA = $3;
  1862. { cert state was not changed, the
  1863. selected CA is not authorized to
  1864. change the cert state }
  1865. CSSM_TP_CERTCHANGE_REJECTED = $4;
  1866. { cert state was not changed due to some
  1867. error condition }
  1868. CSSM_TP_CERTCHANGE_NOT_AUTHORIZED = $5;
  1869. { cert state was not changed, the
  1870. requester is not authorized to change
  1871. the cert state }
  1872. type
  1873. CSSM_TP_CERTCHANGE_OUTPUT_PTR = ^cssm_tp_certchange_output;
  1874. CSSM_TP_CERTCHANGE_OUTPUTPtr = ^cssm_tp_certchange_output;
  1875. cssm_tp_certchange_output = record
  1876. ActionStatus: CSSM_TP_CERTCHANGE_STATUS;
  1877. RevokeInfo: CSSM_FIELD;
  1878. end;
  1879. (* DEPRECATED_IN_MAC_OS_X_VERSION_10_7_AND_LATER *)
  1880. type
  1881. CSSM_TP_CERTVERIFY_INPUT_PTR = ^cssm_tp_certverify_input;
  1882. CSSM_TP_CERTVERIFY_INPUTPtr = ^cssm_tp_certverify_input;
  1883. cssm_tp_certverify_input = record
  1884. CLHandle: CSSM_CL_HANDLE;
  1885. Cert: CSSM_DATA_PTR;
  1886. VerifyContext: CSSM_TP_VERIFY_CONTEXT_PTR;
  1887. end;
  1888. (* DEPRECATED_IN_MAC_OS_X_VERSION_10_7_AND_LATER *)
  1889. type
  1890. CSSM_TP_CERTVERIFY_STATUS = UInt32;
  1891. const
  1892. CSSM_TP_CERTVERIFY_UNKNOWN = $0;
  1893. CSSM_TP_CERTVERIFY_VALID = $1;
  1894. CSSM_TP_CERTVERIFY_INVALID = $2;
  1895. CSSM_TP_CERTVERIFY_REVOKED = $3;
  1896. CSSM_TP_CERTVERIFY_SUSPENDED = $4;
  1897. CSSM_TP_CERTVERIFY_EXPIRED = $5;
  1898. CSSM_TP_CERTVERIFY_NOT_VALID_YET = $6;
  1899. CSSM_TP_CERTVERIFY_INVALID_AUTHORITY = $7;
  1900. CSSM_TP_CERTVERIFY_INVALID_SIGNATURE = $8;
  1901. CSSM_TP_CERTVERIFY_INVALID_CERT_VALUE = $9;
  1902. CSSM_TP_CERTVERIFY_INVALID_CERTGROUP = $A;
  1903. CSSM_TP_CERTVERIFY_INVALID_POLICY = $B;
  1904. CSSM_TP_CERTVERIFY_INVALID_POLICY_IDS = $C;
  1905. CSSM_TP_CERTVERIFY_INVALID_BASIC_CONSTRAINTS = $D;
  1906. CSSM_TP_CERTVERIFY_INVALID_CRL_DIST_PT = $E;
  1907. CSSM_TP_CERTVERIFY_INVALID_NAME_TREE = $F;
  1908. CSSM_TP_CERTVERIFY_UNKNOWN_CRITICAL_EXT = $10;
  1909. type
  1910. CSSM_TP_CERTVERIFY_OUTPUT_PTR = ^cssm_tp_certverify_output;
  1911. CSSM_TP_CERTVERIFY_OUTPUTPtr = ^cssm_tp_certverify_output;
  1912. cssm_tp_certverify_output = record
  1913. VerifyStatus: CSSM_TP_CERTVERIFY_STATUS;
  1914. NumberOfEvidence: UInt32;
  1915. Evidence: CSSM_EVIDENCE_PTR;
  1916. end;
  1917. (* DEPRECATED_IN_MAC_OS_X_VERSION_10_7_AND_LATER *)
  1918. type
  1919. CSSM_TP_CERTNOTARIZE_INPUT_PTR = ^cssm_tp_certnotarize_input;
  1920. CSSM_TP_CERTNOTARIZE_INPUTPtr = ^cssm_tp_certnotarize_input;
  1921. cssm_tp_certnotarize_input = record
  1922. CLHandle: CSSM_CL_HANDLE;
  1923. NumberOfFields: UInt32;
  1924. MoreFields: CSSM_FIELD_PTR;
  1925. SignScope: CSSM_FIELD_PTR;
  1926. ScopeSize: UInt32;
  1927. MoreServiceRequests: CSSM_TP_SERVICES;
  1928. NumberOfServiceControls: UInt32;
  1929. ServiceControls: CSSM_FIELD_PTR;
  1930. UserCredentials: CSSM_ACCESS_CREDENTIALS_PTR;
  1931. end;
  1932. (* DEPRECATED_IN_MAC_OS_X_VERSION_10_7_AND_LATER *)
  1933. type
  1934. CSSM_TP_CERTNOTARIZE_STATUS = UInt32;
  1935. const
  1936. CSSM_TP_CERTNOTARIZE_STATUS_UNKNOWN = $0;
  1937. { indeterminate }
  1938. CSSM_TP_CERTNOTARIZE_OK = $1;
  1939. { cert fields were added and the result was
  1940. notarized as requested }
  1941. CSSM_TP_CERTNOTARIZE_OKWITHOUTFIELDS = $2;
  1942. { non-conflicting cert fields were added,
  1943. conflicting cert fields were ignored,
  1944. and the result was notarized as requested }
  1945. CSSM_TP_CERTNOTARIZE_OKWITHSERVICEMODS = $3;
  1946. { cert fields were added and the result was
  1947. notarized as requested, but some requested
  1948. backend services were not performed by the
  1949. notary }
  1950. CSSM_TP_CERTNOTARIZE_REJECTED = $4;
  1951. { cert was not notarized due to some error
  1952. condition }
  1953. CSSM_TP_CERTNOTARIZE_NOT_AUTHORIZED = $5;
  1954. { cert was not notarized, the request was
  1955. not authorized }
  1956. type
  1957. CSSM_TP_CERTNOTARIZE_OUTPUT_PTR = ^cssm_tp_certnotarize_output;
  1958. CSSM_TP_CERTNOTARIZE_OUTPUTPtr = ^cssm_tp_certnotarize_output;
  1959. cssm_tp_certnotarize_output = record
  1960. NotarizeStatus: CSSM_TP_CERTNOTARIZE_STATUS;
  1961. NotarizedCertGroup: CSSM_CERTGROUP_PTR;
  1962. PerformedServiceRequests: CSSM_TP_SERVICES;
  1963. end;
  1964. (* DEPRECATED_IN_MAC_OS_X_VERSION_10_7_AND_LATER *)
  1965. type
  1966. CSSM_TP_CERTRECLAIM_INPUT_PTR = ^cssm_tp_certreclaim_input;
  1967. CSSM_TP_CERTRECLAIM_INPUTPtr = ^cssm_tp_certreclaim_input;
  1968. cssm_tp_certreclaim_input = record
  1969. CLHandle: CSSM_CL_HANDLE;
  1970. NumberOfSelectionFields: UInt32;
  1971. SelectionFields: CSSM_FIELD_PTR;
  1972. UserCredentials: CSSM_ACCESS_CREDENTIALS_PTR;
  1973. end;
  1974. (* DEPRECATED_IN_MAC_OS_X_VERSION_10_7_AND_LATER *)
  1975. type
  1976. CSSM_TP_CERTRECLAIM_STATUS = UInt32;
  1977. const
  1978. CSSM_TP_CERTRECLAIM_STATUS_UNKNOWN = $0;
  1979. { indeterminate }
  1980. CSSM_TP_CERTRECLAIM_OK = $1;
  1981. { a set of one or more certificates were
  1982. returned by the CA for local recovery
  1983. of the associated private key }
  1984. CSSM_TP_CERTRECLAIM_NOMATCH = $2;
  1985. { no certificates owned by the requester
  1986. were found matching the specified
  1987. selection fields }
  1988. CSSM_TP_CERTRECLAIM_REJECTED = $3;
  1989. { certificate reclamation failed due
  1990. to some error condition }
  1991. CSSM_TP_CERTRECLAIM_NOT_AUTHORIZED = $4;
  1992. { certificate reclamation was not
  1993. performed, the request was not
  1994. authorized }
  1995. type
  1996. CSSM_TP_CERTRECLAIM_OUTPUT_PTR = ^cssm_tp_certreclaim_output;
  1997. CSSM_TP_CERTRECLAIM_OUTPUTPtr = ^cssm_tp_certreclaim_output;
  1998. cssm_tp_certreclaim_output = record
  1999. ReclaimStatus: CSSM_TP_CERTRECLAIM_STATUS;
  2000. ReclaimedCertGroup: CSSM_CERTGROUP_PTR;
  2001. KeyCacheHandle: CSSM_LONG_HANDLE;
  2002. end;
  2003. (* DEPRECATED_IN_MAC_OS_X_VERSION_10_7_AND_LATER *)
  2004. type
  2005. CSSM_TP_CRLISSUE_INPUT_PTR = ^cssm_tp_crlissue_input;
  2006. CSSM_TP_CRLISSUE_INPUTPtr = ^cssm_tp_crlissue_input;
  2007. cssm_tp_crlissue_input = record
  2008. CLHandle: CSSM_CL_HANDLE;
  2009. CrlIdentifier: UInt32;
  2010. CrlThisTime: CSSM_TIMESTRING;
  2011. PolicyIdentifier: CSSM_FIELD_PTR;
  2012. CallerCredentials: CSSM_ACCESS_CREDENTIALS_PTR;
  2013. end;
  2014. (* DEPRECATED_IN_MAC_OS_X_VERSION_10_7_AND_LATER *)
  2015. type
  2016. CSSM_TP_CRLISSUE_STATUS = UInt32;
  2017. const
  2018. CSSM_TP_CRLISSUE_STATUS_UNKNOWN = $0;
  2019. { indeterminate }
  2020. CSSM_TP_CRLISSUE_OK = $1;
  2021. { a copy of the most current CRL was
  2022. issued as requested and the time for
  2023. issuing the next CRL is also returned }
  2024. CSSM_TP_CRLISSUE_NOT_CURRENT = $2;
  2025. { either no CRL has been issued since
  2026. the CRL identified in the request, or
  2027. it is not time to issue an updated CRL.
  2028. no CRL has been returned, but the time
  2029. for issuing the next CRL is included
  2030. in the results }
  2031. CSSM_TP_CRLISSUE_INVALID_DOMAIN = $3;
  2032. { CRL domain was not recognized or was
  2033. outside the CA jurisdiction, no CRL or
  2034. time for the next CRL has been
  2035. returned. }
  2036. CSSM_TP_CRLISSUE_UNKNOWN_IDENTIFIER = $4;
  2037. { unrecognized CRL identifier, no CRL or
  2038. time for the next CRL has been
  2039. returned. }
  2040. CSSM_TP_CRLISSUE_REJECTED = $5;
  2041. { CRL was not issued due to some error
  2042. condition, no CRL or time for the next
  2043. CRL has been returned. }
  2044. CSSM_TP_CRLISSUE_NOT_AUTHORIZED = $6;
  2045. { CRL was not issued, the request was
  2046. not authorized, no CRL or time for the
  2047. next CRL has been returned. }
  2048. type
  2049. CSSM_TP_CRLISSUE_OUTPUT_PTR = ^cssm_tp_crlissue_output;
  2050. CSSM_TP_CRLISSUE_OUTPUTPtr = ^cssm_tp_crlissue_output;
  2051. cssm_tp_crlissue_output = record
  2052. IssueStatus: CSSM_TP_CRLISSUE_STATUS;
  2053. Crl: CSSM_ENCODED_CRL_PTR;
  2054. CrlNextTime: CSSM_TIMESTRING;
  2055. end;
  2056. (* DEPRECATED_IN_MAC_OS_X_VERSION_10_7_AND_LATER *)
  2057. type
  2058. CSSM_TP_FORM_TYPE = UInt32;
  2059. const
  2060. CSSM_TP_FORM_TYPE_GENERIC = $0;
  2061. CSSM_TP_FORM_TYPE_REGISTRATION = $1;
  2062. { Data Types for Certificate Library Services }
  2063. type
  2064. CSSM_CL_TEMPLATE_TYPE = UInt32;
  2065. const
  2066. CSSM_CL_TEMPLATE_INTERMEDIATE_CERT = 1;
  2067. { for X509 certificates, a fully-formed
  2068. encoded certificate with empty signature field }
  2069. CSSM_CL_TEMPLATE_PKIX_CERTTEMPLATE = 2;
  2070. { as defined in RFC2511, section 5 CertTemplate }
  2071. type
  2072. CSSM_CERT_BUNDLE_TYPE = UInt32;
  2073. const
  2074. CSSM_CERT_BUNDLE_UNKNOWN = $00;
  2075. CSSM_CERT_BUNDLE_CUSTOM = $01;
  2076. CSSM_CERT_BUNDLE_PKCS7_SIGNED_DATA = $02;
  2077. CSSM_CERT_BUNDLE_PKCS7_SIGNED_ENVELOPED_DATA = $03;
  2078. CSSM_CERT_BUNDLE_PKCS12 = $04;
  2079. CSSM_CERT_BUNDLE_PFX = $05;
  2080. CSSM_CERT_BUNDLE_SPKI_SEQUENCE = $06;
  2081. CSSM_CERT_BUNDLE_PGP_KEYRING = $07;
  2082. CSSM_CERT_BUNDLE_LAST = $7FFF;
  2083. { Applications wishing to define their own custom certificate
  2084. bundle type should define and publicly document a uint32
  2085. value greater than CSSM_CL_CUSTOM_CERT_BUNDLE_TYPE }
  2086. CSSM_CL_CUSTOM_CERT_BUNDLE_TYPE = $8000;
  2087. type
  2088. CSSM_CERT_BUNDLE_ENCODING = UInt32;
  2089. const
  2090. CSSM_CERT_BUNDLE_ENCODING_UNKNOWN = $00;
  2091. CSSM_CERT_BUNDLE_ENCODING_CUSTOM = $01;
  2092. CSSM_CERT_BUNDLE_ENCODING_BER = $02;
  2093. CSSM_CERT_BUNDLE_ENCODING_DER = $03;
  2094. CSSM_CERT_BUNDLE_ENCODING_SEXPR = $04;
  2095. CSSM_CERT_BUNDLE_ENCODING_PGP = $05;
  2096. type
  2097. CSSM_CERT_BUNDLE_HEADER_PTR = ^cssm_cert_bundle_header;
  2098. CSSM_CERT_BUNDLE_HEADERPtr = ^cssm_cert_bundle_header;
  2099. cssm_cert_bundle_header = record
  2100. BundleType: CSSM_CERT_BUNDLE_TYPE;
  2101. BundleEncoding: CSSM_CERT_BUNDLE_ENCODING;
  2102. end;
  2103. (* DEPRECATED_IN_MAC_OS_X_VERSION_10_7_AND_LATER *)
  2104. type
  2105. CSSM_CERT_BUNDLE_PTR = ^cssm_cert_bundle;
  2106. CSSM_CERT_BUNDLEPtr = ^cssm_cert_bundle;
  2107. cssm_cert_bundle = record
  2108. BundleHeader: CSSM_CERT_BUNDLE_HEADER;
  2109. Bundle: CSSM_DATA;
  2110. end;
  2111. (* DEPRECATED_IN_MAC_OS_X_VERSION_10_7_AND_LATER *)
  2112. const
  2113. CSSM_FIELDVALUE_COMPLEX_DATA_TYPE = $FFFFFFFF;
  2114. { Data Types for Data Storage Library Services }
  2115. type
  2116. CSSM_DB_ATTRIBUTE_NAME_FORMAT = UInt32;
  2117. CSSM_DB_ATTRIBUTE_NAME_FORMAT_PTR = ^UInt32;
  2118. CSSM_DB_ATTRIBUTE_NAME_FORMATPtr = ^UInt32;
  2119. const
  2120. CSSM_DB_ATTRIBUTE_NAME_AS_STRING = 0;
  2121. CSSM_DB_ATTRIBUTE_NAME_AS_OID = 1;
  2122. CSSM_DB_ATTRIBUTE_NAME_AS_INTEGER = 2;
  2123. type
  2124. CSSM_DB_ATTRIBUTE_FORMAT = UInt32;
  2125. CSSM_DB_ATTRIBUTE_FORMAT_PTR = ^UInt32;
  2126. CSSM_DB_ATTRIBUTE_FORMATPtr = ^UInt32;
  2127. const
  2128. CSSM_DB_ATTRIBUTE_FORMAT_STRING = 0;
  2129. CSSM_DB_ATTRIBUTE_FORMAT_SINT32 = 1;
  2130. CSSM_DB_ATTRIBUTE_FORMAT_UINT32 = 2;
  2131. CSSM_DB_ATTRIBUTE_FORMAT_BIG_NUM = 3;
  2132. CSSM_DB_ATTRIBUTE_FORMAT_REAL = 4;
  2133. CSSM_DB_ATTRIBUTE_FORMAT_TIME_DATE = 5;
  2134. CSSM_DB_ATTRIBUTE_FORMAT_BLOB = 6;
  2135. CSSM_DB_ATTRIBUTE_FORMAT_MULTI_UINT32 = 7;
  2136. CSSM_DB_ATTRIBUTE_FORMAT_COMPLEX = 8;
  2137. type
  2138. __embeddded_cssm_db_attribute_info = record
  2139. case Integer of
  2140. 0: (AttributeName: CStringPtr); { e.g., "record label" }
  2141. 1: (AttributeOID: CSSM_OID); { e.g., CSSMOID_RECORDLABEL }
  2142. 2: (AttributeID: UInt32); { e.g., FourCharCode('recl') }
  2143. end;
  2144. CSSM_DB_ATTRIBUTE_INFO_PTR = ^cssm_db_attribute_info;
  2145. CSSM_DB_ATTRIBUTE_INFOPtr = ^cssm_db_attribute_info;
  2146. cssm_db_attribute_info = record
  2147. AttributeNameFormat: CSSM_DB_ATTRIBUTE_NAME_FORMAT;
  2148. AttributeFormat: __embeddded_cssm_db_attribute_info;
  2149. end;
  2150. type
  2151. CSSM_DB_ATTRIBUTE_DATA_PTR = ^cssm_db_attribute_data;
  2152. CSSM_DB_ATTRIBUTE_DATAPtr = ^cssm_db_attribute_data;
  2153. cssm_db_attribute_data = record
  2154. Info: CSSM_DB_ATTRIBUTE_INFO;
  2155. NumberOfValues: UInt32;
  2156. Value: CSSM_DATA_PTR;
  2157. end;
  2158. (* DEPRECATED_IN_MAC_OS_X_VERSION_10_7_AND_LATER *)
  2159. type
  2160. CSSM_DB_RECORDTYPE = UInt32;
  2161. const
  2162. { Schema Management Name Space Range Definition}
  2163. CSSM_DB_RECORDTYPE_SCHEMA_START = $00000000;
  2164. CSSM_DB_RECORDTYPE_SCHEMA_END = CSSM_DB_RECORDTYPE_SCHEMA_START + 4;
  2165. { Open Group Application Name Space Range Definition}
  2166. CSSM_DB_RECORDTYPE_OPEN_GROUP_START = $0000000A;
  2167. CSSM_DB_RECORDTYPE_OPEN_GROUP_END = CSSM_DB_RECORDTYPE_OPEN_GROUP_START + 8;
  2168. { Industry At Large Application Name Space Range Definition }
  2169. CSSM_DB_RECORDTYPE_APP_DEFINED_START = $80000000;
  2170. CSSM_DB_RECORDTYPE_APP_DEFINED_END = $ffffffff;
  2171. { Record Types defined in the Schema Management Name Space }
  2172. CSSM_DL_DB_SCHEMA_INFO = CSSM_DB_RECORDTYPE_SCHEMA_START + 0;
  2173. CSSM_DL_DB_SCHEMA_INDEXES = CSSM_DB_RECORDTYPE_SCHEMA_START + 1;
  2174. CSSM_DL_DB_SCHEMA_ATTRIBUTES = CSSM_DB_RECORDTYPE_SCHEMA_START + 2;
  2175. CSSM_DL_DB_SCHEMA_PARSING_MODULE = CSSM_DB_RECORDTYPE_SCHEMA_START + 3;
  2176. { Record Types defined in the Open Group Application Name Space }
  2177. CSSM_DL_DB_RECORD_ANY = CSSM_DB_RECORDTYPE_OPEN_GROUP_START + 0;
  2178. CSSM_DL_DB_RECORD_CERT = CSSM_DB_RECORDTYPE_OPEN_GROUP_START + 1;
  2179. CSSM_DL_DB_RECORD_CRL = CSSM_DB_RECORDTYPE_OPEN_GROUP_START + 2;
  2180. CSSM_DL_DB_RECORD_POLICY = CSSM_DB_RECORDTYPE_OPEN_GROUP_START + 3;
  2181. CSSM_DL_DB_RECORD_GENERIC = CSSM_DB_RECORDTYPE_OPEN_GROUP_START + 4;
  2182. CSSM_DL_DB_RECORD_PUBLIC_KEY = CSSM_DB_RECORDTYPE_OPEN_GROUP_START + 5;
  2183. CSSM_DL_DB_RECORD_PRIVATE_KEY = CSSM_DB_RECORDTYPE_OPEN_GROUP_START + 6;
  2184. CSSM_DL_DB_RECORD_SYMMETRIC_KEY = CSSM_DB_RECORDTYPE_OPEN_GROUP_START + 7;
  2185. CSSM_DL_DB_RECORD_ALL_KEYS = CSSM_DB_RECORDTYPE_OPEN_GROUP_START + 8;
  2186. const
  2187. CSSM_DB_CERT_USE_TRUSTED = $00000001; { application-defined as trusted }
  2188. CSSM_DB_CERT_USE_SYSTEM = $00000002; { the CSSM system cert }
  2189. CSSM_DB_CERT_USE_OWNER = $00000004; { private key owned by system user}
  2190. CSSM_DB_CERT_USE_REVOKED = $00000008; { revoked cert -15913 used w CRL APIs }
  2191. CSSM_DB_CERT_USE_SIGNING = $00000010; { use cert for signing only }
  2192. CSSM_DB_CERT_USE_PRIVACY = $00000020; { use cert for confidentiality only }
  2193. type
  2194. CSSM_DB_RECORD_ATTRIBUTE_INFO_PTR = ^cssm_db_record_attribute_info;
  2195. CSSM_DB_RECORD_ATTRIBUTE_INFOPtr = ^cssm_db_record_attribute_info;
  2196. cssm_db_record_attribute_info = record
  2197. DataRecordType: CSSM_DB_RECORDTYPE;
  2198. NumberOfAttributes: UInt32;
  2199. AttributeInfo: CSSM_DB_ATTRIBUTE_INFO_PTR;
  2200. end;
  2201. (* DEPRECATED_IN_MAC_OS_X_VERSION_10_7_AND_LATER *)
  2202. type
  2203. CSSM_DB_RECORD_ATTRIBUTE_DATA_PTR = ^cssm_db_record_attribute_data;
  2204. CSSM_DB_RECORD_ATTRIBUTE_DATAPtr = ^cssm_db_record_attribute_data;
  2205. cssm_db_record_attribute_data = record
  2206. DataRecordType: CSSM_DB_RECORDTYPE;
  2207. SemanticInformation: UInt32;
  2208. NumberOfAttributes: UInt32;
  2209. AttributeData: CSSM_DB_ATTRIBUTE_DATA_PTR;
  2210. end;
  2211. (* DEPRECATED_IN_MAC_OS_X_VERSION_10_7_AND_LATER *)
  2212. type
  2213. CSSM_DB_PARSING_MODULE_INFO_PTR = ^cssm_db_parsing_module_info;
  2214. CSSM_DB_PARSING_MODULE_INFOPtr = ^cssm_db_parsing_module_info;
  2215. cssm_db_parsing_module_info = record
  2216. RecordType: CSSM_DB_RECORDTYPE;
  2217. ModuleSubserviceUid: CSSM_SUBSERVICE_UID;
  2218. end;
  2219. (* DEPRECATED_IN_MAC_OS_X_VERSION_10_7_AND_LATER *)
  2220. type
  2221. CSSM_DB_INDEX_TYPE = UInt32;
  2222. const
  2223. CSSM_DB_INDEX_UNIQUE = 0;
  2224. CSSM_DB_INDEX_NONUNIQUE = 1;
  2225. type
  2226. CSSM_DB_INDEXED_DATA_LOCATION = UInt32;
  2227. const
  2228. CSSM_DB_INDEX_ON_UNKNOWN = 0;
  2229. CSSM_DB_INDEX_ON_ATTRIBUTE = 1;
  2230. CSSM_DB_INDEX_ON_RECORD = 2;
  2231. type
  2232. CSSM_DB_INDEX_INFO_PTR = ^cssm_db_index_info;
  2233. CSSM_DB_INDEX_INFOPtr = ^cssm_db_index_info;
  2234. cssm_db_index_info = record
  2235. IndexType: CSSM_DB_INDEX_TYPE;
  2236. IndexedDataLocation: CSSM_DB_INDEXED_DATA_LOCATION;
  2237. Info: CSSM_DB_ATTRIBUTE_INFO;
  2238. end;
  2239. (* DEPRECATED_IN_MAC_OS_X_VERSION_10_7_AND_LATER *)
  2240. type
  2241. CSSM_DB_UNIQUE_RECORD_PTR = ^cssm_db_unique_record;
  2242. CSSM_DB_UNIQUE_RECORDPtr = ^cssm_db_unique_record;
  2243. cssm_db_unique_record = record
  2244. RecordLocator: CSSM_DB_INDEX_INFO;
  2245. RecordIdentifier: CSSM_DATA;
  2246. end;
  2247. (* DEPRECATED_IN_MAC_OS_X_VERSION_10_7_AND_LATER *)
  2248. type
  2249. CSSM_DB_RECORD_INDEX_INFO_PTR = ^cssm_db_record_index_info;
  2250. CSSM_DB_RECORD_INDEX_INFOPtr = ^cssm_db_record_index_info;
  2251. cssm_db_record_index_info = record
  2252. DataRecordType: CSSM_DB_RECORDTYPE;
  2253. NumberOfIndexes: UInt32;
  2254. IndexInfo: CSSM_DB_INDEX_INFO_PTR;
  2255. end;
  2256. (* DEPRECATED_IN_MAC_OS_X_VERSION_10_7_AND_LATER *)
  2257. type
  2258. CSSM_DB_ACCESS_TYPE = UInt32;
  2259. CSSM_DB_ACCESS_TYPE_PTR = ^UInt32;
  2260. CSSM_DB_ACCESS_TYPEPtr = ^UInt32;
  2261. const
  2262. CSSM_DB_ACCESS_READ = $00001;
  2263. CSSM_DB_ACCESS_WRITE = $00002;
  2264. CSSM_DB_ACCESS_PRIVILEGED = $00004; { versus user mode }
  2265. type
  2266. CSSM_DB_MODIFY_MODE = UInt32;
  2267. const
  2268. CSSM_DB_MODIFY_ATTRIBUTE_NONE = 0;
  2269. CSSM_DB_MODIFY_ATTRIBUTE_ADD = CSSM_DB_MODIFY_ATTRIBUTE_NONE + 1;
  2270. CSSM_DB_MODIFY_ATTRIBUTE_DELETE = CSSM_DB_MODIFY_ATTRIBUTE_NONE + 2;
  2271. CSSM_DB_MODIFY_ATTRIBUTE_REPLACE = CSSM_DB_MODIFY_ATTRIBUTE_NONE + 3;
  2272. type
  2273. CSSM_DBINFO_PTR = ^cssm_dbinfo;
  2274. CSSM_DBINFOPtr = ^cssm_dbinfo;
  2275. cssm_dbinfo = record
  2276. { meta information about each record type stored in this
  2277. data store including meta information about record
  2278. attributes and indexes }
  2279. NumberOfRecordTypes: UInt32;
  2280. DefaultParsingModules: CSSM_DB_PARSING_MODULE_INFO_PTR;
  2281. RecordAttributeNames: CSSM_DB_RECORD_ATTRIBUTE_INFO_PTR;
  2282. RecordIndexes: CSSM_DB_RECORD_INDEX_INFO_PTR;
  2283. { access restrictions for opening this data store }
  2284. IsLocal: CSSM_BOOL;
  2285. AccessPath: CStringPtr; { URL, dir path, etc. }
  2286. Reserved: UnivPtr;
  2287. end;
  2288. (* DEPRECATED_IN_MAC_OS_X_VERSION_10_7_AND_LATER *)
  2289. type
  2290. CSSM_DB_OPERATOR = UInt32;
  2291. CSSM_DB_OPERATOR_PTR = ^UInt32;
  2292. CSSM_DB_OPERATORPtr = ^UInt32;
  2293. const
  2294. CSSM_DB_EQUAL = 0;
  2295. CSSM_DB_NOT_EQUAL = 1;
  2296. CSSM_DB_LESS_THAN = 2;
  2297. CSSM_DB_GREATER_THAN = 3;
  2298. CSSM_DB_CONTAINS = 4;
  2299. CSSM_DB_CONTAINS_INITIAL_SUBSTRING = 5;
  2300. CSSM_DB_CONTAINS_FINAL_SUBSTRING = 6;
  2301. type
  2302. CSSM_DB_CONJUNCTIVE = UInt32;
  2303. CSSM_DB_CONJUNCTIVE_PTR = ^UInt32;
  2304. CSSM_DB_CONJUNCTIVEPtr = ^UInt32;
  2305. const
  2306. CSSM_DB_NONE = 0;
  2307. CSSM_DB_AND = 1;
  2308. CSSM_DB_OR = 2;
  2309. type
  2310. CSSM_SELECTION_PREDICATE_PTR = ^cssm_selection_predicate;
  2311. CSSM_SELECTION_PREDICATEPtr = ^cssm_selection_predicate;
  2312. cssm_selection_predicate = record
  2313. DbOperator: CSSM_DB_OPERATOR;
  2314. Attribute: CSSM_DB_ATTRIBUTE_DATA;
  2315. end;
  2316. (* DEPRECATED_IN_MAC_OS_X_VERSION_10_7_AND_LATER *)
  2317. const
  2318. CSSM_QUERY_TIMELIMIT_NONE = 0;
  2319. const
  2320. CSSM_QUERY_SIZELIMIT_NONE = 0;
  2321. type
  2322. CSSM_QUERY_LIMITS_PTR = ^cssm_query_limits;
  2323. CSSM_QUERY_LIMITSPtr = ^cssm_query_limits;
  2324. cssm_query_limits = record
  2325. TimeLimit: UInt32; { in seconds }
  2326. SizeLimit: UInt32; { max. number of records to return }
  2327. end;
  2328. (* DEPRECATED_IN_MAC_OS_X_VERSION_10_7_AND_LATER *)
  2329. type
  2330. CSSM_QUERY_FLAGS = UInt32;
  2331. const
  2332. CSSM_QUERY_RETURN_DATA = $01;
  2333. type
  2334. CSSM_QUERY_PTR = ^cssm_query;
  2335. CSSM_QUERYPtr = ^cssm_query;
  2336. cssm_query = record
  2337. RecordType: CSSM_DB_RECORDTYPE;
  2338. Conjunctive: CSSM_DB_CONJUNCTIVE;
  2339. NumSelectionPredicates: UInt32;
  2340. SelectionPredicate: CSSM_SELECTION_PREDICATE_PTR;
  2341. QueryLimits: CSSM_QUERY_LIMITS;
  2342. QueryFlags: CSSM_QUERY_FLAGS;
  2343. end;
  2344. (* DEPRECATED_IN_MAC_OS_X_VERSION_10_7_AND_LATER *)
  2345. type
  2346. CSSM_DLTYPE = UInt32;
  2347. CSSM_DLTYPE_PTR = ^UInt32;
  2348. CSSM_DLTYPEPtr = ^UInt32;
  2349. const
  2350. CSSM_DL_UNKNOWN = 0;
  2351. CSSM_DL_CUSTOM = 1;
  2352. CSSM_DL_LDAP = 2;
  2353. CSSM_DL_ODBC = 3;
  2354. CSSM_DL_PKCS11 = 4;
  2355. CSSM_DL_FFS = 5; { flat file system }
  2356. CSSM_DL_MEMORY = 6;
  2357. CSSM_DL_REMOTEDIR = 7;
  2358. type
  2359. CSSM_DL_CUSTOM_ATTRIBUTES = UnivPtr;
  2360. CSSM_DL_LDAP_ATTRIBUTES = UnivPtr;
  2361. CSSM_DL_ODBC_ATTRIBUTES = UnivPtr;
  2362. CSSM_DL_FFS_ATTRIBUTES = UnivPtr;
  2363. type
  2364. CSSM_DL_PKCS11_ATTRIBUTE_PTR = ^cssm_dl_pkcs11_attributes;
  2365. CSSM_DL_PKCS11_ATTRIBUTEPtr = ^cssm_dl_pkcs11_attributes;
  2366. cssm_dl_pkcs11_attributes = record
  2367. DeviceAccessFlags: UInt32;
  2368. end;
  2369. (* DEPRECATED_IN_MAC_OS_X_VERSION_10_7_AND_LATER *)
  2370. const
  2371. CSSM_DB_DATASTORES_UNKNOWN = $FFFFFFFF;
  2372. type
  2373. CSSM_NAME_LIST_PTR = ^cssm_name_list;
  2374. CSSM_NAME_LISTPtr = ^cssm_name_list;
  2375. cssm_name_list = record
  2376. NumStrings: UInt32;
  2377. String_: CStringPtrPtr;
  2378. end;
  2379. (* DEPRECATED_IN_MAC_OS_X_VERSION_10_7_AND_LATER *)
  2380. type
  2381. CSSM_DB_RETRIEVAL_MODES = UInt32;
  2382. const
  2383. CSSM_DB_TRANSACTIONAL_MODE = 0;
  2384. CSSM_DB_FILESYSTEMSCAN_MODE = 1;
  2385. type
  2386. CSSM_DB_SCHEMA_ATTRIBUTE_INFO_PTR = ^cssm_db_schema_attribute_info;
  2387. CSSM_DB_SCHEMA_ATTRIBUTE_INFOPtr = ^cssm_db_schema_attribute_info;
  2388. cssm_db_schema_attribute_info = record
  2389. AttributeId: UInt32;
  2390. AttributeName: CStringPtr;
  2391. AttributeNameID: CSSM_OID;
  2392. DataType: CSSM_DB_ATTRIBUTE_FORMAT;
  2393. end;
  2394. (* DEPRECATED_IN_MAC_OS_X_VERSION_10_7_AND_LATER *)
  2395. type
  2396. CSSM_DB_SCHEMA_INDEX_INFO_PTR = ^cssm_db_schema_index_info;
  2397. CSSM_DB_SCHEMA_INDEX_INFOPtr = ^cssm_db_schema_index_info;
  2398. cssm_db_schema_index_info = record
  2399. AttributeId: UInt32;
  2400. IndexId: UInt32;
  2401. IndexType: CSSM_DB_INDEX_TYPE;
  2402. IndexedDataLocation: CSSM_DB_INDEXED_DATA_LOCATION;
  2403. end;
  2404. (* DEPRECATED_IN_MAC_OS_X_VERSION_10_7_AND_LATER *)
  2405. {$endc} {TARGET_OS_MAC}
  2406. {$ifc not defined MACOSALLINCLUDE or not MACOSALLINCLUDE}
  2407. end.
  2408. {$endc} {not MACOSALLINCLUDE}