1 | unit cryptlib;
|
---|
2 |
|
---|
3 | interface
|
---|
4 |
|
---|
5 | {****************************************************************************
|
---|
6 | * *
|
---|
7 | * Cryptlib external API interface *
|
---|
8 | * Copyright Peter Gutmann 1997-2005 *
|
---|
9 | * *
|
---|
10 | * adapted for Delphi Version 5 (32 bit) and Kylix Version 3 *
|
---|
11 | * by W. Gothier *
|
---|
12 | ****************************************************************************}
|
---|
13 |
|
---|
14 |
|
---|
15 | {------------------------------------------------------------------------------
|
---|
16 |
|
---|
17 | This file has been created automatically by a perl script from the file:
|
---|
18 |
|
---|
19 | "cryptlib.h" dated Mon Jul 18 02:47:56 2005, filesize = 82445.
|
---|
20 |
|
---|
21 | Please check twice that the file matches the version of cryptlib.h
|
---|
22 | in your cryptlib source! If this is not the right version, try to download an
|
---|
23 | update from "http://www.sogot.de/cryptlib/". If the filesize or file creation
|
---|
24 | date do not match, then please do not complain about problems.
|
---|
25 |
|
---|
26 | Published by W. Gothier,
|
---|
27 | mailto: cryptlib@gothier.net if you find errors in this file.
|
---|
28 |
|
---|
29 | -------------------------------------------------------------------------------}
|
---|
30 |
|
---|
31 | {$A+} {Set Alignment on}
|
---|
32 | {$F+} {Force function calls to FAR}
|
---|
33 | {$Z+} {Force all enumeration values to Integer size}
|
---|
34 |
|
---|
35 | const
|
---|
36 | {$IFDEF WIN32}
|
---|
37 | cryptlibname = 'CL32.DLL'; { dynamic linkname for Windows (Delphi) }
|
---|
38 | {$ELSE}
|
---|
39 | cryptlibname = 'libcl.so'; { library name for Unix/Linux (Kylix) }
|
---|
40 | { symbolic link should be used for libcl.so -> libcl.so.3.x.y }
|
---|
41 | {$ENDIF}
|
---|
42 |
|
---|
43 |
|
---|
44 |
|
---|
45 | {****************************************************************************
|
---|
46 | * *
|
---|
47 | * Algorithm and Object Types *
|
---|
48 | * *
|
---|
49 | ****************************************************************************}
|
---|
50 |
|
---|
51 | { Algorithm and mode types }
|
---|
52 |
|
---|
53 |
|
---|
54 | type
|
---|
55 | CRYPT_ALGO_TYPE = Integer;
|
---|
56 | const
|
---|
57 | { Algorithms }
|
---|
58 | { No encryption }
|
---|
59 | CRYPT_ALGO_NONE = 0; { No encryption }
|
---|
60 |
|
---|
61 | { Conventional encryption }
|
---|
62 | CRYPT_ALGO_DES = 1; { DES }
|
---|
63 | CRYPT_ALGO_3DES = 2; { Triple DES }
|
---|
64 | CRYPT_ALGO_IDEA = 3; { IDEA }
|
---|
65 | CRYPT_ALGO_CAST = 4; { CAST-128 }
|
---|
66 | CRYPT_ALGO_RC2 = 5; { RC2 }
|
---|
67 | CRYPT_ALGO_RC4 = 6; { RC4 }
|
---|
68 | CRYPT_ALGO_RC5 = 7; { RC5 }
|
---|
69 | CRYPT_ALGO_AES = 8; { AES }
|
---|
70 | CRYPT_ALGO_BLOWFISH = 9; { Blowfish }
|
---|
71 | CRYPT_ALGO_SKIPJACK = 10; { Skipjack }
|
---|
72 |
|
---|
73 | { Public-key encryption }
|
---|
74 | CRYPT_ALGO_DH = 100; { Diffie-Hellman }
|
---|
75 | CRYPT_ALGO_RSA = 101; { RSA }
|
---|
76 | CRYPT_ALGO_DSA = 102; { DSA }
|
---|
77 | CRYPT_ALGO_ELGAMAL = 103; { ElGamal }
|
---|
78 | CRYPT_ALGO_KEA = 104; { KEA }
|
---|
79 |
|
---|
80 | { Hash algorithms }
|
---|
81 | CRYPT_ALGO_MD2 = 200; { MD2 }
|
---|
82 | CRYPT_ALGO_MD4 = 201; { MD4 }
|
---|
83 | CRYPT_ALGO_MD5 = 202; { MD5 }
|
---|
84 | CRYPT_ALGO_SHA = 203; { SHA/SHA1 }
|
---|
85 | CRYPT_ALGO_RIPEMD160 = 204; { RIPE-MD 160 }
|
---|
86 | CRYPT_ALGO_SHA2 = 205; { SHA2 (SHA-256/384/512)}
|
---|
87 |
|
---|
88 | { MAC's }
|
---|
89 | CRYPT_ALGO_HMAC_MD5 = 300; { HMAC-MD5 }
|
---|
90 | CRYPT_ALGO_HMAC_SHA = 301; { HMAC-SHA }
|
---|
91 | CRYPT_ALGO_HMAC_RIPEMD160 = 302; { HMAC-RIPEMD-160 }
|
---|
92 |
|
---|
93 | { Vendors may want to use their own algorithms that aren't part of the
|
---|
94 | general cryptlib suite. The following values are for vendor-defined
|
---|
95 | algorithms, and can be used just like the named algorithm types (it's
|
---|
96 | up to the vendor to keep track of what _VENDOR1 actually corresponds
|
---|
97 | to) }
|
---|
98 |
|
---|
99 | CRYPT_ALGO_LAST = 303; { Last possible crypt algo value }
|
---|
100 |
|
---|
101 | { In order that we can scan through a range of algorithms with
|
---|
102 | cryptQueryCapability(), we define the following boundary points for
|
---|
103 | each algorithm class }
|
---|
104 | CRYPT_ALGO_FIRST_CONVENTIONAL = 1; { = CRYPT_ALGO_DES }
|
---|
105 | CRYPT_ALGO_LAST_CONVENTIONAL = 99;
|
---|
106 | CRYPT_ALGO_FIRST_PKC = 100; { = CRYPT_ALGO_DH }
|
---|
107 | CRYPT_ALGO_LAST_PKC = 199;
|
---|
108 | CRYPT_ALGO_FIRST_HASH = 200; { = CRYPT_ALGO_MD2 }
|
---|
109 | CRYPT_ALGO_LAST_HASH = 299;
|
---|
110 | CRYPT_ALGO_FIRST_MAC = 300; { = CRYPT_ALGO_HMAC_MD5 }
|
---|
111 | CRYPT_ALGO_LAST_MAC = 399; { End of mac algo.range }
|
---|
112 |
|
---|
113 |
|
---|
114 |
|
---|
115 |
|
---|
116 |
|
---|
117 | type
|
---|
118 | CRYPT_MODE_TYPE = ( { Block cipher modes }
|
---|
119 | CRYPT_MODE_NONE, { No encryption mode }
|
---|
120 | CRYPT_MODE_ECB, { ECB }
|
---|
121 | CRYPT_MODE_CBC, { CBC }
|
---|
122 | CRYPT_MODE_CFB, { CFB }
|
---|
123 | CRYPT_MODE_OFB, { OFB }
|
---|
124 | CRYPT_MODE_LAST { Last possible crypt mode value }
|
---|
125 |
|
---|
126 | );
|
---|
127 |
|
---|
128 |
|
---|
129 | { Keyset subtypes }
|
---|
130 |
|
---|
131 | CRYPT_KEYSET_TYPE = ( { Keyset types }
|
---|
132 | CRYPT_KEYSET_NONE, { No keyset type }
|
---|
133 | CRYPT_KEYSET_FILE, { Generic flat file keyset }
|
---|
134 | CRYPT_KEYSET_HTTP, { Web page containing cert/CRL }
|
---|
135 | CRYPT_KEYSET_LDAP, { LDAP directory service }
|
---|
136 | CRYPT_KEYSET_ODBC, { Generic ODBC interface }
|
---|
137 | CRYPT_KEYSET_DATABASE, { Generic RDBMS interface }
|
---|
138 | CRYPT_KEYSET_PLUGIN, { Generic database plugin }
|
---|
139 | CRYPT_KEYSET_ODBC_STORE, { ODBC certificate store }
|
---|
140 | CRYPT_KEYSET_DATABASE_STORE, { Database certificate store }
|
---|
141 | CRYPT_KEYSET_PLUGIN_STORE, { Database plugin certificate store }
|
---|
142 | CRYPT_KEYSET_LAST { Last possible keyset type }
|
---|
143 |
|
---|
144 |
|
---|
145 | );
|
---|
146 |
|
---|
147 | { Device subtypes }
|
---|
148 |
|
---|
149 | CRYPT_DEVICE_TYPE = ( { Crypto device types }
|
---|
150 | CRYPT_DEVICE_NONE, { No crypto device }
|
---|
151 | CRYPT_DEVICE_FORTEZZA, { Fortezza card }
|
---|
152 | CRYPT_DEVICE_PKCS11, { PKCS #11 crypto token }
|
---|
153 | CRYPT_DEVICE_CRYPTOAPI, { Microsoft CryptoAPI }
|
---|
154 | CRYPT_DEVICE_LAST { Last possible crypto device type }
|
---|
155 |
|
---|
156 | );
|
---|
157 |
|
---|
158 | { Certificate subtypes }
|
---|
159 |
|
---|
160 | CRYPT_CERTTYPE_TYPE = ( { Certificate object types }
|
---|
161 | CRYPT_CERTTYPE_NONE, { No certificate type }
|
---|
162 | CRYPT_CERTTYPE_CERTIFICATE, { Certificate }
|
---|
163 | CRYPT_CERTTYPE_ATTRIBUTE_CERT, { Attribute certificate }
|
---|
164 | CRYPT_CERTTYPE_CERTCHAIN, { PKCS #7 certificate chain }
|
---|
165 | CRYPT_CERTTYPE_CERTREQUEST, { PKCS #10 certification request }
|
---|
166 | CRYPT_CERTTYPE_REQUEST_CERT, { CRMF certification request }
|
---|
167 | CRYPT_CERTTYPE_REQUEST_REVOCATION, { CRMF revocation request }
|
---|
168 | CRYPT_CERTTYPE_CRL, { CRL }
|
---|
169 | CRYPT_CERTTYPE_CMS_ATTRIBUTES, { CMS attributes }
|
---|
170 | CRYPT_CERTTYPE_RTCS_REQUEST, { RTCS request }
|
---|
171 | CRYPT_CERTTYPE_RTCS_RESPONSE, { RTCS response }
|
---|
172 | CRYPT_CERTTYPE_OCSP_REQUEST, { OCSP request }
|
---|
173 | CRYPT_CERTTYPE_OCSP_RESPONSE, { OCSP response }
|
---|
174 | CRYPT_CERTTYPE_PKIUSER, { PKI user information }
|
---|
175 | CRYPT_CERTTYPE_LAST { Last possible cert.type }
|
---|
176 |
|
---|
177 | );
|
---|
178 |
|
---|
179 | { Envelope/data format subtypes }
|
---|
180 |
|
---|
181 | CRYPT_FORMAT_TYPE = (
|
---|
182 | CRYPT_FORMAT_NONE, { No format type }
|
---|
183 | CRYPT_FORMAT_AUTO, { Deenv, auto-determine type }
|
---|
184 | CRYPT_FORMAT_CRYPTLIB, { cryptlib native format }
|
---|
185 | CRYPT_FORMAT_CMS, { PKCS #7 / CMS / S/MIME fmt.}
|
---|
186 | CRYPT_FORMAT_SMIME, { As CMS with MSG-style behaviour }
|
---|
187 | CRYPT_FORMAT_PGP, { PGP format }
|
---|
188 | CRYPT_FORMAT_LAST { Last possible format type }
|
---|
189 |
|
---|
190 | );
|
---|
191 |
|
---|
192 | const
|
---|
193 | CRYPT_FORMAT_PKCS7: CRYPT_FORMAT_TYPE = CRYPT_FORMAT_CMS;
|
---|
194 |
|
---|
195 | { Session subtypes }
|
---|
196 |
|
---|
197 |
|
---|
198 | type
|
---|
199 | CRYPT_SESSION_TYPE = (
|
---|
200 | CRYPT_SESSION_NONE, { No session type }
|
---|
201 | CRYPT_SESSION_SSH, { SSH }
|
---|
202 | CRYPT_SESSION_SSH_SERVER, { SSH server }
|
---|
203 | CRYPT_SESSION_SSL, { SSL/TLS }
|
---|
204 | CRYPT_SESSION_SSL_SERVER, { SSL/TLS server }
|
---|
205 | CRYPT_SESSION_RTCS, { RTCS }
|
---|
206 | CRYPT_SESSION_RTCS_SERVER, { RTCS server }
|
---|
207 | CRYPT_SESSION_OCSP, { OCSP }
|
---|
208 | CRYPT_SESSION_OCSP_SERVER, { OCSP server }
|
---|
209 | CRYPT_SESSION_TSP, { TSP }
|
---|
210 | CRYPT_SESSION_TSP_SERVER, { TSP server }
|
---|
211 | CRYPT_SESSION_CMP, { CMP }
|
---|
212 | CRYPT_SESSION_CMP_SERVER, { CMP server }
|
---|
213 | CRYPT_SESSION_SCEP, { SCEP }
|
---|
214 | CRYPT_SESSION_SCEP_SERVER, { SCEP server }
|
---|
215 | CRYPT_SESSION_CERTSTORE_SERVER, { HTTP cert store interface }
|
---|
216 | CRYPT_SESSION_LAST { Last possible session type }
|
---|
217 |
|
---|
218 | );
|
---|
219 |
|
---|
220 | { User subtypes }
|
---|
221 |
|
---|
222 | CRYPT_USER_TYPE = (
|
---|
223 | CRYPT_USER_NONE, { No user type }
|
---|
224 | CRYPT_USER_NORMAL, { Normal user }
|
---|
225 | CRYPT_USER_SO, { Security officer }
|
---|
226 | CRYPT_USER_CA, { CA user }
|
---|
227 | CRYPT_USER_LAST { Last possible user type }
|
---|
228 |
|
---|
229 | );
|
---|
230 |
|
---|
231 | {****************************************************************************
|
---|
232 | * *
|
---|
233 | * Attribute Types *
|
---|
234 | * *
|
---|
235 | ****************************************************************************}
|
---|
236 |
|
---|
237 | { Attribute types. These are arranged in the following order:
|
---|
238 |
|
---|
239 | PROPERTY - Object property
|
---|
240 | ATTRIBUTE - Generic attributes
|
---|
241 | OPTION - Global or object-specific config.option
|
---|
242 | CTXINFO - Context-specific attribute
|
---|
243 | CERTINFO - Certificate-specific attribute
|
---|
244 | KEYINFO - Keyset-specific attribute
|
---|
245 | DEVINFO - Device-specific attribute
|
---|
246 | ENVINFO - Envelope-specific attribute
|
---|
247 | SESSINFO - Session-specific attribute
|
---|
248 | USERINFO - User-specific attribute }
|
---|
249 |
|
---|
250 | CRYPT_ATTRIBUTE_TYPE = Integer;
|
---|
251 | const
|
---|
252 |
|
---|
253 | CRYPT_ATTRIBUTE_NONE = 0; { Non-value }
|
---|
254 |
|
---|
255 | { Used internally }
|
---|
256 | CRYPT_PROPERTY_FIRST = 1;
|
---|
257 |
|
---|
258 | {*******************}
|
---|
259 | { Object attributes }
|
---|
260 | {*******************}
|
---|
261 |
|
---|
262 | { Object properties }
|
---|
263 | CRYPT_PROPERTY_HIGHSECURITY = 2; { Owned+non-forwardcount+locked }
|
---|
264 | CRYPT_PROPERTY_OWNER = 3; { Object owner }
|
---|
265 | CRYPT_PROPERTY_FORWARDCOUNT = 4; { No.of times object can be forwarded }
|
---|
266 | CRYPT_PROPERTY_LOCKED = 5; { Whether properties can be chged/read }
|
---|
267 | CRYPT_PROPERTY_USAGECOUNT = 6; { Usage count before object expires }
|
---|
268 | CRYPT_PROPERTY_NONEXPORTABLE = 7; { Whether key is nonexp.from context }
|
---|
269 |
|
---|
270 | { Used internally }
|
---|
271 | CRYPT_PROPERTY_LAST = 8; CRYPT_GENERIC_FIRST = 9;
|
---|
272 |
|
---|
273 | { Extended error information }
|
---|
274 | CRYPT_ATTRIBUTE_ERRORTYPE = 10; { Type of last error }
|
---|
275 | CRYPT_ATTRIBUTE_ERRORLOCUS = 11; { Locus of last error }
|
---|
276 | CRYPT_ATTRIBUTE_INT_ERRORCODE = 12; { Low-level software-specific }
|
---|
277 | CRYPT_ATTRIBUTE_INT_ERRORMESSAGE = 13; { error code and message }
|
---|
278 |
|
---|
279 | { Generic information }
|
---|
280 | CRYPT_ATTRIBUTE_CURRENT_GROUP = 14; { Cursor mgt: Group in attribute list }
|
---|
281 | CRYPT_ATTRIBUTE_CURRENT = 15; { Cursor mgt: Entry in attribute list }
|
---|
282 | CRYPT_ATTRIBUTE_CURRENT_INSTANCE = 16; { Cursor mgt: Instance in attribute list }
|
---|
283 | CRYPT_ATTRIBUTE_BUFFERSIZE = 17; { Internal data buffer size }
|
---|
284 |
|
---|
285 | { User internally }
|
---|
286 | CRYPT_GENERIC_LAST = 18; CRYPT_OPTION_FIRST = 100;
|
---|
287 |
|
---|
288 | {**************************}
|
---|
289 | { Configuration attributes }
|
---|
290 | {**************************}
|
---|
291 |
|
---|
292 | { cryptlib information (read-only) }
|
---|
293 | CRYPT_OPTION_INFO_DESCRIPTION = 101; { Text description }
|
---|
294 | CRYPT_OPTION_INFO_COPYRIGHT = 102; { Copyright notice }
|
---|
295 | CRYPT_OPTION_INFO_MAJORVERSION = 103; { Major release version }
|
---|
296 | CRYPT_OPTION_INFO_MINORVERSION = 104; { Minor release version }
|
---|
297 | CRYPT_OPTION_INFO_STEPPING = 105; { Release stepping }
|
---|
298 |
|
---|
299 | { Encryption options }
|
---|
300 | CRYPT_OPTION_ENCR_ALGO = 106; { Encryption algorithm }
|
---|
301 | CRYPT_OPTION_ENCR_HASH = 107; { Hash algorithm }
|
---|
302 | CRYPT_OPTION_ENCR_MAC = 108; { MAC algorithm }
|
---|
303 |
|
---|
304 | { PKC options }
|
---|
305 | CRYPT_OPTION_PKC_ALGO = 109; { Public-key encryption algorithm }
|
---|
306 | CRYPT_OPTION_PKC_KEYSIZE = 110; { Public-key encryption key size }
|
---|
307 |
|
---|
308 | { Signature options }
|
---|
309 | CRYPT_OPTION_SIG_ALGO = 111; { Signature algorithm }
|
---|
310 | CRYPT_OPTION_SIG_KEYSIZE = 112; { Signature keysize }
|
---|
311 |
|
---|
312 | { Keying options }
|
---|
313 | CRYPT_OPTION_KEYING_ALGO = 113; { Key processing algorithm }
|
---|
314 | CRYPT_OPTION_KEYING_ITERATIONS = 114; { Key processing iterations }
|
---|
315 |
|
---|
316 | { Certificate options }
|
---|
317 | CRYPT_OPTION_CERT_SIGNUNRECOGNISEDATTRIBUTES = 115; { Whether to sign unrecog.attrs }
|
---|
318 | CRYPT_OPTION_CERT_VALIDITY = 116; { Certificate validity period }
|
---|
319 | CRYPT_OPTION_CERT_UPDATEINTERVAL = 117; { CRL update interval }
|
---|
320 | CRYPT_OPTION_CERT_COMPLIANCELEVEL = 118; { PKIX compliance level for cert chks.}
|
---|
321 | CRYPT_OPTION_CERT_REQUIREPOLICY = 119; { Whether explicit policy req'd for certs }
|
---|
322 |
|
---|
323 | { CMS/SMIME options }
|
---|
324 | CRYPT_OPTION_CMS_DEFAULTATTRIBUTES = 120; { Add default CMS attributes }
|
---|
325 | CRYPT_OPTION_SMIME_DEFAULTATTRIBUTES = 120; { = CRYPT_OPTION_CMS_DEFAULTATTRIBUTES }
|
---|
326 |
|
---|
327 | { LDAP keyset options }
|
---|
328 | CRYPT_OPTION_KEYS_LDAP_OBJECTCLASS = 121; { Object class }
|
---|
329 | CRYPT_OPTION_KEYS_LDAP_OBJECTTYPE = 122; { Object type to fetch }
|
---|
330 | CRYPT_OPTION_KEYS_LDAP_FILTER = 123; { Query filter }
|
---|
331 | CRYPT_OPTION_KEYS_LDAP_CACERTNAME = 124; { CA certificate attribute name }
|
---|
332 | CRYPT_OPTION_KEYS_LDAP_CERTNAME = 125; { Certificate attribute name }
|
---|
333 | CRYPT_OPTION_KEYS_LDAP_CRLNAME = 126; { CRL attribute name }
|
---|
334 | CRYPT_OPTION_KEYS_LDAP_EMAILNAME = 127; { Email attribute name }
|
---|
335 |
|
---|
336 | { Crypto device options }
|
---|
337 | CRYPT_OPTION_DEVICE_PKCS11_DVR01 = 128; { Name of first PKCS #11 driver }
|
---|
338 | CRYPT_OPTION_DEVICE_PKCS11_DVR02 = 129; { Name of second PKCS #11 driver }
|
---|
339 | CRYPT_OPTION_DEVICE_PKCS11_DVR03 = 130; { Name of third PKCS #11 driver }
|
---|
340 | CRYPT_OPTION_DEVICE_PKCS11_DVR04 = 131; { Name of fourth PKCS #11 driver }
|
---|
341 | CRYPT_OPTION_DEVICE_PKCS11_DVR05 = 132; { Name of fifth PKCS #11 driver }
|
---|
342 | CRYPT_OPTION_DEVICE_PKCS11_HARDWAREONLY = 133; { Use only hardware mechanisms }
|
---|
343 |
|
---|
344 | { Network access options }
|
---|
345 | CRYPT_OPTION_NET_SOCKS_SERVER = 134; { Socks server name }
|
---|
346 | CRYPT_OPTION_NET_SOCKS_USERNAME = 135; { Socks user name }
|
---|
347 | CRYPT_OPTION_NET_HTTP_PROXY = 136; { Web proxy server }
|
---|
348 | CRYPT_OPTION_NET_CONNECTTIMEOUT = 137; { Timeout for network connection setup }
|
---|
349 | CRYPT_OPTION_NET_READTIMEOUT = 138; { Timeout for network reads }
|
---|
350 | CRYPT_OPTION_NET_WRITETIMEOUT = 139; { Timeout for network writes }
|
---|
351 |
|
---|
352 | { Miscellaneous options }
|
---|
353 | CRYPT_OPTION_MISC_ASYNCINIT = 140; { Whether to init cryptlib async'ly }
|
---|
354 | CRYPT_OPTION_MISC_SIDECHANNELPROTECTION = 141; { Protect against side-channel attacks }
|
---|
355 |
|
---|
356 | { cryptlib state information }
|
---|
357 | CRYPT_OPTION_CONFIGCHANGED = 142; { Whether in-mem.opts match on-disk ones }
|
---|
358 | CRYPT_OPTION_SELFTESTOK = 143; { Whether self-test was completed and OK }
|
---|
359 |
|
---|
360 | { Used internally }
|
---|
361 | CRYPT_OPTION_LAST = 144; CRYPT_CTXINFO_FIRST = 1000;
|
---|
362 |
|
---|
363 | {********************}
|
---|
364 | { Context attributes }
|
---|
365 | {********************}
|
---|
366 |
|
---|
367 | { Algorithm and mode information }
|
---|
368 | CRYPT_CTXINFO_ALGO = 1001; { Algorithm }
|
---|
369 | CRYPT_CTXINFO_MODE = 1002; { Mode }
|
---|
370 | CRYPT_CTXINFO_NAME_ALGO = 1003; { Algorithm name }
|
---|
371 | CRYPT_CTXINFO_NAME_MODE = 1004; { Mode name }
|
---|
372 | CRYPT_CTXINFO_KEYSIZE = 1005; { Key size in bytes }
|
---|
373 | CRYPT_CTXINFO_BLOCKSIZE = 1006; { Block size }
|
---|
374 | CRYPT_CTXINFO_IVSIZE = 1007; { IV size }
|
---|
375 | CRYPT_CTXINFO_KEYING_ALGO = 1008; { Key processing algorithm }
|
---|
376 | CRYPT_CTXINFO_KEYING_ITERATIONS = 1009; { Key processing iterations }
|
---|
377 | CRYPT_CTXINFO_KEYING_SALT = 1010; { Key processing salt }
|
---|
378 | CRYPT_CTXINFO_KEYING_VALUE = 1011; { Value used to derive key }
|
---|
379 |
|
---|
380 | { State information }
|
---|
381 | CRYPT_CTXINFO_KEY = 1012; { Key }
|
---|
382 | CRYPT_CTXINFO_KEY_COMPONENTS = 1013; { Public-key components }
|
---|
383 | CRYPT_CTXINFO_IV = 1014; { IV }
|
---|
384 | CRYPT_CTXINFO_HASHVALUE = 1015; { Hash value }
|
---|
385 |
|
---|
386 | { Misc.information }
|
---|
387 | CRYPT_CTXINFO_LABEL = 1016; { Label for private/secret key }
|
---|
388 |
|
---|
389 | { Used internally }
|
---|
390 | CRYPT_CTXINFO_LAST = 1017; CRYPT_CERTINFO_FIRST = 2000;
|
---|
391 |
|
---|
392 | {************************}
|
---|
393 | { Certificate attributes }
|
---|
394 | {************************}
|
---|
395 |
|
---|
396 | { Because there are so many cert attributes, we break them down into
|
---|
397 | blocks to minimise the number of values that change if a new one is
|
---|
398 | added halfway through }
|
---|
399 |
|
---|
400 | { Pseudo-information on a cert object or meta-information which is used
|
---|
401 | to control the way that a cert object is processed }
|
---|
402 | CRYPT_CERTINFO_SELFSIGNED = 2001; { Cert is self-signed }
|
---|
403 | CRYPT_CERTINFO_IMMUTABLE = 2002; { Cert is signed and immutable }
|
---|
404 | CRYPT_CERTINFO_XYZZY = 2003; { Cert is a magic just-works cert }
|
---|
405 | CRYPT_CERTINFO_CERTTYPE = 2004; { Certificate object type }
|
---|
406 | CRYPT_CERTINFO_FINGERPRINT = 2005; { Certificate fingerprints }
|
---|
407 | CRYPT_CERTINFO_FINGERPRINT_MD5 = 2005; { = CRYPT_CERTINFO_FINGERPRINT }
|
---|
408 | CRYPT_CERTINFO_FINGERPRINT_SHA = 2006;
|
---|
409 | CRYPT_CERTINFO_CURRENT_CERTIFICATE = 2007; { Cursor mgt: Rel.pos in chain/CRL/OCSP }
|
---|
410 | CRYPT_CERTINFO_CURRENT_EXTENSION = 2008; { Cursor mgt: Rel.pos.or abs.extension }
|
---|
411 | CRYPT_CERTINFO_CURRENT_FIELD = 2009; { Cursor mgt: Rel.pos.or abs.field in ext }
|
---|
412 | CRYPT_CERTINFO_CURRENT_COMPONENT = 2010; { Cursor mgt: Rel.pos in multival.field }
|
---|
413 | CRYPT_CERTINFO_TRUSTED_USAGE = 2011; { Usage that cert is trusted for }
|
---|
414 | CRYPT_CERTINFO_TRUSTED_IMPLICIT = 2012; { Whether cert is implicitly trusted }
|
---|
415 | CRYPT_CERTINFO_SIGNATURELEVEL = 2013; { Amount of detail to include in sigs.}
|
---|
416 |
|
---|
417 | { General certificate object information }
|
---|
418 | CRYPT_CERTINFO_VERSION = 2014; { Cert.format version }
|
---|
419 | CRYPT_CERTINFO_SERIALNUMBER = 2015; { Serial number }
|
---|
420 | CRYPT_CERTINFO_SUBJECTPUBLICKEYINFO = 2016; { Public key }
|
---|
421 | CRYPT_CERTINFO_CERTIFICATE = 2017; { User certificate }
|
---|
422 | CRYPT_CERTINFO_USERCERTIFICATE = 2017; { = CRYPT_CERTINFO_CERTIFICATE }
|
---|
423 | CRYPT_CERTINFO_CACERTIFICATE = 2018; { CA certificate }
|
---|
424 | CRYPT_CERTINFO_ISSUERNAME = 2019; { Issuer DN }
|
---|
425 | CRYPT_CERTINFO_VALIDFROM = 2020; { Cert valid-from time }
|
---|
426 | CRYPT_CERTINFO_VALIDTO = 2021; { Cert valid-to time }
|
---|
427 | CRYPT_CERTINFO_SUBJECTNAME = 2022; { Subject DN }
|
---|
428 | CRYPT_CERTINFO_ISSUERUNIQUEID = 2023; { Issuer unique ID }
|
---|
429 | CRYPT_CERTINFO_SUBJECTUNIQUEID = 2024; { Subject unique ID }
|
---|
430 | CRYPT_CERTINFO_CERTREQUEST = 2025; { Cert.request (DN + public key) }
|
---|
431 | CRYPT_CERTINFO_THISUPDATE = 2026; { CRL/OCSP current-update time }
|
---|
432 | CRYPT_CERTINFO_NEXTUPDATE = 2027; { CRL/OCSP next-update time }
|
---|
433 | CRYPT_CERTINFO_REVOCATIONDATE = 2028; { CRL/OCSP cert-revocation time }
|
---|
434 | CRYPT_CERTINFO_REVOCATIONSTATUS = 2029; { OCSP revocation status }
|
---|
435 | CRYPT_CERTINFO_CERTSTATUS = 2030; { RTCS certificate status }
|
---|
436 | CRYPT_CERTINFO_DN = 2031; { Currently selected DN in string form }
|
---|
437 | CRYPT_CERTINFO_PKIUSER_ID = 2032; { PKI user ID }
|
---|
438 | CRYPT_CERTINFO_PKIUSER_ISSUEPASSWORD = 2033; { PKI user issue password }
|
---|
439 | CRYPT_CERTINFO_PKIUSER_REVPASSWORD = 2034; { PKI user revocation password }
|
---|
440 |
|
---|
441 | { X.520 Distinguished Name components. This is a composite field, the
|
---|
442 | DN to be manipulated is selected through the addition of a
|
---|
443 | pseudocomponent, and then one of the following is used to access the
|
---|
444 | DN components directly }
|
---|
445 | CRYPT_CERTINFO_COUNTRYNAME = 2100; { countryName }
|
---|
446 | CRYPT_CERTINFO_STATEORPROVINCENAME = 2101; { stateOrProvinceName }
|
---|
447 | CRYPT_CERTINFO_LOCALITYNAME = 2102; { localityName }
|
---|
448 | CRYPT_CERTINFO_ORGANIZATIONNAME = 2103; { organizationName }
|
---|
449 | CRYPT_CERTINFO_ORGANISATIONNAME = 2103; { = CRYPT_CERTINFO_ORGANIZATIONNAME }
|
---|
450 | CRYPT_CERTINFO_ORGANIZATIONALUNITNAME = 2104; { organizationalUnitName }
|
---|
451 | CRYPT_CERTINFO_ORGANISATIONALUNITNAME = 2104; { = CRYPT_CERTINFO_ORGANIZATIONALUNITNAME }
|
---|
452 | CRYPT_CERTINFO_COMMONNAME = 2105; { commonName }
|
---|
453 |
|
---|
454 | { X.509 General Name components. These are handled in the same way as
|
---|
455 | the DN composite field, with the current GeneralName being selected by
|
---|
456 | a pseudo-component after which the individual components can be
|
---|
457 | modified through one of the following }
|
---|
458 | CRYPT_CERTINFO_OTHERNAME_TYPEID = 2106; { otherName.typeID }
|
---|
459 | CRYPT_CERTINFO_OTHERNAME_VALUE = 2107; { otherName.value }
|
---|
460 | CRYPT_CERTINFO_RFC822NAME = 2108; { rfc822Name }
|
---|
461 | CRYPT_CERTINFO_EMAIL = 2108; { = CRYPT_CERTINFO_RFC822NAME }
|
---|
462 | CRYPT_CERTINFO_DNSNAME = 2109; { dNSName }
|
---|
463 | CRYPT_CERTINFO_DIRECTORYNAME = 2110; { directoryName }
|
---|
464 | CRYPT_CERTINFO_EDIPARTYNAME_NAMEASSIGNER = 2111; { ediPartyName.nameAssigner }
|
---|
465 | CRYPT_CERTINFO_EDIPARTYNAME_PARTYNAME = 2112; { ediPartyName.partyName }
|
---|
466 | CRYPT_CERTINFO_UNIFORMRESOURCEIDENTIFIER = 2113; { uniformResourceIdentifier }
|
---|
467 | CRYPT_CERTINFO_IPADDRESS = 2114; { iPAddress }
|
---|
468 | CRYPT_CERTINFO_REGISTEREDID = 2115; { registeredID }
|
---|
469 |
|
---|
470 | { X.509 certificate extensions. Although it would be nicer to use names
|
---|
471 | that match the extensions more closely (e.g.
|
---|
472 | CRYPT_CERTINFO_BASICCONSTRAINTS_PATHLENCONSTRAINT), these exceed the
|
---|
473 | 32-character ANSI minimum length for unique names, and get really
|
---|
474 | hairy once you get into the weird policy constraints extensions whose
|
---|
475 | names wrap around the screen about three times.
|
---|
476 |
|
---|
477 | The following values are defined in OID order, this isn't absolutely
|
---|
478 | necessary but saves an extra layer of processing when encoding them }
|
---|
479 |
|
---|
480 | { 1 2 840 113549 1 9 7 challengePassword. This is here even though it's
|
---|
481 | a CMS attribute because SCEP stuffs it into PKCS #10 requests }
|
---|
482 | CRYPT_CERTINFO_CHALLENGEPASSWORD = 2200;
|
---|
483 |
|
---|
484 | { 1 3 6 1 4 1 3029 3 1 4 cRLExtReason }
|
---|
485 | CRYPT_CERTINFO_CRLEXTREASON = 2201;
|
---|
486 |
|
---|
487 | { 1 3 6 1 4 1 3029 3 1 5 keyFeatures }
|
---|
488 | CRYPT_CERTINFO_KEYFEATURES = 2202;
|
---|
489 |
|
---|
490 | { 1 3 6 1 5 5 7 1 1 authorityInfoAccess }
|
---|
491 | CRYPT_CERTINFO_AUTHORITYINFOACCESS = 2203;
|
---|
492 | CRYPT_CERTINFO_AUTHORITYINFO_RTCS = 2204; { accessDescription.accessLocation }
|
---|
493 | CRYPT_CERTINFO_AUTHORITYINFO_OCSP = 2205; { accessDescription.accessLocation }
|
---|
494 | CRYPT_CERTINFO_AUTHORITYINFO_CAISSUERS = 2206; { accessDescription.accessLocation }
|
---|
495 | CRYPT_CERTINFO_AUTHORITYINFO_CERTSTORE = 2207; { accessDescription.accessLocation }
|
---|
496 | CRYPT_CERTINFO_AUTHORITYINFO_CRLS = 2208; { accessDescription.accessLocation }
|
---|
497 |
|
---|
498 | { 1 3 6 1 5 5 7 1 2 biometricInfo }
|
---|
499 | CRYPT_CERTINFO_BIOMETRICINFO = 2209;
|
---|
500 | CRYPT_CERTINFO_BIOMETRICINFO_TYPE = 2210; { biometricData.typeOfData }
|
---|
501 | CRYPT_CERTINFO_BIOMETRICINFO_HASHALGO = 2211; { biometricData.hashAlgorithm }
|
---|
502 | CRYPT_CERTINFO_BIOMETRICINFO_HASH = 2212; { biometricData.dataHash }
|
---|
503 | CRYPT_CERTINFO_BIOMETRICINFO_URL = 2213; { biometricData.sourceDataUri }
|
---|
504 |
|
---|
505 | { 1 3 6 1 5 5 7 1 3 qcStatements }
|
---|
506 | CRYPT_CERTINFO_QCSTATEMENT = 2214;
|
---|
507 | CRYPT_CERTINFO_QCSTATEMENT_SEMANTICS = 2215;
|
---|
508 | { qcStatement.statementInfo.semanticsIdentifier }
|
---|
509 | CRYPT_CERTINFO_QCSTATEMENT_REGISTRATIONAUTHORITY = 2216;
|
---|
510 | { qcStatement.statementInfo.nameRegistrationAuthorities }
|
---|
511 |
|
---|
512 | { 1 3 6 1 5 5 7 48 1 2 ocspNonce }
|
---|
513 | CRYPT_CERTINFO_OCSP_NONCE = 2217; { nonce }
|
---|
514 |
|
---|
515 | { 1 3 6 1 5 5 7 48 1 4 ocspAcceptableResponses }
|
---|
516 | CRYPT_CERTINFO_OCSP_RESPONSE = 2218;
|
---|
517 | CRYPT_CERTINFO_OCSP_RESPONSE_OCSP = 2219; { OCSP standard response }
|
---|
518 |
|
---|
519 | { 1 3 6 1 5 5 7 48 1 5 ocspNoCheck }
|
---|
520 | CRYPT_CERTINFO_OCSP_NOCHECK = 2220;
|
---|
521 |
|
---|
522 | { 1 3 6 1 5 5 7 48 1 6 ocspArchiveCutoff }
|
---|
523 | CRYPT_CERTINFO_OCSP_ARCHIVECUTOFF = 2221;
|
---|
524 |
|
---|
525 | { 1 3 6 1 5 5 7 48 1 11 subjectInfoAccess }
|
---|
526 | CRYPT_CERTINFO_SUBJECTINFOACCESS = 2222;
|
---|
527 | CRYPT_CERTINFO_SUBJECTINFO_CAREPOSITORY = 2223; { accessDescription.accessLocation }
|
---|
528 | CRYPT_CERTINFO_SUBJECTINFO_TIMESTAMPING = 2224; { accessDescription.accessLocation }
|
---|
529 |
|
---|
530 | { 1 3 36 8 3 1 siggDateOfCertGen }
|
---|
531 | CRYPT_CERTINFO_SIGG_DATEOFCERTGEN = 2225;
|
---|
532 |
|
---|
533 | { 1 3 36 8 3 2 siggProcuration }
|
---|
534 | CRYPT_CERTINFO_SIGG_PROCURATION = 2226;
|
---|
535 | CRYPT_CERTINFO_SIGG_PROCURE_COUNTRY = 2227; { country }
|
---|
536 | CRYPT_CERTINFO_SIGG_PROCURE_TYPEOFSUBSTITUTION = 2228; { typeOfSubstitution }
|
---|
537 | CRYPT_CERTINFO_SIGG_PROCURE_SIGNINGFOR = 2229; { signingFor.thirdPerson }
|
---|
538 |
|
---|
539 | { 1 3 36 8 3 4 siggMonetaryLimit }
|
---|
540 | CRYPT_CERTINFO_SIGG_MONETARYLIMIT = 2230;
|
---|
541 | CRYPT_CERTINFO_SIGG_MONETARY_CURRENCY = 2231; { currency }
|
---|
542 | CRYPT_CERTINFO_SIGG_MONETARY_AMOUNT = 2232; { amount }
|
---|
543 | CRYPT_CERTINFO_SIGG_MONETARY_EXPONENT = 2233; { exponent }
|
---|
544 |
|
---|
545 | { 1 3 36 8 3 8 siggRestriction }
|
---|
546 | CRYPT_CERTINFO_SIGG_RESTRICTION = 2234;
|
---|
547 |
|
---|
548 | { 1 3 101 1 4 1 strongExtranet }
|
---|
549 | CRYPT_CERTINFO_STRONGEXTRANET = 2235;
|
---|
550 | CRYPT_CERTINFO_STRONGEXTRANET_ZONE = 2236; { sxNetIDList.sxNetID.zone }
|
---|
551 | CRYPT_CERTINFO_STRONGEXTRANET_ID = 2237; { sxNetIDList.sxNetID.id }
|
---|
552 |
|
---|
553 | { 2 5 29 9 subjectDirectoryAttributes }
|
---|
554 | CRYPT_CERTINFO_SUBJECTDIRECTORYATTRIBUTES = 2238;
|
---|
555 | CRYPT_CERTINFO_SUBJECTDIR_TYPE = 2239; { attribute.type }
|
---|
556 | CRYPT_CERTINFO_SUBJECTDIR_VALUES = 2240; { attribute.values }
|
---|
557 |
|
---|
558 | { 2 5 29 14 subjectKeyIdentifier }
|
---|
559 | CRYPT_CERTINFO_SUBJECTKEYIDENTIFIER = 2241;
|
---|
560 |
|
---|
561 | { 2 5 29 15 keyUsage }
|
---|
562 | CRYPT_CERTINFO_KEYUSAGE = 2242;
|
---|
563 |
|
---|
564 | { 2 5 29 16 privateKeyUsagePeriod }
|
---|
565 | CRYPT_CERTINFO_PRIVATEKEYUSAGEPERIOD = 2243;
|
---|
566 | CRYPT_CERTINFO_PRIVATEKEY_NOTBEFORE = 2244; { notBefore }
|
---|
567 | CRYPT_CERTINFO_PRIVATEKEY_NOTAFTER = 2245; { notAfter }
|
---|
568 |
|
---|
569 | { 2 5 29 17 subjectAltName }
|
---|
570 | CRYPT_CERTINFO_SUBJECTALTNAME = 2246;
|
---|
571 |
|
---|
572 | { 2 5 29 18 issuerAltName }
|
---|
573 | CRYPT_CERTINFO_ISSUERALTNAME = 2247;
|
---|
574 |
|
---|
575 | { 2 5 29 19 basicConstraints }
|
---|
576 | CRYPT_CERTINFO_BASICCONSTRAINTS = 2248;
|
---|
577 | CRYPT_CERTINFO_CA = 2249; { cA }
|
---|
578 | CRYPT_CERTINFO_AUTHORITY = 2249; { = CRYPT_CERTINFO_CA }
|
---|
579 | CRYPT_CERTINFO_PATHLENCONSTRAINT = 2250; { pathLenConstraint }
|
---|
580 |
|
---|
581 | { 2 5 29 20 cRLNumber }
|
---|
582 | CRYPT_CERTINFO_CRLNUMBER = 2251;
|
---|
583 |
|
---|
584 | { 2 5 29 21 cRLReason }
|
---|
585 | CRYPT_CERTINFO_CRLREASON = 2252;
|
---|
586 |
|
---|
587 | { 2 5 29 23 holdInstructionCode }
|
---|
588 | CRYPT_CERTINFO_HOLDINSTRUCTIONCODE = 2253;
|
---|
589 |
|
---|
590 | { 2 5 29 24 invalidityDate }
|
---|
591 | CRYPT_CERTINFO_INVALIDITYDATE = 2254;
|
---|
592 |
|
---|
593 | { 2 5 29 27 deltaCRLIndicator }
|
---|
594 | CRYPT_CERTINFO_DELTACRLINDICATOR = 2255;
|
---|
595 |
|
---|
596 | { 2 5 29 28 issuingDistributionPoint }
|
---|
597 | CRYPT_CERTINFO_ISSUINGDISTRIBUTIONPOINT = 2256;
|
---|
598 | CRYPT_CERTINFO_ISSUINGDIST_FULLNAME = 2257; { distributionPointName.fullName }
|
---|
599 | CRYPT_CERTINFO_ISSUINGDIST_USERCERTSONLY = 2258; { onlyContainsUserCerts }
|
---|
600 | CRYPT_CERTINFO_ISSUINGDIST_CACERTSONLY = 2259; { onlyContainsCACerts }
|
---|
601 | CRYPT_CERTINFO_ISSUINGDIST_SOMEREASONSONLY = 2260; { onlySomeReasons }
|
---|
602 | CRYPT_CERTINFO_ISSUINGDIST_INDIRECTCRL = 2261; { indirectCRL }
|
---|
603 |
|
---|
604 | { 2 5 29 29 certificateIssuer }
|
---|
605 | CRYPT_CERTINFO_CERTIFICATEISSUER = 2262;
|
---|
606 |
|
---|
607 | { 2 5 29 30 nameConstraints }
|
---|
608 | CRYPT_CERTINFO_NAMECONSTRAINTS = 2263;
|
---|
609 | CRYPT_CERTINFO_PERMITTEDSUBTREES = 2264; { permittedSubtrees }
|
---|
610 | CRYPT_CERTINFO_EXCLUDEDSUBTREES = 2265; { excludedSubtrees }
|
---|
611 |
|
---|
612 | { 2 5 29 31 cRLDistributionPoint }
|
---|
613 | CRYPT_CERTINFO_CRLDISTRIBUTIONPOINT = 2266;
|
---|
614 | CRYPT_CERTINFO_CRLDIST_FULLNAME = 2267; { distributionPointName.fullName }
|
---|
615 | CRYPT_CERTINFO_CRLDIST_REASONS = 2268; { reasons }
|
---|
616 | CRYPT_CERTINFO_CRLDIST_CRLISSUER = 2269; { cRLIssuer }
|
---|
617 |
|
---|
618 | { 2 5 29 32 certificatePolicies }
|
---|
619 | CRYPT_CERTINFO_CERTIFICATEPOLICIES = 2270;
|
---|
620 | CRYPT_CERTINFO_CERTPOLICYID = 2271; { policyInformation.policyIdentifier }
|
---|
621 | CRYPT_CERTINFO_CERTPOLICY_CPSURI = 2272;
|
---|
622 | { policyInformation.policyQualifiers.qualifier.cPSuri }
|
---|
623 | CRYPT_CERTINFO_CERTPOLICY_ORGANIZATION = 2273;
|
---|
624 | { policyInformation.policyQualifiers.qualifier.userNotice.noticeRef.organization }
|
---|
625 | CRYPT_CERTINFO_CERTPOLICY_NOTICENUMBERS = 2274;
|
---|
626 | { policyInformation.policyQualifiers.qualifier.userNotice.noticeRef.noticeNumbers }
|
---|
627 | CRYPT_CERTINFO_CERTPOLICY_EXPLICITTEXT = 2275;
|
---|
628 | { policyInformation.policyQualifiers.qualifier.userNotice.explicitText }
|
---|
629 |
|
---|
630 | { 2 5 29 33 policyMappings }
|
---|
631 | CRYPT_CERTINFO_POLICYMAPPINGS = 2276;
|
---|
632 | CRYPT_CERTINFO_ISSUERDOMAINPOLICY = 2277; { policyMappings.issuerDomainPolicy }
|
---|
633 | CRYPT_CERTINFO_SUBJECTDOMAINPOLICY = 2278; { policyMappings.subjectDomainPolicy }
|
---|
634 |
|
---|
635 | { 2 5 29 35 authorityKeyIdentifier }
|
---|
636 | CRYPT_CERTINFO_AUTHORITYKEYIDENTIFIER = 2279;
|
---|
637 | CRYPT_CERTINFO_AUTHORITY_KEYIDENTIFIER = 2280; { keyIdentifier }
|
---|
638 | CRYPT_CERTINFO_AUTHORITY_CERTISSUER = 2281; { authorityCertIssuer }
|
---|
639 | CRYPT_CERTINFO_AUTHORITY_CERTSERIALNUMBER = 2282; { authorityCertSerialNumber }
|
---|
640 |
|
---|
641 | { 2 5 29 36 policyConstraints }
|
---|
642 | CRYPT_CERTINFO_POLICYCONSTRAINTS = 2283;
|
---|
643 | CRYPT_CERTINFO_REQUIREEXPLICITPOLICY = 2284; { policyConstraints.requireExplicitPolicy }
|
---|
644 | CRYPT_CERTINFO_INHIBITPOLICYMAPPING = 2285; { policyConstraints.inhibitPolicyMapping }
|
---|
645 |
|
---|
646 | { 2 5 29 37 extKeyUsage }
|
---|
647 | CRYPT_CERTINFO_EXTKEYUSAGE = 2286;
|
---|
648 | CRYPT_CERTINFO_EXTKEY_MS_INDIVIDUALCODESIGNING = 2287; { individualCodeSigning }
|
---|
649 | CRYPT_CERTINFO_EXTKEY_MS_COMMERCIALCODESIGNING = 2288; { commercialCodeSigning }
|
---|
650 | CRYPT_CERTINFO_EXTKEY_MS_CERTTRUSTLISTSIGNING = 2289; { certTrustListSigning }
|
---|
651 | CRYPT_CERTINFO_EXTKEY_MS_TIMESTAMPSIGNING = 2290; { timeStampSigning }
|
---|
652 | CRYPT_CERTINFO_EXTKEY_MS_SERVERGATEDCRYPTO = 2291; { serverGatedCrypto }
|
---|
653 | CRYPT_CERTINFO_EXTKEY_MS_ENCRYPTEDFILESYSTEM = 2292; { encrypedFileSystem }
|
---|
654 | CRYPT_CERTINFO_EXTKEY_SERVERAUTH = 2293; { serverAuth }
|
---|
655 | CRYPT_CERTINFO_EXTKEY_CLIENTAUTH = 2294; { clientAuth }
|
---|
656 | CRYPT_CERTINFO_EXTKEY_CODESIGNING = 2295; { codeSigning }
|
---|
657 | CRYPT_CERTINFO_EXTKEY_EMAILPROTECTION = 2296; { emailProtection }
|
---|
658 | CRYPT_CERTINFO_EXTKEY_IPSECENDSYSTEM = 2297; { ipsecEndSystem }
|
---|
659 | CRYPT_CERTINFO_EXTKEY_IPSECTUNNEL = 2298; { ipsecTunnel }
|
---|
660 | CRYPT_CERTINFO_EXTKEY_IPSECUSER = 2299; { ipsecUser }
|
---|
661 | CRYPT_CERTINFO_EXTKEY_TIMESTAMPING = 2300; { timeStamping }
|
---|
662 | CRYPT_CERTINFO_EXTKEY_OCSPSIGNING = 2301; { ocspSigning }
|
---|
663 | CRYPT_CERTINFO_EXTKEY_DIRECTORYSERVICE = 2302; { directoryService }
|
---|
664 | CRYPT_CERTINFO_EXTKEY_ANYKEYUSAGE = 2303; { anyExtendedKeyUsage }
|
---|
665 | CRYPT_CERTINFO_EXTKEY_NS_SERVERGATEDCRYPTO = 2304; { serverGatedCrypto }
|
---|
666 | CRYPT_CERTINFO_EXTKEY_VS_SERVERGATEDCRYPTO_CA = 2305; { serverGatedCrypto CA }
|
---|
667 |
|
---|
668 | { 2 5 29 46 freshestCRL }
|
---|
669 | CRYPT_CERTINFO_FRESHESTCRL = 2306;
|
---|
670 | CRYPT_CERTINFO_FRESHESTCRL_FULLNAME = 2307; { distributionPointName.fullName }
|
---|
671 | CRYPT_CERTINFO_FRESHESTCRL_REASONS = 2308; { reasons }
|
---|
672 | CRYPT_CERTINFO_FRESHESTCRL_CRLISSUER = 2309; { cRLIssuer }
|
---|
673 |
|
---|
674 | { 2 5 29 54 inhibitAnyPolicy }
|
---|
675 | CRYPT_CERTINFO_INHIBITANYPOLICY = 2310;
|
---|
676 |
|
---|
677 | { 2 16 840 1 113730 1 x Netscape extensions }
|
---|
678 | CRYPT_CERTINFO_NS_CERTTYPE = 2311; { netscape-cert-type }
|
---|
679 | CRYPT_CERTINFO_NS_BASEURL = 2312; { netscape-base-url }
|
---|
680 | CRYPT_CERTINFO_NS_REVOCATIONURL = 2313; { netscape-revocation-url }
|
---|
681 | CRYPT_CERTINFO_NS_CAREVOCATIONURL = 2314; { netscape-ca-revocation-url }
|
---|
682 | CRYPT_CERTINFO_NS_CERTRENEWALURL = 2315; { netscape-cert-renewal-url }
|
---|
683 | CRYPT_CERTINFO_NS_CAPOLICYURL = 2316; { netscape-ca-policy-url }
|
---|
684 | CRYPT_CERTINFO_NS_SSLSERVERNAME = 2317; { netscape-ssl-server-name }
|
---|
685 | CRYPT_CERTINFO_NS_COMMENT = 2318; { netscape-comment }
|
---|
686 |
|
---|
687 | { 2 23 42 7 0 SET hashedRootKey }
|
---|
688 | CRYPT_CERTINFO_SET_HASHEDROOTKEY = 2319;
|
---|
689 | CRYPT_CERTINFO_SET_ROOTKEYTHUMBPRINT = 2320; { rootKeyThumbPrint }
|
---|
690 |
|
---|
691 | { 2 23 42 7 1 SET certificateType }
|
---|
692 | CRYPT_CERTINFO_SET_CERTIFICATETYPE = 2321;
|
---|
693 |
|
---|
694 | { 2 23 42 7 2 SET merchantData }
|
---|
695 | CRYPT_CERTINFO_SET_MERCHANTDATA = 2322;
|
---|
696 | CRYPT_CERTINFO_SET_MERID = 2323; { merID }
|
---|
697 | CRYPT_CERTINFO_SET_MERACQUIRERBIN = 2324; { merAcquirerBIN }
|
---|
698 | CRYPT_CERTINFO_SET_MERCHANTLANGUAGE = 2325; { merNames.language }
|
---|
699 | CRYPT_CERTINFO_SET_MERCHANTNAME = 2326; { merNames.name }
|
---|
700 | CRYPT_CERTINFO_SET_MERCHANTCITY = 2327; { merNames.city }
|
---|
701 | CRYPT_CERTINFO_SET_MERCHANTSTATEPROVINCE = 2328; { merNames.stateProvince }
|
---|
702 | CRYPT_CERTINFO_SET_MERCHANTPOSTALCODE = 2329; { merNames.postalCode }
|
---|
703 | CRYPT_CERTINFO_SET_MERCHANTCOUNTRYNAME = 2330; { merNames.countryName }
|
---|
704 | CRYPT_CERTINFO_SET_MERCOUNTRY = 2331; { merCountry }
|
---|
705 | CRYPT_CERTINFO_SET_MERAUTHFLAG = 2332; { merAuthFlag }
|
---|
706 |
|
---|
707 | { 2 23 42 7 3 SET certCardRequired }
|
---|
708 | CRYPT_CERTINFO_SET_CERTCARDREQUIRED = 2333;
|
---|
709 |
|
---|
710 | { 2 23 42 7 4 SET tunneling }
|
---|
711 | CRYPT_CERTINFO_SET_TUNNELING = 2334;
|
---|
712 | CRYPT_CERTINFO_SET_TUNNELLING = 2334; { = CRYPT_CERTINFO_SET_TUNNELING }
|
---|
713 | CRYPT_CERTINFO_SET_TUNNELINGFLAG = 2335; { tunneling }
|
---|
714 | CRYPT_CERTINFO_SET_TUNNELLINGFLAG = 2335; { = CRYPT_CERTINFO_SET_TUNNELINGFLAG }
|
---|
715 | CRYPT_CERTINFO_SET_TUNNELINGALGID = 2336; { tunnelingAlgID }
|
---|
716 | CRYPT_CERTINFO_SET_TUNNELLINGALGID = 2336; { = CRYPT_CERTINFO_SET_TUNNELINGALGID }
|
---|
717 |
|
---|
718 | { S/MIME attributes }
|
---|
719 |
|
---|
720 | { 1 2 840 113549 1 9 3 contentType }
|
---|
721 | CRYPT_CERTINFO_CMS_CONTENTTYPE = 2500;
|
---|
722 |
|
---|
723 | { 1 2 840 113549 1 9 4 messageDigest }
|
---|
724 | CRYPT_CERTINFO_CMS_MESSAGEDIGEST = 2501;
|
---|
725 |
|
---|
726 | { 1 2 840 113549 1 9 5 signingTime }
|
---|
727 | CRYPT_CERTINFO_CMS_SIGNINGTIME = 2502;
|
---|
728 |
|
---|
729 | { 1 2 840 113549 1 9 6 counterSignature }
|
---|
730 | CRYPT_CERTINFO_CMS_COUNTERSIGNATURE = 2503; { counterSignature }
|
---|
731 |
|
---|
732 | { 1 2 840 113549 1 9 13 signingDescription }
|
---|
733 | CRYPT_CERTINFO_CMS_SIGNINGDESCRIPTION = 2504;
|
---|
734 |
|
---|
735 | { 1 2 840 113549 1 9 15 sMIMECapabilities }
|
---|
736 | CRYPT_CERTINFO_CMS_SMIMECAPABILITIES = 2505;
|
---|
737 | CRYPT_CERTINFO_CMS_SMIMECAP_3DES = 2506; { 3DES encryption }
|
---|
738 | CRYPT_CERTINFO_CMS_SMIMECAP_AES = 2507; { AES encryption }
|
---|
739 | CRYPT_CERTINFO_CMS_SMIMECAP_CAST128 = 2508; { CAST-128 encryption }
|
---|
740 | CRYPT_CERTINFO_CMS_SMIMECAP_IDEA = 2509; { IDEA encryption }
|
---|
741 | CRYPT_CERTINFO_CMS_SMIMECAP_RC2 = 2510; { RC2 encryption (w.128 key) }
|
---|
742 | CRYPT_CERTINFO_CMS_SMIMECAP_RC5 = 2511; { RC5 encryption (w.128 key) }
|
---|
743 | CRYPT_CERTINFO_CMS_SMIMECAP_SKIPJACK = 2512; { Skipjack encryption }
|
---|
744 | CRYPT_CERTINFO_CMS_SMIMECAP_DES = 2513; { DES encryption }
|
---|
745 | CRYPT_CERTINFO_CMS_SMIMECAP_PREFERSIGNEDDATA = 2514; { preferSignedData }
|
---|
746 | CRYPT_CERTINFO_CMS_SMIMECAP_CANNOTDECRYPTANY = 2515; { canNotDecryptAny }
|
---|
747 |
|
---|
748 | { 1 2 840 113549 1 9 16 2 1 receiptRequest }
|
---|
749 | CRYPT_CERTINFO_CMS_RECEIPTREQUEST = 2516;
|
---|
750 | CRYPT_CERTINFO_CMS_RECEIPT_CONTENTIDENTIFIER = 2517; { contentIdentifier }
|
---|
751 | CRYPT_CERTINFO_CMS_RECEIPT_FROM = 2518; { receiptsFrom }
|
---|
752 | CRYPT_CERTINFO_CMS_RECEIPT_TO = 2519; { receiptsTo }
|
---|
753 |
|
---|
754 | { 1 2 840 113549 1 9 16 2 2 essSecurityLabel }
|
---|
755 | CRYPT_CERTINFO_CMS_SECURITYLABEL = 2520;
|
---|
756 | CRYPT_CERTINFO_CMS_SECLABEL_CLASSIFICATION = 2521; { securityClassification }
|
---|
757 | CRYPT_CERTINFO_CMS_SECLABEL_POLICY = 2522; { securityPolicyIdentifier }
|
---|
758 | CRYPT_CERTINFO_CMS_SECLABEL_PRIVACYMARK = 2523; { privacyMark }
|
---|
759 | CRYPT_CERTINFO_CMS_SECLABEL_CATTYPE = 2524; { securityCategories.securityCategory.type }
|
---|
760 | CRYPT_CERTINFO_CMS_SECLABEL_CATVALUE = 2525; { securityCategories.securityCategory.value }
|
---|
761 |
|
---|
762 | { 1 2 840 113549 1 9 16 2 3 mlExpansionHistory }
|
---|
763 | CRYPT_CERTINFO_CMS_MLEXPANSIONHISTORY = 2526;
|
---|
764 | CRYPT_CERTINFO_CMS_MLEXP_ENTITYIDENTIFIER = 2527; { mlData.mailListIdentifier.issuerAndSerialNumber }
|
---|
765 | CRYPT_CERTINFO_CMS_MLEXP_TIME = 2528; { mlData.expansionTime }
|
---|
766 | CRYPT_CERTINFO_CMS_MLEXP_NONE = 2529; { mlData.mlReceiptPolicy.none }
|
---|
767 | CRYPT_CERTINFO_CMS_MLEXP_INSTEADOF = 2530; { mlData.mlReceiptPolicy.insteadOf.generalNames.generalName }
|
---|
768 | CRYPT_CERTINFO_CMS_MLEXP_INADDITIONTO = 2531; { mlData.mlReceiptPolicy.inAdditionTo.generalNames.generalName }
|
---|
769 |
|
---|
770 | { 1 2 840 113549 1 9 16 2 4 contentHints }
|
---|
771 | CRYPT_CERTINFO_CMS_CONTENTHINTS = 2532;
|
---|
772 | CRYPT_CERTINFO_CMS_CONTENTHINT_DESCRIPTION = 2533; { contentDescription }
|
---|
773 | CRYPT_CERTINFO_CMS_CONTENTHINT_TYPE = 2534; { contentType }
|
---|
774 |
|
---|
775 | { 1 2 840 113549 1 9 16 2 9 equivalentLabels }
|
---|
776 | CRYPT_CERTINFO_CMS_EQUIVALENTLABEL = 2535;
|
---|
777 | CRYPT_CERTINFO_CMS_EQVLABEL_POLICY = 2536; { securityPolicyIdentifier }
|
---|
778 | CRYPT_CERTINFO_CMS_EQVLABEL_CLASSIFICATION = 2537; { securityClassification }
|
---|
779 | CRYPT_CERTINFO_CMS_EQVLABEL_PRIVACYMARK = 2538; { privacyMark }
|
---|
780 | CRYPT_CERTINFO_CMS_EQVLABEL_CATTYPE = 2539; { securityCategories.securityCategory.type }
|
---|
781 | CRYPT_CERTINFO_CMS_EQVLABEL_CATVALUE = 2540; { securityCategories.securityCategory.value }
|
---|
782 |
|
---|
783 | { 1 2 840 113549 1 9 16 2 12 signingCertificate }
|
---|
784 | CRYPT_CERTINFO_CMS_SIGNINGCERTIFICATE = 2541;
|
---|
785 | CRYPT_CERTINFO_CMS_SIGNINGCERT_ESSCERTID = 2542; { certs.essCertID }
|
---|
786 | CRYPT_CERTINFO_CMS_SIGNINGCERT_POLICIES = 2543; { policies.policyInformation.policyIdentifier }
|
---|
787 |
|
---|
788 | { 1 2 840 113549 1 9 16 2 15 signaturePolicyID }
|
---|
789 | CRYPT_CERTINFO_CMS_SIGNATUREPOLICYID = 2544;
|
---|
790 | CRYPT_CERTINFO_CMS_SIGPOLICYID = 2545; { sigPolicyID }
|
---|
791 | CRYPT_CERTINFO_CMS_SIGPOLICYHASH = 2546; { sigPolicyHash }
|
---|
792 | CRYPT_CERTINFO_CMS_SIGPOLICY_CPSURI = 2547; { sigPolicyQualifiers.sigPolicyQualifier.cPSuri }
|
---|
793 | CRYPT_CERTINFO_CMS_SIGPOLICY_ORGANIZATION = 2548;
|
---|
794 | { sigPolicyQualifiers.sigPolicyQualifier.userNotice.noticeRef.organization }
|
---|
795 | CRYPT_CERTINFO_CMS_SIGPOLICY_NOTICENUMBERS = 2549;
|
---|
796 | { sigPolicyQualifiers.sigPolicyQualifier.userNotice.noticeRef.noticeNumbers }
|
---|
797 | CRYPT_CERTINFO_CMS_SIGPOLICY_EXPLICITTEXT = 2550;
|
---|
798 | { sigPolicyQualifiers.sigPolicyQualifier.userNotice.explicitText }
|
---|
799 |
|
---|
800 | { 1 2 840 113549 1 9 16 9 signatureTypeIdentifier }
|
---|
801 | CRYPT_CERTINFO_CMS_SIGTYPEIDENTIFIER = 2551;
|
---|
802 | CRYPT_CERTINFO_CMS_SIGTYPEID_ORIGINATORSIG = 2552; { originatorSig }
|
---|
803 | CRYPT_CERTINFO_CMS_SIGTYPEID_DOMAINSIG = 2553; { domainSig }
|
---|
804 | CRYPT_CERTINFO_CMS_SIGTYPEID_ADDITIONALATTRIBUTES = 2554; { additionalAttributesSig }
|
---|
805 | CRYPT_CERTINFO_CMS_SIGTYPEID_REVIEWSIG = 2555; { reviewSig }
|
---|
806 |
|
---|
807 | { 1 2 840 113549 1 9 25 3 randomNonce }
|
---|
808 | CRYPT_CERTINFO_CMS_NONCE = 2556; { randomNonce }
|
---|
809 |
|
---|
810 | { SCEP attributes:
|
---|
811 | 2 16 840 1 113733 1 9 2 messageType
|
---|
812 | 2 16 840 1 113733 1 9 3 pkiStatus
|
---|
813 | 2 16 840 1 113733 1 9 4 failInfo
|
---|
814 | 2 16 840 1 113733 1 9 5 senderNonce
|
---|
815 | 2 16 840 1 113733 1 9 6 recipientNonce
|
---|
816 | 2 16 840 1 113733 1 9 7 transID }
|
---|
817 | CRYPT_CERTINFO_SCEP_MESSAGETYPE = 2557; { messageType }
|
---|
818 | CRYPT_CERTINFO_SCEP_PKISTATUS = 2558; { pkiStatus }
|
---|
819 | CRYPT_CERTINFO_SCEP_FAILINFO = 2559; { failInfo }
|
---|
820 | CRYPT_CERTINFO_SCEP_SENDERNONCE = 2560; { senderNonce }
|
---|
821 | CRYPT_CERTINFO_SCEP_RECIPIENTNONCE = 2561; { recipientNonce }
|
---|
822 | CRYPT_CERTINFO_SCEP_TRANSACTIONID = 2562; { transID }
|
---|
823 |
|
---|
824 | { 1 3 6 1 4 1 311 2 1 10 spcAgencyInfo }
|
---|
825 | CRYPT_CERTINFO_CMS_SPCAGENCYINFO = 2563;
|
---|
826 | CRYPT_CERTINFO_CMS_SPCAGENCYURL = 2564; { spcAgencyInfo.url }
|
---|
827 |
|
---|
828 | { 1 3 6 1 4 1 311 2 1 11 spcStatementType }
|
---|
829 | CRYPT_CERTINFO_CMS_SPCSTATEMENTTYPE = 2565;
|
---|
830 | CRYPT_CERTINFO_CMS_SPCSTMT_INDIVIDUALCODESIGNING = 2566; { individualCodeSigning }
|
---|
831 | CRYPT_CERTINFO_CMS_SPCSTMT_COMMERCIALCODESIGNING = 2567; { commercialCodeSigning }
|
---|
832 |
|
---|
833 | { 1 3 6 1 4 1 311 2 1 12 spcOpusInfo }
|
---|
834 | CRYPT_CERTINFO_CMS_SPCOPUSINFO = 2568;
|
---|
835 | CRYPT_CERTINFO_CMS_SPCOPUSINFO_NAME = 2569; { spcOpusInfo.name }
|
---|
836 | CRYPT_CERTINFO_CMS_SPCOPUSINFO_URL = 2570; { spcOpusInfo.url }
|
---|
837 |
|
---|
838 | { Used internally }
|
---|
839 | CRYPT_CERTINFO_LAST = 2571; CRYPT_KEYINFO_FIRST = 3000;
|
---|
840 |
|
---|
841 | {*******************}
|
---|
842 | { Keyset attributes }
|
---|
843 | {*******************}
|
---|
844 |
|
---|
845 | CRYPT_KEYINFO_QUERY = 3001; { Keyset query }
|
---|
846 | CRYPT_KEYINFO_QUERY_REQUESTS = 3002; { Query of requests in cert store }
|
---|
847 |
|
---|
848 | { Used internally }
|
---|
849 | CRYPT_KEYINFO_LAST = 3003; CRYPT_DEVINFO_FIRST = 4000;
|
---|
850 |
|
---|
851 | {*******************}
|
---|
852 | { Device attributes }
|
---|
853 | {*******************}
|
---|
854 |
|
---|
855 | CRYPT_DEVINFO_INITIALISE = 4001; { Initialise device for use }
|
---|
856 | CRYPT_DEVINFO_INITIALIZE = 4001; { = CRYPT_DEVINFO_INITIALISE }
|
---|
857 | CRYPT_DEVINFO_AUTHENT_USER = 4002; { Authenticate user to device }
|
---|
858 | CRYPT_DEVINFO_AUTHENT_SUPERVISOR = 4003; { Authenticate supervisor to dev.}
|
---|
859 | CRYPT_DEVINFO_SET_AUTHENT_USER = 4004; { Set user authent.value }
|
---|
860 | CRYPT_DEVINFO_SET_AUTHENT_SUPERVISOR = 4005; { Set supervisor auth.val.}
|
---|
861 | CRYPT_DEVINFO_ZEROISE = 4006; { Zeroise device }
|
---|
862 | CRYPT_DEVINFO_ZEROIZE = 4006; { = CRYPT_DEVINFO_ZEROISE }
|
---|
863 | CRYPT_DEVINFO_LOGGEDIN = 4007; { Whether user is logged in }
|
---|
864 | CRYPT_DEVINFO_LABEL = 4008; { Device/token label }
|
---|
865 |
|
---|
866 | { Used internally }
|
---|
867 | CRYPT_DEVINFO_LAST = 4009; CRYPT_ENVINFO_FIRST = 5000;
|
---|
868 |
|
---|
869 | {*********************}
|
---|
870 | { Envelope attributes }
|
---|
871 | {*********************}
|
---|
872 |
|
---|
873 | { Pseudo-information on an envelope or meta-information which is used to
|
---|
874 | control the way that data in an envelope is processed }
|
---|
875 | CRYPT_ENVINFO_DATASIZE = 5001; { Data size information }
|
---|
876 | CRYPT_ENVINFO_COMPRESSION = 5002; { Compression information }
|
---|
877 | CRYPT_ENVINFO_CONTENTTYPE = 5003; { Inner CMS content type }
|
---|
878 | CRYPT_ENVINFO_DETACHEDSIGNATURE = 5004; { Generate CMS detached signature }
|
---|
879 | CRYPT_ENVINFO_SIGNATURE_RESULT = 5005; { Signature check result }
|
---|
880 | CRYPT_ENVINFO_MAC = 5006; { Use MAC instead of encrypting }
|
---|
881 |
|
---|
882 | { Resources required for enveloping/deenveloping }
|
---|
883 | CRYPT_ENVINFO_PASSWORD = 5007; { User password }
|
---|
884 | CRYPT_ENVINFO_KEY = 5008; { Conventional encryption key }
|
---|
885 | CRYPT_ENVINFO_SIGNATURE = 5009; { Signature/signature check key }
|
---|
886 | CRYPT_ENVINFO_SIGNATURE_EXTRADATA = 5010; { Extra information added to CMS sigs }
|
---|
887 | CRYPT_ENVINFO_RECIPIENT = 5011; { Recipient email address }
|
---|
888 | CRYPT_ENVINFO_PUBLICKEY = 5012; { PKC encryption key }
|
---|
889 | CRYPT_ENVINFO_PRIVATEKEY = 5013; { PKC decryption key }
|
---|
890 | CRYPT_ENVINFO_PRIVATEKEY_LABEL = 5014; { Label of PKC decryption key }
|
---|
891 | CRYPT_ENVINFO_ORIGINATOR = 5015; { Originator info/key }
|
---|
892 | CRYPT_ENVINFO_SESSIONKEY = 5016; { Session key }
|
---|
893 | CRYPT_ENVINFO_HASH = 5017; { Hash value }
|
---|
894 | CRYPT_ENVINFO_TIMESTAMP = 5018; { Timestamp information }
|
---|
895 |
|
---|
896 | { Keysets used to retrieve keys needed for enveloping/deenveloping }
|
---|
897 | CRYPT_ENVINFO_KEYSET_SIGCHECK = 5019; { Signature check keyset }
|
---|
898 | CRYPT_ENVINFO_KEYSET_ENCRYPT = 5020; { PKC encryption keyset }
|
---|
899 | CRYPT_ENVINFO_KEYSET_DECRYPT = 5021; { PKC decryption keyset }
|
---|
900 |
|
---|
901 | { Used internally }
|
---|
902 | CRYPT_ENVINFO_LAST = 5022; CRYPT_SESSINFO_FIRST = 6000;
|
---|
903 |
|
---|
904 | {********************}
|
---|
905 | { Session attributes }
|
---|
906 | {********************}
|
---|
907 |
|
---|
908 | { Pseudo-information on a session or meta-information which is used to
|
---|
909 | control the way that a session is managed }
|
---|
910 |
|
---|
911 | { Pseudo-information about the session }
|
---|
912 | CRYPT_SESSINFO_ACTIVE = 6001; { Whether session is active }
|
---|
913 | CRYPT_SESSINFO_CONNECTIONACTIVE = 6002; { Whether network connection is active }
|
---|
914 |
|
---|
915 | { Security-related information }
|
---|
916 | CRYPT_SESSINFO_USERNAME = 6003; { User name }
|
---|
917 | CRYPT_SESSINFO_PASSWORD = 6004; { Password }
|
---|
918 | CRYPT_SESSINFO_PRIVATEKEY = 6005; { Server/client private key }
|
---|
919 | CRYPT_SESSINFO_KEYSET = 6006; { Certificate store }
|
---|
920 | CRYPT_SESSINFO_AUTHRESPONSE = 6007; { Session authorisation OK }
|
---|
921 |
|
---|
922 | { Client/server information }
|
---|
923 | CRYPT_SESSINFO_SERVER_NAME = 6008; { Server name }
|
---|
924 | CRYPT_SESSINFO_SERVER_PORT = 6009; { Server port number }
|
---|
925 | CRYPT_SESSINFO_SERVER_FINGERPRINT = 6010; { Server key fingerprint }
|
---|
926 | CRYPT_SESSINFO_CLIENT_NAME = 6011; { Client name }
|
---|
927 | CRYPT_SESSINFO_CLIENT_PORT = 6012; { Client port number }
|
---|
928 | CRYPT_SESSINFO_SESSION = 6013; { Transport mechanism }
|
---|
929 | CRYPT_SESSINFO_NETWORKSOCKET = 6014; { User-supplied network socket }
|
---|
930 |
|
---|
931 | { Generic protocol-related information }
|
---|
932 | CRYPT_SESSINFO_VERSION = 6015; { Protocol version }
|
---|
933 | CRYPT_SESSINFO_REQUEST = 6016; { Cert.request object }
|
---|
934 | CRYPT_SESSINFO_RESPONSE = 6017; { Cert.response object }
|
---|
935 | CRYPT_SESSINFO_CACERTIFICATE = 6018; { Issuing CA certificate }
|
---|
936 |
|
---|
937 | { Protocol-specific information }
|
---|
938 | CRYPT_SESSINFO_TSP_MSGIMPRINT = 6019; { TSP message imprint }
|
---|
939 | CRYPT_SESSINFO_CMP_REQUESTTYPE = 6020; { Request type }
|
---|
940 | CRYPT_SESSINFO_CMP_PKIBOOT = 6021; { Enable PKIBoot facility }
|
---|
941 | CRYPT_SESSINFO_CMP_PRIVKEYSET = 6022; { Private-key keyset }
|
---|
942 | CRYPT_SESSINFO_SSH_CHANNEL = 6023; { SSH current channel }
|
---|
943 | CRYPT_SESSINFO_SSH_CHANNEL_TYPE = 6024; { SSH channel type }
|
---|
944 | CRYPT_SESSINFO_SSH_CHANNEL_ARG1 = 6025; { SSH channel argument 1 }
|
---|
945 | CRYPT_SESSINFO_SSH_CHANNEL_ARG2 = 6026; { SSH channel argument 2 }
|
---|
946 | CRYPT_SESSINFO_SSH_CHANNEL_ACTIVE = 6027; { SSH channel active }
|
---|
947 |
|
---|
948 | { Used internally }
|
---|
949 | CRYPT_SESSINFO_LAST = 6028; CRYPT_USERINFO_FIRST = 7000;
|
---|
950 |
|
---|
951 | {********************}
|
---|
952 | { User attributes }
|
---|
953 | {********************}
|
---|
954 |
|
---|
955 | { Security-related information }
|
---|
956 | CRYPT_USERINFO_PASSWORD = 7001; { Password }
|
---|
957 |
|
---|
958 | { User role-related information }
|
---|
959 | CRYPT_USERINFO_CAKEY_CERTSIGN = 7002; { CA cert signing key }
|
---|
960 | CRYPT_USERINFO_CAKEY_CRLSIGN = 7003; { CA CRL signing key }
|
---|
961 | CRYPT_USERINFO_CAKEY_RTCSSIGN = 7004; { CA RTCS signing key }
|
---|
962 | CRYPT_USERINFO_CAKEY_OCSPSIGN = 7005; { CA OCSP signing key }
|
---|
963 |
|
---|
964 | { Used internally for range checking }
|
---|
965 | CRYPT_USERINFO_LAST = 7006; CRYPT_ATTRIBUTE_LAST = 7006; { = CRYPT_USERINFO_LAST }
|
---|
966 |
|
---|
967 |
|
---|
968 |
|
---|
969 |
|
---|
970 |
|
---|
971 | {****************************************************************************
|
---|
972 | * *
|
---|
973 | * Attribute Subtypes and Related Values *
|
---|
974 | * *
|
---|
975 | ****************************************************************************}
|
---|
976 |
|
---|
977 | { Flags for the X.509 keyUsage extension }
|
---|
978 |
|
---|
979 | CRYPT_KEYUSAGE_NONE = $000;
|
---|
980 | CRYPT_KEYUSAGE_DIGITALSIGNATURE = $001;
|
---|
981 | CRYPT_KEYUSAGE_NONREPUDIATION = $002;
|
---|
982 | CRYPT_KEYUSAGE_KEYENCIPHERMENT = $004;
|
---|
983 | CRYPT_KEYUSAGE_DATAENCIPHERMENT = $008;
|
---|
984 | CRYPT_KEYUSAGE_KEYAGREEMENT = $010;
|
---|
985 | CRYPT_KEYUSAGE_KEYCERTSIGN = $020;
|
---|
986 | CRYPT_KEYUSAGE_CRLSIGN = $040;
|
---|
987 | CRYPT_KEYUSAGE_ENCIPHERONLY = $080;
|
---|
988 | CRYPT_KEYUSAGE_DECIPHERONLY = $100;
|
---|
989 | CRYPT_KEYUSAGE_LAST = $200; { Last possible value }
|
---|
990 |
|
---|
991 | { X.509 cRLReason and cryptlib cRLExtReason codes }
|
---|
992 |
|
---|
993 |
|
---|
994 | CRYPT_CRLREASON_UNSPECIFIED = 0;
|
---|
995 | CRYPT_CRLREASON_KEYCOMPROMISE = 1;
|
---|
996 | CRYPT_CRLREASON_CACOMPROMISE = 2;
|
---|
997 | CRYPT_CRLREASON_AFFILIATIONCHANGED = 3;
|
---|
998 | CRYPT_CRLREASON_SUPERSEDED = 4;
|
---|
999 | CRYPT_CRLREASON_CESSATIONOFOPERATION = 5;
|
---|
1000 | CRYPT_CRLREASON_CERTIFICATEHOLD = 6;
|
---|
1001 | CRYPT_CRLREASON_REMOVEFROMCRL = 8;
|
---|
1002 | CRYPT_CRLREASON_PRIVILEGEWITHDRAWN = 9;
|
---|
1003 | CRYPT_CRLREASON_AACOMPROMISE = 10;
|
---|
1004 | CRYPT_CRLREASON_LAST = 11;
|
---|
1005 | { End of standard CRL reasons }
|
---|
1006 | CRYPT_CRLREASON_NEVERVALID = 20;
|
---|
1007 | CRYPT_CRLEXTREASON_LAST = 21;
|
---|
1008 |
|
---|
1009 |
|
---|
1010 |
|
---|
1011 | { X.509 CRL reason flags. These identify the same thing as the cRLReason
|
---|
1012 | codes but allow for multiple reasons to be specified. Note that these
|
---|
1013 | don't follow the X.509 naming since in that scheme the enumerated types
|
---|
1014 | and bitflags have the same names }
|
---|
1015 |
|
---|
1016 | CRYPT_CRLREASONFLAG_UNUSED = $001;
|
---|
1017 | CRYPT_CRLREASONFLAG_KEYCOMPROMISE = $002;
|
---|
1018 | CRYPT_CRLREASONFLAG_CACOMPROMISE = $004;
|
---|
1019 | CRYPT_CRLREASONFLAG_AFFILIATIONCHANGED = $008;
|
---|
1020 | CRYPT_CRLREASONFLAG_SUPERSEDED = $010;
|
---|
1021 | CRYPT_CRLREASONFLAG_CESSATIONOFOPERATION = $020;
|
---|
1022 | CRYPT_CRLREASONFLAG_CERTIFICATEHOLD = $040;
|
---|
1023 | CRYPT_CRLREASONFLAG_LAST = $080; { Last poss.value }
|
---|
1024 |
|
---|
1025 | { X.509 CRL holdInstruction codes }
|
---|
1026 |
|
---|
1027 |
|
---|
1028 | CRYPT_HOLDINSTRUCTION_NONE = 0;
|
---|
1029 | CRYPT_HOLDINSTRUCTION_CALLISSUER = 1;
|
---|
1030 | CRYPT_HOLDINSTRUCTION_REJECT = 2;
|
---|
1031 | CRYPT_HOLDINSTRUCTION_PICKUPTOKEN = 3;
|
---|
1032 | CRYPT_HOLDINSTRUCTION_LAST = 4;
|
---|
1033 |
|
---|
1034 |
|
---|
1035 |
|
---|
1036 | { Certificate checking compliance levels }
|
---|
1037 |
|
---|
1038 |
|
---|
1039 | CRYPT_COMPLIANCELEVEL_OBLIVIOUS = 0;
|
---|
1040 | CRYPT_COMPLIANCELEVEL_REDUCED = 1;
|
---|
1041 | CRYPT_COMPLIANCELEVEL_STANDARD = 2;
|
---|
1042 | CRYPT_COMPLIANCELEVEL_PKIX_PARTIAL = 3;
|
---|
1043 | CRYPT_COMPLIANCELEVEL_PKIX_FULL = 4;
|
---|
1044 | CRYPT_COMPLIANCELEVEL_LAST = 5;
|
---|
1045 |
|
---|
1046 |
|
---|
1047 |
|
---|
1048 | { Flags for the Netscape netscape-cert-type extension }
|
---|
1049 |
|
---|
1050 | CRYPT_NS_CERTTYPE_SSLCLIENT = $001;
|
---|
1051 | CRYPT_NS_CERTTYPE_SSLSERVER = $002;
|
---|
1052 | CRYPT_NS_CERTTYPE_SMIME = $004;
|
---|
1053 | CRYPT_NS_CERTTYPE_OBJECTSIGNING = $008;
|
---|
1054 | CRYPT_NS_CERTTYPE_RESERVED = $010;
|
---|
1055 | CRYPT_NS_CERTTYPE_SSLCA = $020;
|
---|
1056 | CRYPT_NS_CERTTYPE_SMIMECA = $040;
|
---|
1057 | CRYPT_NS_CERTTYPE_OBJECTSIGNINGCA = $080;
|
---|
1058 | CRYPT_NS_CERTTYPE_LAST = $100; { Last possible value }
|
---|
1059 |
|
---|
1060 | { Flags for the SET certificate-type extension }
|
---|
1061 |
|
---|
1062 | CRYPT_SET_CERTTYPE_CARD = $001;
|
---|
1063 | CRYPT_SET_CERTTYPE_MER = $002;
|
---|
1064 | CRYPT_SET_CERTTYPE_PGWY = $004;
|
---|
1065 | CRYPT_SET_CERTTYPE_CCA = $008;
|
---|
1066 | CRYPT_SET_CERTTYPE_MCA = $010;
|
---|
1067 | CRYPT_SET_CERTTYPE_PCA = $020;
|
---|
1068 | CRYPT_SET_CERTTYPE_GCA = $040;
|
---|
1069 | CRYPT_SET_CERTTYPE_BCA = $080;
|
---|
1070 | CRYPT_SET_CERTTYPE_RCA = $100;
|
---|
1071 | CRYPT_SET_CERTTYPE_ACQ = $200;
|
---|
1072 | CRYPT_SET_CERTTYPE_LAST = $400; { Last possible value }
|
---|
1073 |
|
---|
1074 | { CMS contentType values }
|
---|
1075 |
|
---|
1076 |
|
---|
1077 | type
|
---|
1078 | CRYPT_CONTENT_TYPE = ( CRYPT_CONTENT_NONE, CRYPT_CONTENT_DATA,
|
---|
1079 | CRYPT_CONTENT_SIGNEDDATA, CRYPT_CONTENT_ENVELOPEDDATA,
|
---|
1080 | CRYPT_CONTENT_SIGNEDANDENVELOPEDDATA,
|
---|
1081 | CRYPT_CONTENT_DIGESTEDDATA, CRYPT_CONTENT_ENCRYPTEDDATA,
|
---|
1082 | CRYPT_CONTENT_COMPRESSEDDATA, CRYPT_CONTENT_TSTINFO,
|
---|
1083 | CRYPT_CONTENT_SPCINDIRECTDATACONTEXT,
|
---|
1084 | CRYPT_CONTENT_RTCSREQUEST, CRYPT_CONTENT_RTCSRESPONSE,
|
---|
1085 | CRYPT_CONTENT_RTCSRESPONSE_EXT, CRYPT_CONTENT_LAST
|
---|
1086 |
|
---|
1087 | );
|
---|
1088 |
|
---|
1089 | { ESS securityClassification codes }
|
---|
1090 |
|
---|
1091 |
|
---|
1092 |
|
---|
1093 | const
|
---|
1094 | CRYPT_CLASSIFICATION_UNMARKED = 0;
|
---|
1095 | CRYPT_CLASSIFICATION_UNCLASSIFIED = 1;
|
---|
1096 | CRYPT_CLASSIFICATION_RESTRICTED = 2;
|
---|
1097 | CRYPT_CLASSIFICATION_CONFIDENTIAL = 3;
|
---|
1098 | CRYPT_CLASSIFICATION_SECRET = 4;
|
---|
1099 | CRYPT_CLASSIFICATION_TOP_SECRET = 5;
|
---|
1100 | CRYPT_CLASSIFICATION_LAST = 255 ;
|
---|
1101 |
|
---|
1102 |
|
---|
1103 |
|
---|
1104 | { RTCS certificate status }
|
---|
1105 |
|
---|
1106 |
|
---|
1107 | CRYPT_CERTSTATUS_VALID = 0;
|
---|
1108 | CRYPT_CERTSTATUS_NOTVALID = 1;
|
---|
1109 | CRYPT_CERTSTATUS_NONAUTHORITATIVE = 2;
|
---|
1110 | CRYPT_CERTSTATUS_UNKNOWN = 3;
|
---|
1111 |
|
---|
1112 |
|
---|
1113 |
|
---|
1114 | { OCSP revocation status }
|
---|
1115 |
|
---|
1116 |
|
---|
1117 | CRYPT_OCSPSTATUS_NOTREVOKED = 0;
|
---|
1118 | CRYPT_OCSPSTATUS_REVOKED = 1;
|
---|
1119 | CRYPT_OCSPSTATUS_UNKNOWN = 2;
|
---|
1120 |
|
---|
1121 |
|
---|
1122 |
|
---|
1123 | { The amount of detail to include in signatures when signing certificate
|
---|
1124 | objects }
|
---|
1125 |
|
---|
1126 |
|
---|
1127 | type
|
---|
1128 | CRYPT_SIGNATURELEVEL_TYPE = (
|
---|
1129 | CRYPT_SIGNATURELEVEL_NONE, { Include only signature }
|
---|
1130 | CRYPT_SIGNATURELEVEL_SIGNERCERT,{ Include signer cert }
|
---|
1131 | CRYPT_SIGNATURELEVEL_ALL, { Include all relevant info }
|
---|
1132 | CRYPT_SIGNATURELEVEL_LAST { Last possible sig.level type }
|
---|
1133 |
|
---|
1134 | );
|
---|
1135 |
|
---|
1136 | { The certificate export format type, which defines the format in which a
|
---|
1137 | certificate object is exported }
|
---|
1138 |
|
---|
1139 | CRYPT_CERTFORMAT_TYPE = (
|
---|
1140 | CRYPT_CERTFORMAT_NONE, { No certificate format }
|
---|
1141 | CRYPT_CERTFORMAT_CERTIFICATE, { DER-encoded certificate }
|
---|
1142 | CRYPT_CERTFORMAT_CERTCHAIN, { PKCS #7 certificate chain }
|
---|
1143 | CRYPT_CERTFORMAT_TEXT_CERTIFICATE, { base-64 wrapped cert }
|
---|
1144 | CRYPT_CERTFORMAT_TEXT_CERTCHAIN, { base-64 wrapped cert chain }
|
---|
1145 | CRYPT_CERTFORMAT_XML_CERTIFICATE, { XML wrapped cert }
|
---|
1146 | CRYPT_CERTFORMAT_XML_CERTCHAIN, { XML wrapped cert chain }
|
---|
1147 | CRYPT_CERTFORMAT_LAST { Last possible cert.format type }
|
---|
1148 |
|
---|
1149 | );
|
---|
1150 |
|
---|
1151 | { CMP request types }
|
---|
1152 |
|
---|
1153 | CRYPT_REQUESTTYPE_TYPE = (
|
---|
1154 | CRYPT_REQUESTTYPE_NONE, { No request type }
|
---|
1155 | CRYPT_REQUESTTYPE_INITIALISATION, { Initialisation request }
|
---|
1156 | CRYPT_REQUESTTYPE_CERTIFICATE, { Certification request }
|
---|
1157 | CRYPT_REQUESTTYPE_KEYUPDATE, { Key update request }
|
---|
1158 | CRYPT_REQUESTTYPE_REVOCATION, { Cert revocation request }
|
---|
1159 | CRYPT_REQUESTTYPE_PKIBOOT, { PKIBoot request }
|
---|
1160 | CRYPT_REQUESTTYPE_LAST { Last possible request type }
|
---|
1161 |
|
---|
1162 | );
|
---|
1163 |
|
---|
1164 | const
|
---|
1165 | CRYPT_REQUESTTYPE_INITIALIZATION: CRYPT_REQUESTTYPE_TYPE = CRYPT_REQUESTTYPE_INITIALISATION;
|
---|
1166 |
|
---|
1167 | { Key ID types }
|
---|
1168 |
|
---|
1169 |
|
---|
1170 | type
|
---|
1171 | CRYPT_KEYID_TYPE = (
|
---|
1172 | CRYPT_KEYID_NONE, { No key ID type }
|
---|
1173 | CRYPT_KEYID_NAME, { Key owner name }
|
---|
1174 | CRYPT_KEYID_URI, { Key owner URI } { Synonym: owner email addr.}
|
---|
1175 | CRYPT_KEYID_LAST { Last possible key ID type }
|
---|
1176 |
|
---|
1177 | );
|
---|
1178 |
|
---|
1179 | const
|
---|
1180 | CRYPT_KEYID_EMAIL: CRYPT_KEYID_TYPE = CRYPT_KEYID_URI;
|
---|
1181 |
|
---|
1182 | { The encryption object types }
|
---|
1183 |
|
---|
1184 |
|
---|
1185 | type
|
---|
1186 | CRYPT_OBJECT_TYPE = (
|
---|
1187 | CRYPT_OBJECT_NONE, { No object type }
|
---|
1188 | CRYPT_OBJECT_ENCRYPTED_KEY, { Conventionally encrypted key }
|
---|
1189 | CRYPT_OBJECT_PKCENCRYPTED_KEY, { PKC-encrypted key }
|
---|
1190 | CRYPT_OBJECT_KEYAGREEMENT, { Key agreement information }
|
---|
1191 | CRYPT_OBJECT_SIGNATURE, { Signature }
|
---|
1192 | CRYPT_OBJECT_LAST { Last possible object type }
|
---|
1193 |
|
---|
1194 | );
|
---|
1195 |
|
---|
1196 | { Object/attribute error type information }
|
---|
1197 |
|
---|
1198 | CRYPT_ERRTYPE_TYPE = (
|
---|
1199 | CRYPT_ERRTYPE_NONE, { No error information }
|
---|
1200 | CRYPT_ERRTYPE_ATTR_SIZE, { Attribute data too small or large }
|
---|
1201 | CRYPT_ERRTYPE_ATTR_VALUE, { Attribute value is invalid }
|
---|
1202 | CRYPT_ERRTYPE_ATTR_ABSENT, { Required attribute missing }
|
---|
1203 | CRYPT_ERRTYPE_ATTR_PRESENT, { Non-allowed attribute present }
|
---|
1204 | CRYPT_ERRTYPE_CONSTRAINT, { Cert: Constraint violation in object }
|
---|
1205 | CRYPT_ERRTYPE_ISSUERCONSTRAINT, { Cert: Constraint viol.in issuing cert }
|
---|
1206 | CRYPT_ERRTYPE_LAST { Last possible error info type }
|
---|
1207 |
|
---|
1208 | );
|
---|
1209 |
|
---|
1210 | { Cert store management action type }
|
---|
1211 |
|
---|
1212 | CRYPT_CERTACTION_TYPE = (
|
---|
1213 | CRYPT_CERTACTION_NONE, { No cert management action }
|
---|
1214 | CRYPT_CERTACTION_CREATE, { Create cert store }
|
---|
1215 | CRYPT_CERTACTION_CONNECT, { Connect to cert store }
|
---|
1216 | CRYPT_CERTACTION_DISCONNECT, { Disconnect from cert store }
|
---|
1217 | CRYPT_CERTACTION_ERROR, { Error information }
|
---|
1218 | CRYPT_CERTACTION_ADDUSER, { Add PKI user }
|
---|
1219 | CRYPT_CERTACTION_DELETEUSER, { Delete PKI user }
|
---|
1220 | CRYPT_CERTACTION_REQUEST_CERT, { Cert request }
|
---|
1221 | CRYPT_CERTACTION_REQUEST_RENEWAL,{ Cert renewal request }
|
---|
1222 | CRYPT_CERTACTION_REQUEST_REVOCATION,{ Cert revocation request }
|
---|
1223 | CRYPT_CERTACTION_CERT_CREATION, { Cert creation }
|
---|
1224 | CRYPT_CERTACTION_CERT_CREATION_COMPLETE,{ Confirmation of cert creation }
|
---|
1225 | CRYPT_CERTACTION_CERT_CREATION_DROP, { Cancellation of cert creation }
|
---|
1226 | CRYPT_CERTACTION_CERT_CREATION_REVERSE, { Cancel of creation w.revocation }
|
---|
1227 | CRYPT_CERTACTION_RESTART_CLEANUP, { Delete reqs after restart }
|
---|
1228 | CRYPT_CERTACTION_RESTART_REVOKE_CERT, { Complete revocation after restart }
|
---|
1229 | CRYPT_CERTACTION_ISSUE_CERT, { Cert issue }
|
---|
1230 | CRYPT_CERTACTION_ISSUE_CRL, { CRL issue }
|
---|
1231 | CRYPT_CERTACTION_REVOKE_CERT, { Cert revocation }
|
---|
1232 | CRYPT_CERTACTION_EXPIRE_CERT, { Cert expiry }
|
---|
1233 | CRYPT_CERTACTION_CLEANUP, { Clean up on restart }
|
---|
1234 | CRYPT_CERTACTION_LAST { Last possible cert store log action }
|
---|
1235 |
|
---|
1236 | );
|
---|
1237 |
|
---|
1238 | {****************************************************************************
|
---|
1239 | * *
|
---|
1240 | * General Constants *
|
---|
1241 | * *
|
---|
1242 | ****************************************************************************}
|
---|
1243 |
|
---|
1244 | { The maximum user key size - 2048 bits }
|
---|
1245 |
|
---|
1246 |
|
---|
1247 | const
|
---|
1248 | CRYPT_MAX_KEYSIZE = 256;
|
---|
1249 |
|
---|
1250 | { The maximum IV size - 256 bits }
|
---|
1251 |
|
---|
1252 | CRYPT_MAX_IVSIZE = 32;
|
---|
1253 |
|
---|
1254 | { The maximum public-key component size - 4096 bits }
|
---|
1255 |
|
---|
1256 | CRYPT_MAX_PKCSIZE = 512;
|
---|
1257 |
|
---|
1258 | { The maximum hash size - 256 bits }
|
---|
1259 |
|
---|
1260 | CRYPT_MAX_HASHSIZE = 32;
|
---|
1261 |
|
---|
1262 | { The maximum size of a text string (e.g.key owner name) }
|
---|
1263 |
|
---|
1264 | CRYPT_MAX_TEXTSIZE = 64;
|
---|
1265 |
|
---|
1266 | { A magic value indicating that the default setting for this parameter
|
---|
1267 | should be used }
|
---|
1268 |
|
---|
1269 | CRYPT_USE_DEFAULT = -10;
|
---|
1270 |
|
---|
1271 | { A magic value for unused parameters }
|
---|
1272 |
|
---|
1273 | CRYPT_UNUSED = -11;
|
---|
1274 |
|
---|
1275 | { Whether the PKC key is a public or private key }
|
---|
1276 |
|
---|
1277 | CRYPT_KEYTYPE_PRIVATE = 0;
|
---|
1278 | CRYPT_KEYTYPE_PUBLIC = 1;
|
---|
1279 |
|
---|
1280 | { The type of information polling to perform to get random seed information }
|
---|
1281 |
|
---|
1282 | CRYPT_RANDOM_FASTPOLL = -10;
|
---|
1283 | CRYPT_RANDOM_SLOWPOLL = -11;
|
---|
1284 |
|
---|
1285 | { Cursor positioning codes for certificate/CRL extensions }
|
---|
1286 |
|
---|
1287 | CRYPT_CURSOR_FIRST = -20;
|
---|
1288 | CRYPT_CURSOR_PREVIOUS = -21;
|
---|
1289 | CRYPT_CURSOR_NEXT = -22;
|
---|
1290 | CRYPT_CURSOR_LAST = -23;
|
---|
1291 |
|
---|
1292 | { Keyset open options }
|
---|
1293 |
|
---|
1294 |
|
---|
1295 | type
|
---|
1296 | CRYPT_KEYOPT_TYPE = (
|
---|
1297 | CRYPT_KEYOPT_NONE, { No options }
|
---|
1298 | CRYPT_KEYOPT_READONLY, { Open keyset in read-only mode }
|
---|
1299 | CRYPT_KEYOPT_CREATE, { Create a new keyset }
|
---|
1300 | CRYPT_KEYOPT_LAST { Last possible key option type }
|
---|
1301 |
|
---|
1302 | );
|
---|
1303 |
|
---|
1304 | { The various cryptlib objects - these are just integer handles }
|
---|
1305 |
|
---|
1306 | CRYPT_CERTIFICATE = Integer;
|
---|
1307 | CRYPT_CONTEXT = Integer;
|
---|
1308 | CRYPT_DEVICE = Integer;
|
---|
1309 | CRYPT_ENVELOPE = Integer;
|
---|
1310 | CRYPT_KEYSET = Integer;
|
---|
1311 | CRYPT_SESSION = Integer;
|
---|
1312 | CRYPT_USER = Integer;
|
---|
1313 |
|
---|
1314 | { Sometimes we don't know the exact type of a cryptlib object, so we use a
|
---|
1315 | generic handle type to identify it }
|
---|
1316 |
|
---|
1317 | CRYPT_HANDLE = Integer;
|
---|
1318 |
|
---|
1319 | {****************************************************************************
|
---|
1320 | * *
|
---|
1321 | * Encryption Data Structures *
|
---|
1322 | * *
|
---|
1323 | ****************************************************************************}
|
---|
1324 |
|
---|
1325 | { Results returned from the capability query }
|
---|
1326 |
|
---|
1327 | CRYPT_QUERY_INFO = record
|
---|
1328 | { Algorithm information }
|
---|
1329 | algoName: array[0 .. CRYPT_MAX_TEXTSIZE-1] of char;{ Algorithm name }
|
---|
1330 | blockSize: Integer; { Block size of the algorithm }
|
---|
1331 | minKeySize: Integer; { Minimum key size in bytes }
|
---|
1332 | keySize: Integer; { Recommended key size in bytes }
|
---|
1333 | maxKeySize: Integer; { Maximum key size in bytes }
|
---|
1334 |
|
---|
1335 |
|
---|
1336 | end;
|
---|
1337 |
|
---|
1338 | { Results returned from the encoded object query. These provide
|
---|
1339 | information on the objects created by cryptExportKey()/
|
---|
1340 | cryptCreateSignature() }
|
---|
1341 |
|
---|
1342 | CRYPT_OBJECT_INFO = record
|
---|
1343 | { The object type }
|
---|
1344 | objectType: CRYPT_OBJECT_TYPE;
|
---|
1345 |
|
---|
1346 | { The encryption algorithm and mode }
|
---|
1347 | cryptAlgo: CRYPT_ALGO_TYPE;
|
---|
1348 | cryptMode: CRYPT_MODE_TYPE;
|
---|
1349 |
|
---|
1350 | { The hash algorithm for Signature objects }
|
---|
1351 | hashAlgo: CRYPT_ALGO_TYPE;
|
---|
1352 |
|
---|
1353 | { The salt for derived keys }
|
---|
1354 | salt: array[0 .. CRYPT_MAX_HASHSIZE-1] of byte;
|
---|
1355 | saltSize: Integer;
|
---|
1356 |
|
---|
1357 |
|
---|
1358 | end;
|
---|
1359 |
|
---|
1360 | { Key information for the public-key encryption algorithms. These fields
|
---|
1361 | are not accessed directly, but can be manipulated with the init/set/
|
---|
1362 | destroyComponents() macros }
|
---|
1363 |
|
---|
1364 | CRYPT_PKCINFO_RSA = record
|
---|
1365 | { Status information }
|
---|
1366 | isPublicKey: Integer; { Whether this is a public or private key }
|
---|
1367 |
|
---|
1368 | { Public components }
|
---|
1369 | n: array[0 .. CRYPT_MAX_PKCSIZE-1] of byte; { Modulus }
|
---|
1370 | nLen: Integer; { Length of modulus in bits }
|
---|
1371 | e: array[0 .. CRYPT_MAX_PKCSIZE-1] of byte; { Public exponent }
|
---|
1372 | eLen: Integer; { Length of public exponent in bits }
|
---|
1373 |
|
---|
1374 | { Private components }
|
---|
1375 | d: array[0 .. CRYPT_MAX_PKCSIZE-1] of byte; { Private exponent }
|
---|
1376 | dLen: Integer; { Length of private exponent in bits }
|
---|
1377 | p: array[0 .. CRYPT_MAX_PKCSIZE-1] of byte; { Prime factor 1 }
|
---|
1378 | pLen: Integer; { Length of prime factor 1 in bits }
|
---|
1379 | q: array[0 .. CRYPT_MAX_PKCSIZE-1] of byte; { Prime factor 2 }
|
---|
1380 | qLen: Integer; { Length of prime factor 2 in bits }
|
---|
1381 | u: array[0 .. CRYPT_MAX_PKCSIZE-1] of byte; { Mult.inverse of q, mod p }
|
---|
1382 | uLen: Integer; { Length of private exponent in bits }
|
---|
1383 | e1: array[0 .. CRYPT_MAX_PKCSIZE-1] of byte; { Private exponent 1 (PKCS) }
|
---|
1384 | e1Len: Integer; { Length of private exponent in bits }
|
---|
1385 | e2: array[0 .. CRYPT_MAX_PKCSIZE-1] of byte; { Private exponent 2 (PKCS) }
|
---|
1386 | e2Len: Integer; { Length of private exponent in bits }
|
---|
1387 |
|
---|
1388 |
|
---|
1389 | end;
|
---|
1390 |
|
---|
1391 | CRYPT_PKCINFO_DLP = record
|
---|
1392 | { Status information }
|
---|
1393 | isPublicKey: Integer; { Whether this is a public or private key }
|
---|
1394 |
|
---|
1395 | { Public components }
|
---|
1396 | p: array[0 .. CRYPT_MAX_PKCSIZE-1] of byte; { Prime modulus }
|
---|
1397 | pLen: Integer; { Length of prime modulus in bits }
|
---|
1398 | q: array[0 .. CRYPT_MAX_PKCSIZE-1] of byte; { Prime divisor }
|
---|
1399 | qLen: Integer; { Length of prime divisor in bits }
|
---|
1400 | g: array[0 .. CRYPT_MAX_PKCSIZE-1] of byte; { h^( ( p - 1 ) / q ) mod p }
|
---|
1401 | gLen: Integer; { Length of g in bits }
|
---|
1402 | y: array[0 .. CRYPT_MAX_PKCSIZE-1] of byte; { Public random integer }
|
---|
1403 | yLen: Integer; { Length of public integer in bits }
|
---|
1404 |
|
---|
1405 | { Private components }
|
---|
1406 | x: array[0 .. CRYPT_MAX_PKCSIZE-1] of byte; { Private random integer }
|
---|
1407 | xLen: Integer; { Length of private integer in bits }
|
---|
1408 |
|
---|
1409 |
|
---|
1410 | end;
|
---|
1411 |
|
---|
1412 | { Macros to initialise and destroy the structure that stores the components
|
---|
1413 | of a public key }
|
---|
1414 | { C-macro not translated to Delphi code:
|
---|
1415 | #define cryptInitComponents( componentInfo, componentKeyType )
|
---|
1416 | < memset( ( componentInfo ), 0, sizeof( *componentInfo ) );
|
---|
1417 | ( componentInfo )->isPublicKey = ( ( componentKeyType ) ? 1 : 0 ); > }
|
---|
1418 |
|
---|
1419 | { C-macro not translated to Delphi code:
|
---|
1420 | #define cryptDestroyComponents( componentInfo )
|
---|
1421 | memset( ( componentInfo ), 0, sizeof( *componentInfo ) ) }
|
---|
1422 |
|
---|
1423 | { Macros to set a component of a public key }
|
---|
1424 |
|
---|
1425 | { C-macro not translated to Delphi code:
|
---|
1426 | #define cryptSetComponent( destination, source, length )
|
---|
1427 | < memcpy( ( destination ), ( source ), ( ( length ) + 7 ) >> 3 );
|
---|
1428 | ( destination##Len ) = length; > }
|
---|
1429 |
|
---|
1430 | {****************************************************************************
|
---|
1431 | * *
|
---|
1432 | * Status Codes *
|
---|
1433 | * *
|
---|
1434 | ****************************************************************************}
|
---|
1435 |
|
---|
1436 | { No error in function call }
|
---|
1437 |
|
---|
1438 |
|
---|
1439 | const
|
---|
1440 | CRYPT_OK = 0; { No error }
|
---|
1441 |
|
---|
1442 | { Error in parameters passed to function }
|
---|
1443 |
|
---|
1444 | CRYPT_ERROR_PARAM1 = -1; { Bad argument, parameter 1 }
|
---|
1445 | CRYPT_ERROR_PARAM2 = -2; { Bad argument, parameter 2 }
|
---|
1446 | CRYPT_ERROR_PARAM3 = -3; { Bad argument, parameter 3 }
|
---|
1447 | CRYPT_ERROR_PARAM4 = -4; { Bad argument, parameter 4 }
|
---|
1448 | CRYPT_ERROR_PARAM5 = -5; { Bad argument, parameter 5 }
|
---|
1449 | CRYPT_ERROR_PARAM6 = -6; { Bad argument, parameter 6 }
|
---|
1450 | CRYPT_ERROR_PARAM7 = -7; { Bad argument, parameter 7 }
|
---|
1451 |
|
---|
1452 | { Errors due to insufficient resources }
|
---|
1453 |
|
---|
1454 | CRYPT_ERROR_MEMORY = -10; { Out of memory }
|
---|
1455 | CRYPT_ERROR_NOTINITED = -11; { Data has not been initialised }
|
---|
1456 | CRYPT_ERROR_INITED = -12; { Data has already been init'd }
|
---|
1457 | CRYPT_ERROR_NOSECURE = -13; { Opn.not avail.at requested sec.level }
|
---|
1458 | CRYPT_ERROR_RANDOM = -14; { No reliable random data available }
|
---|
1459 | CRYPT_ERROR_FAILED = -15; { Operation failed }
|
---|
1460 |
|
---|
1461 | { Security violations }
|
---|
1462 |
|
---|
1463 | CRYPT_ERROR_NOTAVAIL = -20; { This type of opn.not available }
|
---|
1464 | CRYPT_ERROR_PERMISSION = -21; { No permiss.to perform this operation }
|
---|
1465 | CRYPT_ERROR_WRONGKEY = -22; { Incorrect key used to decrypt data }
|
---|
1466 | CRYPT_ERROR_INCOMPLETE = -23; { Operation incomplete/still in progress }
|
---|
1467 | CRYPT_ERROR_COMPLETE = -24; { Operation complete/can't continue }
|
---|
1468 | CRYPT_ERROR_TIMEOUT = -25; { Operation timed out before completion }
|
---|
1469 | CRYPT_ERROR_INVALID = -26; { Invalid/inconsistent information }
|
---|
1470 | CRYPT_ERROR_SIGNALLED = -27; { Resource destroyed by extnl.event }
|
---|
1471 |
|
---|
1472 | { High-level function errors }
|
---|
1473 |
|
---|
1474 | CRYPT_ERROR_OVERFLOW = -30; { Resources/space exhausted }
|
---|
1475 | CRYPT_ERROR_UNDERFLOW = -31; { Not enough data available }
|
---|
1476 | CRYPT_ERROR_BADDATA = -32; { Bad/unrecognised data format }
|
---|
1477 | CRYPT_ERROR_SIGNATURE = -33; { Signature/integrity check failed }
|
---|
1478 |
|
---|
1479 | { Data access function errors }
|
---|
1480 |
|
---|
1481 | CRYPT_ERROR_OPEN = -40; { Cannot open object }
|
---|
1482 | CRYPT_ERROR_READ = -41; { Cannot read item from object }
|
---|
1483 | CRYPT_ERROR_WRITE = -42; { Cannot write item to object }
|
---|
1484 | CRYPT_ERROR_NOTFOUND = -43; { Requested item not found in object }
|
---|
1485 | CRYPT_ERROR_DUPLICATE = -44; { Item already present in object }
|
---|
1486 |
|
---|
1487 | { Data enveloping errors }
|
---|
1488 |
|
---|
1489 | CRYPT_ENVELOPE_RESOURCE = -50; { Need resource to proceed }
|
---|
1490 |
|
---|
1491 | { Macros to examine return values }
|
---|
1492 |
|
---|
1493 | { C-macro not translated to Delphi code:
|
---|
1494 | #define cryptStatusError( status ) ( ( status ) < CRYPT_OK ) }
|
---|
1495 | { C-macro not translated to Delphi code:
|
---|
1496 | #define cryptStatusOK( status ) ( ( status ) == CRYPT_OK ) }
|
---|
1497 |
|
---|
1498 | {****************************************************************************
|
---|
1499 | * *
|
---|
1500 | * General Functions *
|
---|
1501 | * *
|
---|
1502 | ****************************************************************************}
|
---|
1503 |
|
---|
1504 | { The following is necessary to stop C++ name mangling }
|
---|
1505 |
|
---|
1506 |
|
---|
1507 | { Initialise and shut down cryptlib }
|
---|
1508 |
|
---|
1509 | function cryptInit: Integer;
|
---|
1510 | {$IFDEF WIN32} stdcall; {$ELSE} cdecl; {$ENDIF} external cryptlibname;
|
---|
1511 |
|
---|
1512 |
|
---|
1513 | function cryptEnd: Integer;
|
---|
1514 | {$IFDEF WIN32} stdcall; {$ELSE} cdecl; {$ENDIF} external cryptlibname;
|
---|
1515 |
|
---|
1516 |
|
---|
1517 |
|
---|
1518 | { Query cryptlibs capabilities }
|
---|
1519 |
|
---|
1520 | function cryptQueryCapability( const cryptAlgo: CRYPT_ALGO_TYPE;
|
---|
1521 | var cryptQueryInfo: CRYPT_QUERY_INFO ): Integer;
|
---|
1522 | {$IFDEF WIN32} stdcall; {$ELSE} cdecl; {$ENDIF} external cryptlibname;
|
---|
1523 |
|
---|
1524 |
|
---|
1525 | { Create and destroy an encryption context }
|
---|
1526 |
|
---|
1527 | function cryptCreateContext( var cryptContext: CRYPT_CONTEXT;
|
---|
1528 | const cryptUser: CRYPT_USER;
|
---|
1529 | const cryptAlgo: CRYPT_ALGO_TYPE ): Integer;
|
---|
1530 | {$IFDEF WIN32} stdcall; {$ELSE} cdecl; {$ENDIF} external cryptlibname;
|
---|
1531 |
|
---|
1532 | function cryptDestroyContext( const cryptContext: CRYPT_CONTEXT ): Integer;
|
---|
1533 | {$IFDEF WIN32} stdcall; {$ELSE} cdecl; {$ENDIF} external cryptlibname;
|
---|
1534 |
|
---|
1535 |
|
---|
1536 | { Generic "destroy an object" function }
|
---|
1537 |
|
---|
1538 | function cryptDestroyObject( const cryptObject: CRYPT_HANDLE ): Integer;
|
---|
1539 | {$IFDEF WIN32} stdcall; {$ELSE} cdecl; {$ENDIF} external cryptlibname;
|
---|
1540 |
|
---|
1541 |
|
---|
1542 | { Generate a key into a context }
|
---|
1543 |
|
---|
1544 | function cryptGenerateKey( const cryptContext: CRYPT_CONTEXT ): Integer;
|
---|
1545 | {$IFDEF WIN32} stdcall; {$ELSE} cdecl; {$ENDIF} external cryptlibname;
|
---|
1546 |
|
---|
1547 | function cryptGenerateKeyAsync( const cryptContext: CRYPT_CONTEXT ): Integer;
|
---|
1548 | {$IFDEF WIN32} stdcall; {$ELSE} cdecl; {$ENDIF} external cryptlibname;
|
---|
1549 |
|
---|
1550 | function cryptAsyncQuery( const cryptObject: CRYPT_HANDLE ): Integer;
|
---|
1551 | {$IFDEF WIN32} stdcall; {$ELSE} cdecl; {$ENDIF} external cryptlibname;
|
---|
1552 |
|
---|
1553 | function cryptAsyncCancel( const cryptObject: CRYPT_HANDLE ): Integer;
|
---|
1554 | {$IFDEF WIN32} stdcall; {$ELSE} cdecl; {$ENDIF} external cryptlibname;
|
---|
1555 |
|
---|
1556 |
|
---|
1557 | { Encrypt/decrypt/hash a block of memory }
|
---|
1558 |
|
---|
1559 | function cryptEncrypt( const cryptContext: CRYPT_CONTEXT;
|
---|
1560 | buffer: Pointer;
|
---|
1561 | const length: Integer ): Integer;
|
---|
1562 | {$IFDEF WIN32} stdcall; {$ELSE} cdecl; {$ENDIF} external cryptlibname;
|
---|
1563 |
|
---|
1564 | function cryptDecrypt( const cryptContext: CRYPT_CONTEXT;
|
---|
1565 | buffer: Pointer;
|
---|
1566 | const length: Integer ): Integer;
|
---|
1567 | {$IFDEF WIN32} stdcall; {$ELSE} cdecl; {$ENDIF} external cryptlibname;
|
---|
1568 |
|
---|
1569 |
|
---|
1570 | { Get/set/delete attribute functions }
|
---|
1571 |
|
---|
1572 | function cryptSetAttribute( const cryptHandle: CRYPT_HANDLE;
|
---|
1573 | const attributeType: CRYPT_ATTRIBUTE_TYPE;
|
---|
1574 | const value: Integer ): Integer;
|
---|
1575 | {$IFDEF WIN32} stdcall; {$ELSE} cdecl; {$ENDIF} external cryptlibname;
|
---|
1576 |
|
---|
1577 | function cryptSetAttributeString( const cryptHandle: CRYPT_HANDLE;
|
---|
1578 | const attributeType: CRYPT_ATTRIBUTE_TYPE;
|
---|
1579 | const value: Pointer;
|
---|
1580 | const valueLength: Integer ): Integer;
|
---|
1581 | {$IFDEF WIN32} stdcall; {$ELSE} cdecl; {$ENDIF} external cryptlibname;
|
---|
1582 |
|
---|
1583 | function cryptGetAttribute( const cryptHandle: CRYPT_HANDLE;
|
---|
1584 | const attributeType: CRYPT_ATTRIBUTE_TYPE;
|
---|
1585 | var value: Integer ): Integer;
|
---|
1586 | {$IFDEF WIN32} stdcall; {$ELSE} cdecl; {$ENDIF} external cryptlibname;
|
---|
1587 |
|
---|
1588 | function cryptGetAttributeString( const cryptHandle: CRYPT_HANDLE;
|
---|
1589 | const attributeType: CRYPT_ATTRIBUTE_TYPE;
|
---|
1590 | value: Pointer;
|
---|
1591 | var valueLength: Integer ): Integer;
|
---|
1592 | {$IFDEF WIN32} stdcall; {$ELSE} cdecl; {$ENDIF} external cryptlibname;
|
---|
1593 |
|
---|
1594 | function cryptDeleteAttribute( const cryptHandle: CRYPT_HANDLE;
|
---|
1595 | const attributeType: CRYPT_ATTRIBUTE_TYPE ): Integer;
|
---|
1596 | {$IFDEF WIN32} stdcall; {$ELSE} cdecl; {$ENDIF} external cryptlibname;
|
---|
1597 |
|
---|
1598 |
|
---|
1599 | { Oddball functions: Add random data to the pool, query an encoded signature
|
---|
1600 | or key data. These are due to be replaced once a suitable alternative can
|
---|
1601 | be found }
|
---|
1602 |
|
---|
1603 | function cryptAddRandom( const randomData: Pointer;
|
---|
1604 | const randomDataLength: Integer ): Integer;
|
---|
1605 | {$IFDEF WIN32} stdcall; {$ELSE} cdecl; {$ENDIF} external cryptlibname;
|
---|
1606 |
|
---|
1607 | function cryptQueryObject( const objectData: Pointer;
|
---|
1608 | const objectDataLength: Integer;
|
---|
1609 | var cryptObjectInfo: CRYPT_OBJECT_INFO ): Integer;
|
---|
1610 | {$IFDEF WIN32} stdcall; {$ELSE} cdecl; {$ENDIF} external cryptlibname;
|
---|
1611 |
|
---|
1612 |
|
---|
1613 | {****************************************************************************
|
---|
1614 | * *
|
---|
1615 | * Mid-level Encryption Functions *
|
---|
1616 | * *
|
---|
1617 | ****************************************************************************}
|
---|
1618 |
|
---|
1619 | { Export and import an encrypted session key }
|
---|
1620 |
|
---|
1621 | function cryptExportKey( encryptedKey: Pointer;
|
---|
1622 | const encryptedKeyMaxLength: Integer;
|
---|
1623 | var encryptedKeyLength: Integer;
|
---|
1624 | const exportKey: CRYPT_HANDLE;
|
---|
1625 | const sessionKeyContext: CRYPT_CONTEXT ): Integer;
|
---|
1626 | {$IFDEF WIN32} stdcall; {$ELSE} cdecl; {$ENDIF} external cryptlibname;
|
---|
1627 |
|
---|
1628 | function cryptExportKeyEx( encryptedKey: Pointer;
|
---|
1629 | const encryptedKeyMaxLength: Integer;
|
---|
1630 | var encryptedKeyLength: Integer;
|
---|
1631 | const formatType: CRYPT_FORMAT_TYPE;
|
---|
1632 | const exportKey: CRYPT_HANDLE;
|
---|
1633 | const sessionKeyContext: CRYPT_CONTEXT ): Integer;
|
---|
1634 | {$IFDEF WIN32} stdcall; {$ELSE} cdecl; {$ENDIF} external cryptlibname;
|
---|
1635 |
|
---|
1636 | function cryptImportKey( const encryptedKey: Pointer;
|
---|
1637 | const encryptedKeyLength: Integer;
|
---|
1638 | const importKey: CRYPT_CONTEXT;
|
---|
1639 | const sessionKeyContext: CRYPT_CONTEXT ): Integer;
|
---|
1640 | {$IFDEF WIN32} stdcall; {$ELSE} cdecl; {$ENDIF} external cryptlibname;
|
---|
1641 |
|
---|
1642 | function cryptImportKeyEx( const encryptedKey: Pointer;
|
---|
1643 | const encryptedKeyLength: Integer;
|
---|
1644 | const importKey: CRYPT_CONTEXT;
|
---|
1645 | const sessionKeyContext: CRYPT_CONTEXT;
|
---|
1646 | var returnedContext: CRYPT_CONTEXT ): Integer;
|
---|
1647 | {$IFDEF WIN32} stdcall; {$ELSE} cdecl; {$ENDIF} external cryptlibname;
|
---|
1648 |
|
---|
1649 |
|
---|
1650 | { Create and check a digital signature }
|
---|
1651 |
|
---|
1652 | function cryptCreateSignature( signature: Pointer;
|
---|
1653 | const signatureMaxLength: Integer;
|
---|
1654 | var signatureLength: Integer;
|
---|
1655 | const signContext: CRYPT_CONTEXT;
|
---|
1656 | const hashContext: CRYPT_CONTEXT ): Integer;
|
---|
1657 | {$IFDEF WIN32} stdcall; {$ELSE} cdecl; {$ENDIF} external cryptlibname;
|
---|
1658 |
|
---|
1659 | function cryptCreateSignatureEx( signature: Pointer;
|
---|
1660 | const signatureMaxLength: Integer;
|
---|
1661 | var signatureLength: Integer;
|
---|
1662 | const formatType: CRYPT_FORMAT_TYPE;
|
---|
1663 | const signContext: CRYPT_CONTEXT;
|
---|
1664 | const hashContext: CRYPT_CONTEXT;
|
---|
1665 | const extraData: CRYPT_CERTIFICATE ): Integer;
|
---|
1666 | {$IFDEF WIN32} stdcall; {$ELSE} cdecl; {$ENDIF} external cryptlibname;
|
---|
1667 |
|
---|
1668 | function cryptCheckSignature( const signature: Pointer;
|
---|
1669 | const signatureLength: Integer;
|
---|
1670 | const sigCheckKey: CRYPT_HANDLE;
|
---|
1671 | const hashContext: CRYPT_CONTEXT ): Integer;
|
---|
1672 | {$IFDEF WIN32} stdcall; {$ELSE} cdecl; {$ENDIF} external cryptlibname;
|
---|
1673 |
|
---|
1674 | function cryptCheckSignatureEx( const signature: Pointer;
|
---|
1675 | const signatureLength: Integer;
|
---|
1676 | const sigCheckKey: CRYPT_HANDLE;
|
---|
1677 | const hashContext: CRYPT_CONTEXT;
|
---|
1678 | var extraData: CRYPT_HANDLE ): Integer;
|
---|
1679 | {$IFDEF WIN32} stdcall; {$ELSE} cdecl; {$ENDIF} external cryptlibname;
|
---|
1680 |
|
---|
1681 |
|
---|
1682 | {****************************************************************************
|
---|
1683 | * *
|
---|
1684 | * Keyset Functions *
|
---|
1685 | * *
|
---|
1686 | ****************************************************************************}
|
---|
1687 |
|
---|
1688 | { Open and close a keyset }
|
---|
1689 |
|
---|
1690 | function cryptKeysetOpen( var keyset: CRYPT_KEYSET;
|
---|
1691 | const cryptUser: CRYPT_USER;
|
---|
1692 | const keysetType: CRYPT_KEYSET_TYPE;
|
---|
1693 | const name: PChar;
|
---|
1694 | const options: CRYPT_KEYOPT_TYPE ): Integer;
|
---|
1695 | {$IFDEF WIN32} stdcall; {$ELSE} cdecl; {$ENDIF} external cryptlibname;
|
---|
1696 |
|
---|
1697 | function cryptKeysetClose( const keyset: CRYPT_KEYSET ): Integer;
|
---|
1698 | {$IFDEF WIN32} stdcall; {$ELSE} cdecl; {$ENDIF} external cryptlibname;
|
---|
1699 |
|
---|
1700 |
|
---|
1701 | { Get a key from a keyset }
|
---|
1702 |
|
---|
1703 | function cryptGetPublicKey( const keyset: CRYPT_KEYSET;
|
---|
1704 | var cryptContext: CRYPT_CONTEXT;
|
---|
1705 | const keyIDtype: CRYPT_KEYID_TYPE;
|
---|
1706 | const keyID: PChar ): Integer;
|
---|
1707 | {$IFDEF WIN32} stdcall; {$ELSE} cdecl; {$ENDIF} external cryptlibname;
|
---|
1708 |
|
---|
1709 | function cryptGetPrivateKey( const keyset: CRYPT_KEYSET;
|
---|
1710 | var cryptContext: CRYPT_CONTEXT;
|
---|
1711 | const keyIDtype: CRYPT_KEYID_TYPE;
|
---|
1712 | const keyID: PChar;
|
---|
1713 | const password: PChar ): Integer;
|
---|
1714 | {$IFDEF WIN32} stdcall; {$ELSE} cdecl; {$ENDIF} external cryptlibname;
|
---|
1715 |
|
---|
1716 |
|
---|
1717 | { Add/delete a key to/from a keyset }
|
---|
1718 |
|
---|
1719 | function cryptAddPublicKey( const keyset: CRYPT_KEYSET;
|
---|
1720 | const certificate: CRYPT_CERTIFICATE ): Integer;
|
---|
1721 | {$IFDEF WIN32} stdcall; {$ELSE} cdecl; {$ENDIF} external cryptlibname;
|
---|
1722 |
|
---|
1723 | function cryptAddPrivateKey( const keyset: CRYPT_KEYSET;
|
---|
1724 | const cryptKey: CRYPT_HANDLE;
|
---|
1725 | const password: PChar ): Integer;
|
---|
1726 | {$IFDEF WIN32} stdcall; {$ELSE} cdecl; {$ENDIF} external cryptlibname;
|
---|
1727 |
|
---|
1728 | function cryptDeleteKey( const keyset: CRYPT_KEYSET;
|
---|
1729 | const keyIDtype: CRYPT_KEYID_TYPE;
|
---|
1730 | const keyID: PChar ): Integer;
|
---|
1731 | {$IFDEF WIN32} stdcall; {$ELSE} cdecl; {$ENDIF} external cryptlibname;
|
---|
1732 |
|
---|
1733 |
|
---|
1734 | {****************************************************************************
|
---|
1735 | * *
|
---|
1736 | * Certificate Functions *
|
---|
1737 | * *
|
---|
1738 | ****************************************************************************}
|
---|
1739 |
|
---|
1740 | { Create/destroy a certificate }
|
---|
1741 |
|
---|
1742 | function cryptCreateCert( var certificate: CRYPT_CERTIFICATE;
|
---|
1743 | const cryptUser: CRYPT_USER;
|
---|
1744 | const certType: CRYPT_CERTTYPE_TYPE ): Integer;
|
---|
1745 | {$IFDEF WIN32} stdcall; {$ELSE} cdecl; {$ENDIF} external cryptlibname;
|
---|
1746 |
|
---|
1747 | function cryptDestroyCert( const certificate: CRYPT_CERTIFICATE ): Integer;
|
---|
1748 | {$IFDEF WIN32} stdcall; {$ELSE} cdecl; {$ENDIF} external cryptlibname;
|
---|
1749 |
|
---|
1750 |
|
---|
1751 | { Get/add/delete certificate extensions. These are direct data insertion
|
---|
1752 | functions whose use is discouraged, so they fix the string at char *
|
---|
1753 | rather than C_STR }
|
---|
1754 |
|
---|
1755 | function cryptGetCertExtension( const certificate: CRYPT_CERTIFICATE;
|
---|
1756 | const oid: PChar;
|
---|
1757 | var criticalFlag: Integer;
|
---|
1758 | extension: Pointer;
|
---|
1759 | const extensionMaxLength: Integer;
|
---|
1760 | var extensionLength: Integer ): Integer;
|
---|
1761 | {$IFDEF WIN32} stdcall; {$ELSE} cdecl; {$ENDIF} external cryptlibname;
|
---|
1762 |
|
---|
1763 | function cryptAddCertExtension( const certificate: CRYPT_CERTIFICATE;
|
---|
1764 | const oid: PChar;
|
---|
1765 | const criticalFlag: Integer;
|
---|
1766 | const extension: Pointer;
|
---|
1767 | const extensionLength: Integer ): Integer;
|
---|
1768 | {$IFDEF WIN32} stdcall; {$ELSE} cdecl; {$ENDIF} external cryptlibname;
|
---|
1769 |
|
---|
1770 | function cryptDeleteCertExtension( const certificate: CRYPT_CERTIFICATE;
|
---|
1771 | const oid: PChar ): Integer;
|
---|
1772 | {$IFDEF WIN32} stdcall; {$ELSE} cdecl; {$ENDIF} external cryptlibname;
|
---|
1773 |
|
---|
1774 |
|
---|
1775 | { Sign/sig.check a certificate/certification request }
|
---|
1776 |
|
---|
1777 | function cryptSignCert( const certificate: CRYPT_CERTIFICATE;
|
---|
1778 | const signContext: CRYPT_CONTEXT ): Integer;
|
---|
1779 | {$IFDEF WIN32} stdcall; {$ELSE} cdecl; {$ENDIF} external cryptlibname;
|
---|
1780 |
|
---|
1781 | function cryptCheckCert( const certificate: CRYPT_CERTIFICATE;
|
---|
1782 | const sigCheckKey: CRYPT_HANDLE ): Integer;
|
---|
1783 | {$IFDEF WIN32} stdcall; {$ELSE} cdecl; {$ENDIF} external cryptlibname;
|
---|
1784 |
|
---|
1785 |
|
---|
1786 | { Import/export a certificate/certification request }
|
---|
1787 |
|
---|
1788 | function cryptImportCert( const certObject: Pointer;
|
---|
1789 | const certObjectLength: Integer;
|
---|
1790 | const cryptUser: CRYPT_USER;
|
---|
1791 | var certificate: CRYPT_CERTIFICATE ): Integer;
|
---|
1792 | {$IFDEF WIN32} stdcall; {$ELSE} cdecl; {$ENDIF} external cryptlibname;
|
---|
1793 |
|
---|
1794 | function cryptExportCert( certObject: Pointer;
|
---|
1795 | const certObjectMaxLength: Integer;
|
---|
1796 | var certObjectLength: Integer;
|
---|
1797 | const certFormatType: CRYPT_CERTFORMAT_TYPE;
|
---|
1798 | const certificate: CRYPT_CERTIFICATE ): Integer;
|
---|
1799 | {$IFDEF WIN32} stdcall; {$ELSE} cdecl; {$ENDIF} external cryptlibname;
|
---|
1800 |
|
---|
1801 |
|
---|
1802 | { CA management functions }
|
---|
1803 |
|
---|
1804 | function cryptCAAddItem( const keyset: CRYPT_KEYSET;
|
---|
1805 | const certificate: CRYPT_CERTIFICATE ): Integer;
|
---|
1806 | {$IFDEF WIN32} stdcall; {$ELSE} cdecl; {$ENDIF} external cryptlibname;
|
---|
1807 |
|
---|
1808 | function cryptCAGetItem( const keyset: CRYPT_KEYSET;
|
---|
1809 | var certificate: CRYPT_CERTIFICATE;
|
---|
1810 | const certType: CRYPT_CERTTYPE_TYPE;
|
---|
1811 | const keyIDtype: CRYPT_KEYID_TYPE;
|
---|
1812 | const keyID: PChar ): Integer;
|
---|
1813 | {$IFDEF WIN32} stdcall; {$ELSE} cdecl; {$ENDIF} external cryptlibname;
|
---|
1814 |
|
---|
1815 | function cryptCADeleteItem( const keyset: CRYPT_KEYSET;
|
---|
1816 | const certType: CRYPT_CERTTYPE_TYPE;
|
---|
1817 | const keyIDtype: CRYPT_KEYID_TYPE;
|
---|
1818 | const keyID: PChar ): Integer;
|
---|
1819 | {$IFDEF WIN32} stdcall; {$ELSE} cdecl; {$ENDIF} external cryptlibname;
|
---|
1820 |
|
---|
1821 | function cryptCACertManagement( var certificate: CRYPT_CERTIFICATE;
|
---|
1822 | const action: CRYPT_CERTACTION_TYPE;
|
---|
1823 | const keyset: CRYPT_KEYSET;
|
---|
1824 | const caKey: CRYPT_CONTEXT;
|
---|
1825 | const certRequest: CRYPT_CERTIFICATE ): Integer;
|
---|
1826 | {$IFDEF WIN32} stdcall; {$ELSE} cdecl; {$ENDIF} external cryptlibname;
|
---|
1827 |
|
---|
1828 |
|
---|
1829 | {****************************************************************************
|
---|
1830 | * *
|
---|
1831 | * Envelope and Session Functions *
|
---|
1832 | * *
|
---|
1833 | ****************************************************************************}
|
---|
1834 |
|
---|
1835 | { Create/destroy an envelope }
|
---|
1836 |
|
---|
1837 | function cryptCreateEnvelope( var envelope: CRYPT_ENVELOPE;
|
---|
1838 | const cryptUser: CRYPT_USER;
|
---|
1839 | const formatType: CRYPT_FORMAT_TYPE ): Integer;
|
---|
1840 | {$IFDEF WIN32} stdcall; {$ELSE} cdecl; {$ENDIF} external cryptlibname;
|
---|
1841 |
|
---|
1842 | function cryptDestroyEnvelope( const envelope: CRYPT_ENVELOPE ): Integer;
|
---|
1843 | {$IFDEF WIN32} stdcall; {$ELSE} cdecl; {$ENDIF} external cryptlibname;
|
---|
1844 |
|
---|
1845 |
|
---|
1846 | { Create/destroy a session }
|
---|
1847 |
|
---|
1848 | function cryptCreateSession( var session: CRYPT_SESSION;
|
---|
1849 | const cryptUser: CRYPT_USER;
|
---|
1850 | const formatType: CRYPT_SESSION_TYPE ): Integer;
|
---|
1851 | {$IFDEF WIN32} stdcall; {$ELSE} cdecl; {$ENDIF} external cryptlibname;
|
---|
1852 |
|
---|
1853 | function cryptDestroySession( const session: CRYPT_SESSION ): Integer;
|
---|
1854 | {$IFDEF WIN32} stdcall; {$ELSE} cdecl; {$ENDIF} external cryptlibname;
|
---|
1855 |
|
---|
1856 |
|
---|
1857 | { Add/remove data to/from and envelope or session }
|
---|
1858 |
|
---|
1859 | function cryptPushData( const envelope: CRYPT_HANDLE;
|
---|
1860 | const buffer: Pointer;
|
---|
1861 | const length: Integer;
|
---|
1862 | var bytesCopied: Integer ): Integer;
|
---|
1863 | {$IFDEF WIN32} stdcall; {$ELSE} cdecl; {$ENDIF} external cryptlibname;
|
---|
1864 |
|
---|
1865 | function cryptFlushData( const envelope: CRYPT_HANDLE ): Integer;
|
---|
1866 | {$IFDEF WIN32} stdcall; {$ELSE} cdecl; {$ENDIF} external cryptlibname;
|
---|
1867 |
|
---|
1868 | function cryptPopData( const envelope: CRYPT_HANDLE;
|
---|
1869 | buffer: Pointer;
|
---|
1870 | const length: Integer;
|
---|
1871 | var bytesCopied: Integer ): Integer;
|
---|
1872 | {$IFDEF WIN32} stdcall; {$ELSE} cdecl; {$ENDIF} external cryptlibname;
|
---|
1873 |
|
---|
1874 |
|
---|
1875 | {****************************************************************************
|
---|
1876 | * *
|
---|
1877 | * Device Functions *
|
---|
1878 | * *
|
---|
1879 | ****************************************************************************}
|
---|
1880 |
|
---|
1881 | { Open and close a device }
|
---|
1882 |
|
---|
1883 | function cryptDeviceOpen( var device: CRYPT_DEVICE;
|
---|
1884 | const cryptUser: CRYPT_USER;
|
---|
1885 | const deviceType: CRYPT_DEVICE_TYPE;
|
---|
1886 | const name: PChar ): Integer;
|
---|
1887 | {$IFDEF WIN32} stdcall; {$ELSE} cdecl; {$ENDIF} external cryptlibname;
|
---|
1888 |
|
---|
1889 | function cryptDeviceClose( const device: CRYPT_DEVICE ): Integer;
|
---|
1890 | {$IFDEF WIN32} stdcall; {$ELSE} cdecl; {$ENDIF} external cryptlibname;
|
---|
1891 |
|
---|
1892 |
|
---|
1893 | { Query a devices capabilities }
|
---|
1894 |
|
---|
1895 | function cryptDeviceQueryCapability( const device: CRYPT_DEVICE;
|
---|
1896 | const cryptAlgo: CRYPT_ALGO_TYPE;
|
---|
1897 | var cryptQueryInfo: CRYPT_QUERY_INFO ): Integer;
|
---|
1898 | {$IFDEF WIN32} stdcall; {$ELSE} cdecl; {$ENDIF} external cryptlibname;
|
---|
1899 |
|
---|
1900 |
|
---|
1901 | { Create an encryption context via the device }
|
---|
1902 |
|
---|
1903 | function cryptDeviceCreateContext( const device: CRYPT_DEVICE;
|
---|
1904 | var cryptContext: CRYPT_CONTEXT;
|
---|
1905 | const cryptAlgo: CRYPT_ALGO_TYPE ): Integer;
|
---|
1906 | {$IFDEF WIN32} stdcall; {$ELSE} cdecl; {$ENDIF} external cryptlibname;
|
---|
1907 |
|
---|
1908 |
|
---|
1909 | {****************************************************************************
|
---|
1910 | * *
|
---|
1911 | * User Management Functions *
|
---|
1912 | * *
|
---|
1913 | ****************************************************************************}
|
---|
1914 |
|
---|
1915 | { Log on and off (create/destroy a user object) }
|
---|
1916 |
|
---|
1917 | function cryptLogin( var user: CRYPT_USER;
|
---|
1918 | const name: PChar;
|
---|
1919 | const password: PChar ): Integer;
|
---|
1920 | {$IFDEF WIN32} stdcall; {$ELSE} cdecl; {$ENDIF} external cryptlibname;
|
---|
1921 |
|
---|
1922 | function cryptLogout( const user: CRYPT_USER ): Integer;
|
---|
1923 | {$IFDEF WIN32} stdcall; {$ELSE} cdecl; {$ENDIF} external cryptlibname;
|
---|
1924 |
|
---|
1925 |
|
---|
1926 |
|
---|
1927 |
|
---|
1928 |
|
---|
1929 | implementation
|
---|
1930 |
|
---|
1931 | { no implementation code now }
|
---|
1932 |
|
---|
1933 | end.
|
---|