source: Daodan/MSYS2/mingw32/i686-w64-mingw32/include/cryptxml.h@ 1180

Last change on this file since 1180 was 1166, checked in by rossy, 3 years ago

Daodan: Replace MinGW build env with an up-to-date MSYS2 env

File size: 15.4 KB
Line 
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
11extern "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*/
29typedef 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*/
35typedef LPVOID BCRYPT_KEY_HANDLE;
36#endif /*__BCRYPT_KEY_HANDLE_DEFINED__*/
37
38typedef HANDLE HCRYPTXML;
39
40#if (_WIN32_WINNT >= 0x0601)
41
42typedef 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
49typedef 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
55typedef 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
64typedef 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
72typedef struct _CRYPT_XML_ALGORITHM {
73 ULONG cbSize;
74 LPCWSTR wszAlgorithm;
75 CRYPT_XML_BLOB Encoded;
76} CRYPT_XML_ALGORITHM, *PCRYPT_XML_ALGORITHM;
77
78typedef 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
94typedef HRESULT (CALLBACK *PFN_CRYPT_XML_WRITE_CALLBACK)(
95 void *pvCallbackState,
96 BYTE pbData,
97 ULONG cbData
98);
99
100typedef 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
107typedef HANDLE CRYPT_XML_DIGEST;
108
109typedef HRESULT ( WINAPI *CryptXmlDllCreateDigest )(
110 const CRYPT_XML_ALGORITHM *pDigestMethod,
111 ULONG *pcbSize,
112 CRYPT_XML_DIGEST *phDigest
113);
114
115typedef HRESULT ( WINAPI *CryptXmlDllDigestData )(
116 CRYPT_XML_DIGEST hDigest,
117 BYTE *pbData,
118 ULONG cbDigest
119);
120
121typedef HRESULT ( WINAPI *CryptXmlDllFinalizeDigest )(
122 CRYPT_XML_DIGEST hDigest,
123 BYTE *pbDigest,
124 ULONG cbDigest
125);
126
127typedef HRESULT ( WINAPI *CryptXmlDllCloseDigest )(
128 CRYPT_XML_DIGEST hDigest
129);
130
131typedef 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
142typedef 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
152typedef HRESULT ( WINAPI *CryptXmlDllCreateKey )(
153 CRYPT_XML_BLOB *pEncoded,
154 const BCRYPT_KEY_HANDLE *phKey
155);
156
157typedef 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
164typedef 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
176typedef HRESULT ( WINAPI *CryptXmlDllGetInterface )(
177 DWORD dwFlags,
178 const CRYPT_XML_ALGORITHM_INFO *pMethod,
179 CRYPT_XML_CRYPTOGRAPHIC_INTERFACE *pInterface
180);
181
182typedef struct _CRYPT_XML_DATA_BLOB {
183 ULONG cbData;
184 BYTE *pbData;
185} CRYPT_XML_DATA_BLOB, *PCRYPT_XML_DATA_BLOB;
186
187typedef HRESULT (CALLBACK *PFN_CRYPT_XML_DATA_PROVIDER_READ)(
188 void *pvCallbackState,
189 BYTE *pbData,
190 ULONG cbData,
191 ULONG *pcbRead
192);
193
194typedef HRESULT (CALLBACK *PFN_CRYPT_XML_DATA_PROVIDER_CLOSE)(
195 void *pvCallbackState
196);
197
198typedef 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
205typedef 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
211typedef 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
223typedef 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
229typedef 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
241typedef struct _CRYPT_XML_REFERENCES {
242 ULONG cReference;
243 PCRYPT_XML_REFERENCE *rgpReference;
244} CRYPT_XML_REFERENCES, *PCRYPT_XML_REFERENCES;
245
246typedef 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
256typedef struct _CRYPT_XML_ISSUER_SERIAL {
257 LPCWSTR wszIssuer ;
258 LPCWSTR wszSerial;
259} CRYPT_XML_ISSUER_SERIAL;
260
261typedef 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
280typedef struct _CRYPT_XML_X509DATA {
281 UINT cX509Data;
282 CRYPT_XML_X509DATA_ITEM *rgX509Data;
283} CRYPT_XML_X509DATA, *PCRYPT_XML_X509DATA;
284
285typedef 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
302typedef 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
312typedef 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
317typedef 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
324typedef 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
339typedef 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
347typedef 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
357typedef 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
368typedef 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
376typedef 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
387typedef 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
393typedef 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
413CRYPTXMLAPI 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
422CRYPTXMLAPI HRESULT WINAPI CryptXmlClose(
423 HCRYPTXML hCryptXml
424);
425
426CRYPTXMLAPI 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
440CRYPTXMLAPI 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
448CRYPTXMLAPI 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
457CRYPTXMLAPI HRESULT WINAPI CryptXmlGetAlgorithmInfo(
458 const CRYPT_XML_ALGORITHM *pXmlAlgorithm,
459 DWORD dwFlags,
460 CRYPT_XML_ALGORITHM_INFO **ppAlgInfo
461);
462
463CRYPTXMLAPI HRESULT WINAPI CryptXmlGetDocContext(
464 HCRYPTXML hCryptXml,
465 const CRYPT_XML_DOC_CTXT **ppStruct
466);
467
468CRYPTXMLAPI HRESULT WINAPI CryptXmlGetReference(
469 HCRYPTXML HCRYPTXML,
470 const CRYPT_XML_REFERENCE **ppStruct
471);
472
473CRYPTXMLAPI HRESULT WINAPI CryptXmlGetSignature(
474 HCRYPTXML hCryptXml,
475 const PCRYPT_XML_SIGNATURE **ppStruct
476);
477
478CRYPTXMLAPI HRESULT WINAPI CryptXmlGetStatus(
479 HCRYPTXML hCryptXml,
480 CRYPT_XML_STATUS *pStatus
481);
482
483CRYPTXMLAPI HRESULT WINAPI CryptXmlGetTransforms(
484 PCRYPT_XML_TRANSFORM_CHAIN_CONFIG **pConfig
485);
486
487CRYPTXMLAPI 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
495CRYPTXMLAPI 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
507CRYPTXMLAPI 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
520CRYPTXMLAPI HRESULT WINAPI CryptXmlSetHMACSecret(
521 HCRYPTXML hSignature,
522 const BYTE *pbSecret,
523 ULONG cbSecret
524);
525
526CRYPTXMLAPI 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
544CRYPTXMLAPI 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*/
Note: See TracBrowser for help on using the repository browser.