ViewVC Help
View File | Revision Log | View Changeset | Root Listing
root/Oni2/Daodan/MSYS2/mingw32/i686-w64-mingw32/include/cryptxml.h
Revision: 1166
Committed: Tue Oct 26 14:22:36 2021 UTC (4 years ago) by rossy
Content type: text/x-chdr
File size: 15804 byte(s)
Log Message:
Daodan: Replace MinGW build env with an up-to-date MSYS2 env

File Contents

# Content
1 /**
2 * This file has no copyright assigned and is placed in the Public Domain.
3 * This file is part of the mingw-w64 runtime package.
4 * No warranty is given; refer to the file DISCLAIMER.PD within this package.
5 */
6
7 #ifndef _INC_CRYPTXML
8 #define _INC_CRYPTXML
9
10 #ifdef __cplusplus
11 extern "C" {
12 #endif
13
14 #ifndef DECLSPEC_IMPORT
15 #ifndef __WIDL__
16 #define DECLSPEC_IMPORT __declspec(dllimport)
17 #else
18 #define DECLSPEC_IMPORT
19 #endif
20 #endif
21
22 #ifndef CRYPTXMLAPI
23 #define CRYPTXMLAPI DECLSPEC_IMPORT
24 #endif
25
26 #ifndef __HCRYPTPROV_OR_NCRYPT_KEY_HANDLE_DEFINED__
27 #define __HCRYPTPROV_OR_NCRYPT_KEY_HANDLE_DEFINED__
28 /*Also in wincrypth*/
29 typedef ULONG_PTR HCRYPTPROV_OR_NCRYPT_KEY_HANDLE;
30 #endif /*__HCRYPTPROV_OR_NCRYPT_KEY_HANDLE_DEFINED__*/
31
32 #ifndef __BCRYPT_KEY_HANDLE_DEFINED__
33 #define __BCRYPT_KEY_HANDLE_DEFINED__
34 /*also in bcrypt.h*/
35 typedef LPVOID BCRYPT_KEY_HANDLE;
36 #endif /*__BCRYPT_KEY_HANDLE_DEFINED__*/
37
38 typedef HANDLE HCRYPTXML;
39
40 #if (_WIN32_WINNT >= 0x0601)
41
42 typedef enum tagCRYPT_XML_CHARSET {
43 CRYPT_XML_CHARSET_AUTO = 0,
44 CRYPT_XML_CHARSET_UTF8 = 1,
45 CRYPT_XML_CHARSET_UTF16LE = 2,
46 CRYPT_XML_CHARSET_UTF16BE = 3
47 } CRYPT_XML_CHARSET;
48
49 typedef enum tagCRYPT_XML_KEYINFO_SPEC {
50 CRYPT_XML_KEYINFO_SPEC_NONE = 0,
51 CRYPT_XML_KEYINFO_SPEC_ENCODED = 1,
52 CRYPT_XML_KEYINFO_SPEC_PARAM = 2
53 } CRYPT_XML_KEYINFO_SPEC;
54
55 typedef enum tagCRYPT_XML_PROPERTY_ID {
56 CRYPT_XML_PROPERTY_MAX_HEAP_SIZE = 1,
57 CRYPT_XML_PROPERTY_SIGNATURE_LOCATION = 2,
58 CRYPT_XML_PROPERTY_MAX_SIGNATURES = 3,
59 CRYPT_XML_PROPERTY_DOC_DECLARATION = 4,
60 CRYPT_XML_PROPERTY_XML_OUTPUT_CHARSET = 5,
61 CRYPT_XML_PROPERTY_HMAC_OUTPUT_LENGTH = 6
62 } CRYPT_XML_PROPERTY_ID;
63
64 typedef struct _CRYPT_XML_BLOB {
65 CRYPT_XML_CHARSET dwCharset;
66 ULONG cbData;
67 BYTE *pbData;
68 } CRYPT_XML_BLOB, *PCRYPT_XML_BLOB;
69
70 #define CRYPT_XML_BLOB_MAX 0x7FFFFFF8
71
72 typedef struct _CRYPT_XML_ALGORITHM {
73 ULONG cbSize;
74 LPCWSTR wszAlgorithm;
75 CRYPT_XML_BLOB Encoded;
76 } CRYPT_XML_ALGORITHM, *PCRYPT_XML_ALGORITHM;
77
78 typedef struct _CRYPT_XML_ALGORITHM_INFO {
79 DWORD cbSize;
80 WCHAR *wszAlgorithmURI;
81 WCHAR *wszName;
82 DWORD dwGroupId;
83 WCHAR *wszCNGAlgid;
84 WCHAR wszCNGExtraAlgid;
85 DWORD dwSignFlags;
86 DWORD dwVerifyFlags;
87 void pvPaddingInfo;
88 void pvExtraInfo;
89 } CRYPT_XML_ALGORITHM_INFO, *PCRYPT_XML_ALGORITHM_INFO;
90
91 #define CRYPT_XML_GROUP_ID_HASH 1
92 #define CRYPT_XML_GROUP_ID_SIGN 2
93
94 typedef HRESULT (CALLBACK *PFN_CRYPT_XML_WRITE_CALLBACK)(
95 void *pvCallbackState,
96 BYTE pbData,
97 ULONG cbData
98 );
99
100 typedef HRESULT ( WINAPI *CryptXmlDllEncodeAlgorithm )(
101 CRYPT_XML_ALGORITHM_INFO *pAlgInfo,
102 CRYPT_XML_CHARSET dwCharset,
103 void *pvCallbackState,
104 PFN_CRYPT_XML_WRITE_CALLBACK pfnWrite
105 );
106
107 typedef HANDLE CRYPT_XML_DIGEST;
108
109 typedef HRESULT ( WINAPI *CryptXmlDllCreateDigest )(
110 const CRYPT_XML_ALGORITHM *pDigestMethod,
111 ULONG *pcbSize,
112 CRYPT_XML_DIGEST *phDigest
113 );
114
115 typedef HRESULT ( WINAPI *CryptXmlDllDigestData )(
116 CRYPT_XML_DIGEST hDigest,
117 BYTE *pbData,
118 ULONG cbDigest
119 );
120
121 typedef HRESULT ( WINAPI *CryptXmlDllFinalizeDigest )(
122 CRYPT_XML_DIGEST hDigest,
123 BYTE *pbDigest,
124 ULONG cbDigest
125 );
126
127 typedef HRESULT ( WINAPI *CryptXmlDllCloseDigest )(
128 CRYPT_XML_DIGEST hDigest
129 );
130
131 typedef HRESULT ( WINAPI *CryptXmlDllSignData )(
132 const CRYPT_XML_ALGORITHM *pSignatureMethod,
133 HCRYPTPROV_OR_NCRYPT_KEY_HANDLE hCryptProvOrNCryptKey,
134 DWORD dwKeySpec,
135 const BYTE *pbInput,
136 ULONG cbInput,
137 BYTE *pbOutput,
138 ULONG cbOutput,
139 ULONG *pcbResult
140 );
141
142 typedef HRESULT ( WINAPI *CryptXmlDllVerifySignature )(
143 const CRYPT_XML_ALGORITHM *pSignatureMethod,
144 HCRYPTXML_PROV hCryptProv,
145 HCRYPTXML_KEY hKey,
146 const BYTE *pbInput,
147 ULONG cbInput,
148 const BYTE *pbSignature,
149 ULONG cbSignature
150 );
151
152 typedef HRESULT ( WINAPI *CryptXmlDllCreateKey )(
153 CRYPT_XML_BLOB *pEncoded,
154 const BCRYPT_KEY_HANDLE *phKey
155 );
156
157 typedef HRESULT ( WINAPI *CryptXmlDllEncodeKeyValue )(
158 NCRYPT_KEY_HANDLE hKey,
159 CRYPT_XML_CHARSET dwCharset,
160 void *pvCallbackState,
161 PFN_CRYPT_XML_WRITE_CALLBACK pfnWrite
162 );
163
164 typedef struct _CRYPT_XML_CRYPTOGRAPHIC_INTERFACE {
165 ULONG cbSize;
166 CryptXmlDllEncodeAlgorithm fpCryptXmlEncodeAlgorithm;
167 CryptXmlDllCreateDigest fpCryptXmlCreateDigest;
168 CryptXmlDllDigestData fpCryptXmlDigestData;
169 CryptXmlDllFinalizeDigest fpCryptXmlFinalizeDigest;
170 CryptXmlDllCloseDigest fpCryptXmlCloseDigest;
171 CryptXmlDllSignData fpCryptXmlSignData;
172 CryptXmlDllVerifySignature fpCryptXmlVerifySignature;
173 CryptXmlDllGetAlgorithmInfo fpCryptXmlGetAlgorithmInfo;
174 } CRYPT_XML_CRYPTOGRAPHIC_INTERFACE, *PCRYPT_XML_CRYPTOGRAPHIC_INTERFACE;
175
176 typedef HRESULT ( WINAPI *CryptXmlDllGetInterface )(
177 DWORD dwFlags,
178 const CRYPT_XML_ALGORITHM_INFO *pMethod,
179 CRYPT_XML_CRYPTOGRAPHIC_INTERFACE *pInterface
180 );
181
182 typedef struct _CRYPT_XML_DATA_BLOB {
183 ULONG cbData;
184 BYTE *pbData;
185 } CRYPT_XML_DATA_BLOB, *PCRYPT_XML_DATA_BLOB;
186
187 typedef HRESULT (CALLBACK *PFN_CRYPT_XML_DATA_PROVIDER_READ)(
188 void *pvCallbackState,
189 BYTE *pbData,
190 ULONG cbData,
191 ULONG *pcbRead
192 );
193
194 typedef HRESULT (CALLBACK *PFN_CRYPT_XML_DATA_PROVIDER_CLOSE)(
195 void *pvCallbackState
196 );
197
198 typedef struct _CRYPT_XML_DATA_PROVIDER {
199 void *pvCallbackState;
200 ULONG cbBufferSize;
201 PFN_CRYPT_XML_DATA_PROVIDER_READ pfnRead;
202 PFN_CRYPT_XML_DATA_PROVIDER_CLOSE pfnClose;
203 } CRYPT_XML_DATA_PROVIDER, *PCRYPT_XML_DATA_PROVIDER;
204
205 typedef HRESULT (CALLBACK *PFN_CRYPT_XML_CREATE_TRANSFORM)(
206 const CRYPT_XML_ALGORITHM *pTransform,
207 CRYPT_XML_DATA_PROVIDER *pProviderIn,
208 CRYPT_XML_DATA_PROVIDER *pProviderOut
209 );
210
211 typedef struct _CRYPT_XML_TRANSFORM_INFO {
212 ULONG cbSize;
213 LPCWSTR wszAlgorithm;
214 ULONG cbBufferSize;
215 DWORD dwFlags;
216 PFN_CRYPT_XML_CREATE_TRANSFORM pfnCreateTransform;
217 } CRYPT_XML_TRANSFORM_INFO, *PCRYPT_XML_TRANSFORM_INFO;
218
219 #define CRYPT_XML_TRANSFORM_ON_STREAM 0x00000001
220 #define CRYPT_XML_TRANSFORM_ON_NODESET 0x00000002
221 #define CRYPT_XML_TRANSFORM_URI_QUERY_STRING 0x00000003
222
223 typedef struct _CRYPT_XML_TRANSFORM_CHAIN_CONFIG {
224 ULONG cbSize;
225 ULONG cTransformInfo;
226 PCRYPT_XML_TRANSFORM_INFO *rgpTransformInfo;
227 } CRYPT_XML_TRANSFORM_CHAIN_CONFIG, *PCRYPT_XML_TRANSFORM_CHAIN_CONFIG;
228
229 typedef struct _CRYPT_XML_REFERENCE {
230 ULONG cbSize;
231 HCRYPTXML hReference;
232 LPCWSTR wszId;
233 LPCWSTR wszUri;
234 LPCWSTR wszType;
235 CRYPT_XML_ALGORITHM DigestMethod;
236 CRYPT_DATA_BLOB DigestValue;
237 ULONG cTransform;
238 CRYPT_XML_ALGORITHM *rgTransform;
239 } CRYPT_XML_REFERENCE, *PCRYPT_XML_REFERENCE;
240
241 typedef struct _CRYPT_XML_REFERENCES {
242 ULONG cReference;
243 PCRYPT_XML_REFERENCE *rgpReference;
244 } CRYPT_XML_REFERENCES, *PCRYPT_XML_REFERENCES;
245
246 typedef struct _CRYPT_XML_SIGNED_INFO {
247 ULONG cbSize;
248 LPCWSTR wszId;
249 CRYPT_XML_ALGORITHM Canonicalization;
250 CRYPT_XML_ALGORITHM SignatureMethod;
251 ULONG cReference;
252 PCRYPT_XML_REFERENCE *rgpReference;
253 CRYPT_XML_BLOB Encoded;
254 } CRYPT_XML_SIGNED_INFO, *PCRYPT_XML_SIGNED_INFO;
255
256 typedef struct _CRYPT_XML_ISSUER_SERIAL {
257 LPCWSTR wszIssuer ;
258 LPCWSTR wszSerial;
259 } CRYPT_XML_ISSUER_SERIAL;
260
261 typedef struct _CRYPT_XML_X509DATA_ITEM {
262 DWORD dwType;
263 __C89_NAMELESS union {
264 CRYPT_XML_ISSUER_SERIAL IssuerSerial;
265 CRYPT_XML_DATA_BLOB SKI;
266 LPCWSTR wszSubjectName;
267 CRYPT_XML_DATA_BLOB Certificate;
268 CRYPT_XML_DATA_BLOB CRL;
269 CRYPT_XML_BLOB Custom;
270 } ;
271 } CRYPT_XML_X509DATA_ITEM;
272
273 #define CRYPT_XML_X509DATA_TYPE_ISSUER_SERIAL 0x00000001
274 #define CRYPT_XML_X509DATA_TYPE_SKI 0x00000002
275 #define CRYPT_XML_X509DATA_TYPE_SUBJECT_NAME 0x00000003
276 #define CRYPT_XML_X509DATA_TYPE_CERTIFICATE 0x00000004
277 #define CRYPT_XML_X509DATA_TYPE_CRL 0x00000005
278 #define CRYPT_XML_X509DATA_TYPE_CUSTOM 0x00000006
279
280 typedef struct _CRYPT_XML_X509DATA {
281 UINT cX509Data;
282 CRYPT_XML_X509DATA_ITEM *rgX509Data;
283 } CRYPT_XML_X509DATA, *PCRYPT_XML_X509DATA;
284
285 typedef struct _CRYPT_XML_KEY_INFO_ITEM {
286 DWORD dwType;
287 __C89_NAMELESS union {
288 LPCWSTR wszKeyName;
289 CRYPT_XML_KEY_VALUE KeyValue;
290 CRYPT_XML_BLOB RetrievalMethod;
291 CRYPT_XML_X509DATA X509Data;
292 CRYPT_XML_BLOB Custom;
293 } ;
294 } CRYPT_XML_KEY_INFO_ITEM;
295
296 #define CRYPT_XML_KEYINFO_TYPE_KEYNAME 0x00000001
297 #define CRYPT_XML_KEYINFO_TYPE_KEYVALUE 0x00000002
298 #define CRYPT_XML_KEYINFO_TYPE_RETRIEVAL 0x00000003
299 #define CRYPT_XML_KEYINFO_TYPE_X509DATA 0x00000004
300 #define CRYPT_XML_KEYINFO_TYPE_CUSTOM 0x00000005
301
302 typedef struct _CRYPT_XML_KEY_DSA_KEY_VALUE {
303 CRYPT_XML_DATA_BLOB P;
304 CRYPT_XML_DATA_BLOB Q;
305 CRYPT_XML_DATA_BLOB G;
306 CRYPT_XML_DATA_BLOB Y;
307 CRYPT_XML_DATA_BLOB J;
308 CRYPT_XML_DATA_BLOB Seed;
309 CRYPT_XML_DATA_BLOB Counter;
310 } CRYPT_XML_KEY_DSA_KEY_VALUE;
311
312 typedef struct _CRYPT_XML_KEY_RSA_KEY_VALUE {
313 CRYPT_XML_DATA_BLOB Modulus;
314 CRYPT_XML_DATA_BLOB Exponent;
315 } CRYPT_XML_KEY_RSA_KEY_VALUE;
316
317 typedef struct _CRYPT_XML_KEY_ECDSA_KEY_VALUE {
318 LPCWSTR wszNamedCurve;
319 CRYPT_XML_DATA_BLOB X;
320 CRYPT_XML_DATA_BLOB Y;
321 CRYPT_XML_BLOB ExplicitPara;
322 } CRYPT_XML_KEY_ECDSA_KEY_VALUE;
323
324 typedef struct _CRYPT_XML_KEY_VALUE {
325 DWORD dwType;
326 __C89_NAMELESS union {
327 CRYPT_XML_KEY_DSA_KEY_VALUE DSAKeyValue;
328 CRYPT_XML_KEY_RSA_KEY_VALUE RSAKeyValue;
329 CRYPT_XML_KEY_ECDSA_KEY_VALUE ECDSAKeyValue;
330 CRYPT_XML_BLOB Custom;
331 } ;
332 } CRYPT_XML_KEY_VALUE;
333
334 #define CRYPT_XML_KEY_VALUE_TYPE_DSA 0x00000001
335 #define CRYPT_XML_KEY_VALUE_TYPE_RSA 0x00000002
336 #define CRYPT_XML_KEY_VALUE_TYPE_ECDSA 0x00000003
337 #define CRYPT_XML_KEY_VALUE_TYPE_CUSTOM 0x00000004
338
339 typedef struct _CRYPT_XML_KEY_INFO {
340 ULONG cbSize;
341 LPCWSTR wszId;
342 UINT cKeyInfo;
343 CRYPT_XML_KEY_INFO_ITEM *rgKeyInfo;
344 BCRYPT_KEY_HANDLE hVerifyKey;
345 } CRYPT_XML_KEY_INFO;
346
347 typedef struct _CRYPT_XML_OBJECT {
348 ULONG cbSize;
349 HCRYPTXML hObject;
350 LPCWSTR wszId;
351 LPCWSTR wszMimeType;
352 LPCWSTR wszEncoding;
353 CRYPT_XML_REFERENCES Manifest;
354 CRYPT_XML_BLOB Encoded;
355 } CRYPT_XML_OBJECT, *PCRYPT_XML_OBJECT;
356
357 typedef struct _CRYPT_XML_SIGNATURE {
358 ULONG cbSize;
359 HCRYPTXML hSignature;
360 LPCWSTR wszId;
361 CRYPT_XML_SIGNED_INFO SignedInfo;
362 CRYPT_DATA_BLOB SignatureValue;
363 CRYPT_XML_KEY_INFO *pKeyInfo;
364 ULONG cObject;
365 PCRYPT_XML_OBJECT *rgpObject;
366 } CRYPT_XML_SIGNATURE, *PCRYPT_XML_SIGNATURE;
367
368 typedef struct _CRYPT_XML_DOC_CTXT {
369 ULONG cbSize;
370 HCRYPTXML hDocCtxt;
371 CRYPT_XML_TRANSFORM_CHAIN_CONFIG *pTransformsConfig;
372 ULONG cSignature;
373 PCRYPT_XML_SIGNATURE *rgpSignature;
374 } CRYPT_XML_DOC_CTXT, *PCRYPT_XML_DOC_CTXT;
375
376 typedef struct _CRYPT_XML_KEYINFO_PARAM {
377 LPCWSTR wszId;
378 LPCWSTR wszKeyName;
379 CERT_BLOB SKI;
380 LPCWSTR wszSubjectName;
381 ULONG cCertificate;
382 CERT_BLOB *rgCertificate;
383 ULONG cCRL;
384 CERT_BLOB *rgCRL;
385 } CRYPT_XML_KEYINFO_PARAM;
386
387 typedef struct _CRYPT_XML_PROPERTY {
388 CRYPT_XML_PROPERTY_ID dwPropId;
389 const void *pvValue;
390 ULONG cbValue;
391 } CRYPT_XML_PROPERTY, *PCRYPT_XML_PROPERTY;
392
393 typedef struct _CRYPT_XML_STATUS {
394 ULONG cbSize;
395 DWORD dwErrorStatus;
396 DWORD dwInfoStatus;
397 } CRYPT_XML_STATUS, *PCRYPT_XML_STATUS;
398
399 #define CRYPT_XML_STATUS_ERROR_NOT_RESOLVED 0x00000001
400 #define CRYPT_XML_STATUS_ERROR_DIGEST_INVALID 0x00000002
401 #define CRYPT_XML_STATUS_ERROR_NOT_SUPPORTED_ALGORITHM 0x00000005
402 #define CRYPT_XML_STATUS_ERROR_NOT_SUPPORTED_TRANSFORM 0x00000008
403 #define CRYPT_XML_STATUS_ERROR_SIGNATURE_INVALID 0x00010000
404 #define CRYPT_XML_STATUS_ERROR_KEYINFO_NOT_PARSED 0x00020000
405
406 #define CRYPT_XML_STATUS_INTERNAL_REFERENCE 0x00000001
407 #define CRYPT_XML_STATUS_KEY_AVAILABLE 0x00000002
408 #define CRYPT_XML_STATUS_DIGESTING 0x00000004
409 #define CRYPT_XML_STATUS_DIGEST_VALID 0x00000008
410 #define CRYPT_XML_STATUS_SIGNATURE_VALID 0x00010000
411 #define CRYPT_XML_STATUS_OPENED_TO_ENCODE 0x80000000
412
413 CRYPTXMLAPI HRESULT WINAPI CryptXmlAddObject(
414 HCRYPTXML hSignatureOrObject,
415 DWORD dwFlags,
416 const CRYPT_XML_PROPERTY *rgProperty,
417 ULONG cProperty,
418 const PCRYPT_XML_BLOB pEncoded,
419 const CRYPT_XML_OBJECT **ppObject
420 );
421
422 CRYPTXMLAPI HRESULT WINAPI CryptXmlClose(
423 HCRYPTXML hCryptXml
424 );
425
426 CRYPTXMLAPI HRESULT WINAPI CryptXmlCreateReference(
427 HCRYPTXML hCryptXml,
428 DWORD dwFlags,
429 LPCWSTR wszId,
430 LPCWSTR wszURI,
431 LPCWSTR wszType,
432 const CRYPT_XML_ALGORITHM *pDigestMethod,
433 ULONG cTransform,
434 const CRYPT_XML_ALGORITHM *rgTransform,
435 HCRYPTXML *phReference
436 );
437
438 #define CRYPT_XML_FLAG_CREATE_REFERENCE_AS_OBJECT 0x00000001
439
440 CRYPTXMLAPI HRESULT WINAPI CryptXmlDigestReference(
441 HCRYPTXML hReference,
442 DWORD dwFlags,
443 CRYPT_XML_DATA_PROVIDER *pDataProviderIn
444 );
445
446 #define CRYPT_XML_REFERENCE_DATA_TRANSFORMED 0x00000001
447
448 CRYPTXMLAPI HRESULT WINAPI CryptXmlEncode(
449 HCRYPTXML hCryptXml,
450 CRYPT_XML_CHARSET dwCharset,
451 const CRYPT_XML_PROPERTY *rgProperty,
452 ULONG cProperty,
453 void *pvCallbackState,
454 PFN_CRYPT_XML_WRITE_CALLBACK pfnWrite
455 );
456
457 CRYPTXMLAPI HRESULT WINAPI CryptXmlGetAlgorithmInfo(
458 const CRYPT_XML_ALGORITHM *pXmlAlgorithm,
459 DWORD dwFlags,
460 CRYPT_XML_ALGORITHM_INFO **ppAlgInfo
461 );
462
463 CRYPTXMLAPI HRESULT WINAPI CryptXmlGetDocContext(
464 HCRYPTXML hCryptXml,
465 const CRYPT_XML_DOC_CTXT **ppStruct
466 );
467
468 CRYPTXMLAPI HRESULT WINAPI CryptXmlGetReference(
469 HCRYPTXML HCRYPTXML,
470 const CRYPT_XML_REFERENCE **ppStruct
471 );
472
473 CRYPTXMLAPI HRESULT WINAPI CryptXmlGetSignature(
474 HCRYPTXML hCryptXml,
475 const PCRYPT_XML_SIGNATURE **ppStruct
476 );
477
478 CRYPTXMLAPI HRESULT WINAPI CryptXmlGetStatus(
479 HCRYPTXML hCryptXml,
480 CRYPT_XML_STATUS *pStatus
481 );
482
483 CRYPTXMLAPI HRESULT WINAPI CryptXmlGetTransforms(
484 PCRYPT_XML_TRANSFORM_CHAIN_CONFIG **pConfig
485 );
486
487 CRYPTXMLAPI HRESULT WINAPI CryptXmlImportPublicKey(
488 DWORD dwFlags,
489 CRYPT_XML_KEY_VALUE *pKeyValue,
490 BCRYPT_KEY_HANDLE *phKey
491 );
492
493 #define CRYPT_XML_FLAG_DISABLE_EXTENSIONS 0x10000000
494
495 CRYPTXMLAPI HRESULT WINAPI CryptXmlOpenToDecode(
496 CRYPT_XML_TRANSFORM_CHAIN_CONFIG *pConfig,
497 DWORD dwFlags,
498 const CRYPT_XML_PROPERTY *rgProperty,
499 ULONG cProperty,
500 const CRYPT_XML_BLOB *pEncoded,
501 HCRYPTXML phCryptXml
502 );
503
504 #define CRYPT_XML_FLAG_NO_SERIALIZE 0x80000000
505 #define CRYPT_XML_FLAG_DISABLE_EXTENSION 0x10000000
506
507 CRYPTXMLAPI HRESULT WINAPI CryptXmlOpenToEncode(
508 CRYPT_XML_TRANSFORM_CHAIN_CONFIG *pConfig,
509 DWORD dwFlags,
510 LPCWSTR wszId,
511 CRYPT_XML_PROPERTY *rgProperty,
512 ULONG cProperty,
513 CRYPT_XML_BLOB *pEncoded,
514 HCRYPTXML *phSignature
515 );
516
517 #define CRYPT_XML_FLAG_NO_SERIALIZE 0x80000000
518 #define CRYPT_XML_FLAG_DISABLE_EXTENSIONS 0x10000000
519
520 CRYPTXMLAPI HRESULT WINAPI CryptXmlSetHMACSecret(
521 HCRYPTXML hSignature,
522 const BYTE *pbSecret,
523 ULONG cbSecret
524 );
525
526 CRYPTXMLAPI HRESULT WINAPI CryptXmlSign(
527 HCRYPTXML hSignature,
528 HCRYPTPROV_OR_NCRYPT_KEY_HANDLE hKey,
529 DWORD dwKeySpec,
530 DWORD dwFlags,
531 CRYPT_XML_KEYINFO_SPEC dwKeyInfoSpec,
532 const void pvKeyInfoSpec,
533 const CRYPT_XML_ALGORITHM pSignatureMethod,
534 const CRYPT_XML_ALGORITHM pCanonicalization
535 );
536
537 #define AT_KEYEXCHANGE 1
538 #define AT_SIGNATURE 2
539 #define CERT_NCRYPT_KEY_SPEC 0xFFFFFFFF
540
541 #define CRYPT_XML_SIGN_ADD_KEYVALUE 0x00000001
542 #define CRYPT_XML_FLAG_DISABLE_EXTENSIONS 0x10000000
543
544 CRYPTXMLAPI HRESULT WINAPI CryptXmlVerifySignature(
545 HCRYPTXML hSignature,
546 BCRYPT_KEY_HANDLE hKey,
547 DWORD dwFlags
548 );
549
550 #endif /*(_WIN32_WINNT >= 0x0601)*/
551
552 #ifdef __cplusplus
553 }
554 #endif
555 #endif /*_INC_CRYPTXML*/