Win7 "C" list. git-svn-id: svn+ssh://svn.code.sf.net/p/mingw-w64/code/trunk@3644 4407c894-4637-0410-b4f5-ada5f102cad1
diff --git a/mingw-w64-headers/include/bcrypt.h b/mingw-w64-headers/include/bcrypt.h index 4faa7e9..0ec6bc4 100644 --- a/mingw-w64-headers/include/bcrypt.h +++ b/mingw-w64-headers/include/bcrypt.h
@@ -77,7 +77,11 @@ #define CRYPT_ALL_FUNCTIONS 1 #define CRYPT_ALL_PROVIDERS 2 +#ifndef __BCRYPT_KEY_HANDLE_DEFINED__ +#define __BCRYPT_KEY_HANDLE_DEFINED__ +/*also in cryptxml.h*/ typedef LPVOID BCRYPT_KEY_HANDLE; +#endif /*__BCRYPT_KEY_HANDLE_DEFINED__*/ typedef LPVOID BCRYPT_ALG_HANDLE; typedef LPVOID BCRYPT_HASH_HANDLE; typedef LPVOID BCRYPT_SECRET_HANDLE;
diff --git a/mingw-w64-headers/include/bdamedia.h b/mingw-w64-headers/include/bdamedia.h index c0f889e..f2f0c37 100644 --- a/mingw-w64-headers/include/bdamedia.h +++ b/mingw-w64-headers/include/bdamedia.h
@@ -345,6 +345,35 @@ BDA_TRANSPORT_INFO BdaTransportInfo; } KS_DATARANGE_BDA_TRANSPORT, *PKS_DATARANGE_BDA_TRANSPORT; +#if (_WIN32_WINNT >= 0x0601) +typedef enum tagChannelChangeSpanningEvent_State { + ChannelChangeSpanningEvent_Start = 0, + ChannelChangeSpanningEvent_End = 2 +} ChannelChangeSpanningEvent_State; + +typedef struct _ChannelChangeInfo { + ChannelChangeSpanningEvent_State state; + ULONGLONG TimeStamp; +} ChannelChangeInfo; + +typedef struct _ChannelInfo { + LONG lFrequency; + __MINGW_EXTENSION union { + struct { + LONG lONID; + LONG lTSID; + LONG lSID; + } DVB; + struct { + LONG lProgNumber; + } DC; + struct { + LONG lProgNumber; + } ATSC; + } ; +} ChannelInfo; + +#endif /*(_WIN32_WINNT >= 0x0601)*/ /* ------------------------------------------------------------ BDA Stream Format GUIDs
diff --git a/mingw-w64-headers/include/cryptxml.h b/mingw-w64-headers/include/cryptxml.h new file mode 100644 index 0000000..7985c40 --- /dev/null +++ b/mingw-w64-headers/include/cryptxml.h
@@ -0,0 +1,552 @@ +/** + * This file has no copyright assigned and is placed in the Public Domain. + * This file is part of the w64 mingw-runtime package. + * No warranty is given; refer to the file DISCLAIMER.PD within this package. + */ + +#ifndef _INC_CRYPTXML +#define _INC_CRYPTXML + +#ifdef __cplusplus +extern "C" { +#endif + +#ifndef DECLSPEC_IMPORT +#define DECLSPEC_IMPORT __declspec(dllimport) +#endif + +#ifndef CRYPTXMLAPI +#define CRYPTXMLAPI DECLSPEC_IMPORT +#endif + +#ifndef __HCRYPTPROV_OR_NCRYPT_KEY_HANDLE_DEFINED__ +#define __HCRYPTPROV_OR_NCRYPT_KEY_HANDLE_DEFINED__ +/*Also in wincrypth*/ +typedef ULONG_PTR HCRYPTPROV_OR_NCRYPT_KEY_HANDLE; +#endif /*__HCRYPTPROV_OR_NCRYPT_KEY_HANDLE_DEFINED__*/ + +#ifndef __BCRYPT_KEY_HANDLE_DEFINED__ +#define __BCRYPT_KEY_HANDLE_DEFINED__ +/*also in bcrypt.h*/ +typedef LPVOID BCRYPT_KEY_HANDLE; +#endif /*__BCRYPT_KEY_HANDLE_DEFINED__*/ + +typedef ULONG_PTR HCRYPTXML; /*Fixme: Guessed*/ +typedef HANDLE HXML; /*Fixme: Guessed*/ + +#if (_WIN32_WINNT >= 0x0601) + +typedef enum tagCRYPT_XML_CHARSET { + CRYPT_XML_CHARSET_AUTO = 0, + CRYPT_XML_CHARSET_UTF8 = 1, + CRYPT_XML_CHARSET_UTF16LE = 2, + CRYPT_XML_CHARSET_UTF16BE = 3 +} CRYPT_XML_CHARSET; + +typedef enum tagCRYPT_XML_KEYINFO_SPEC { + CRYPT_XML_KEYINFO_SPEC_NONE = 0, + CRYPT_XML_KEYINFO_SPEC_ENCODED = 1, + CRYPT_XML_KEYINFO_SPEC_PARAM = 2 +} CRYPT_XML_KEYINFO_SPEC; + +typedef enum tagCRYPT_XML_PROPERTY_ID { + CRYPT_XML_PROPERTY_MAX_HEAP_SIZE = 1, + CRYPT_XML_PROPERTY_SIGNATURE_LOCATION = 2, + CRYPT_XML_PROPERTY_MAX_SIGNATURES = 3, + CRYPT_XML_PROPERTY_DOC_DECLARATION = 4, + CRYPT_XML_PROPERTY_XML_OUTPUT_CHARSET = 5, + CRYPT_XML_PROPERTY_HMAC_OUTPUT_LENGTH = 6 +} CRYPT_XML_PROPERTY_ID; + +typedef struct _CRYPT_XML_BLOB { + CRYPT_XML_CHARSET dwCharset; + ULONG cbData; + BYTE *pbData; +} CRYPT_XML_BLOB, *PCRYPT_XML_BLOB; + +#define CRYPT_XML_BLOB_MAX 0x7FFFFFF8 + +typedef struct _CRYPT_XML_ALGORITHM { + ULONG cbSize; + LPCWSTR wszAlgorithm; + CRYPT_XML_BLOB Encoded; +} CRYPT_XML_ALGORITHM, *PCRYPT_XML_ALGORITHM; + +typedef struct _CRYPT_XML_ALGORITHM_INFO { + DWORD cbSize; + WCHAR *wszAlgorithmURI; + WCHAR *wszName; + DWORD dwGroupId; + WCHAR *wszCNGAlgid; + WCHAR wszCNGExtraAlgid; + DWORD dwSignFlags; + DWORD dwVerifyFlags; + void pvPaddingInfo; + void pvExtraInfo; +} CRYPT_XML_ALGORITHM_INFO, *PCRYPT_XML_ALGORITHM_INFO; + +#define CRYPT_XML_GROUP_ID_HASH 1 +#define CRYPT_XML_GROUP_ID_SIGN 2 + +typedef HRESULT (CALLBACK *PFN_CRYPT_XML_WRITE_CALLBACK)( + void *pvCallbackState, + BYTE pbData, + ULONG cbData +); + +typedef HRESULT ( WINAPI *CryptXmlDllEncodeAlgorithm )( + CRYPT_XML_ALGORITHM_INFO *pAlgInfo, + CRYPT_XML_CHARSET dwCharset, + void *pvCallbackState, + PFN_CRYPT_XML_WRITE_CALLBACK pfnWrite +); + +typedef HANDLE CRYPT_XML_DIGEST; + +typedef HRESULT ( WINAPI *CryptXmlDllCreateDigest )( + const CRYPT_XML_ALGORITHM *pDigestMethod, + ULONG *pcbSize, + CRYPT_XML_DIGEST *phDigest +); + +typedef HRESULT ( WINAPI *CryptXmlDllDigestData )( + CRYPT_XML_DIGEST hDigest, + BYTE *pbData, + ULONG cbDigest +); + +typedef HRESULT ( WINAPI *CryptXmlDllFinalizeDigest )( + CRYPT_XML_DIGEST hDigest, + BYTE *pbDigest, + ULONG cbDigest +); + +typedef HRESULT ( WINAPI *CryptXmlDllCloseDigest )( + CRYPT_XML_DIGEST hDigest +); + +typedef HRESULT ( WINAPI *CryptXmlDllSignData )( + const CRYPT_XML_ALGORITHM *pSignatureMethod, + HCRYPTPROV_OR_NCRYPT_KEY_HANDLE hCryptProvOrNCryptKey, + DWORD dwKeySpec, + const BYTE *pbInput, + ULONG cbInput, + BYTE *pbOutput, + ULONG cbOutput, + ULONG *pcbResult +); + +typedef HRESULT ( WINAPI *CryptXmlDllVerifySignature )( + const CRYPT_XML_ALGORITHM *pSignatureMethod, + HCRYPTXML_PROV hCryptProv, + HCRYPTXML_KEY hKey, + const BYTE *pbInput, + ULONG cbInput, + const BYTE *pbSignature, + ULONG cbSignature +); + +typedef HRESULT ( WINAPI *CryptXmlDllCreateKey )( + CRYPT_XML_BLOB *pEncoded, + const BCRYPT_KEY_HANDLE *phKey +); + +typedef HRESULT ( WINAPI *CryptXmlDllEncodeKeyValue )( + NCRYPT_KEY_HANDLE hKey, + CRYPT_XML_CHARSET dwCharset, + void *pvCallbackState, + PFN_CRYPT_XML_WRITE_CALLBACK pfnWrite +); + +typedef struct _CRYPT_XML_CRYPTOGRAPHIC_INTERFACE { + ULONG cbSize; /*Fixme: Guessed*/ + CryptXmlDllEncodeAlgorithm fpCryptXmlEncodeAlgorithm; + CryptXmlDllCreateDigest fpCryptXmlCreateDigest; + CryptXmlDllDigestData fpCryptXmlDigestData; + CryptXmlDllFinalizeDigest fpCryptXmlFinalizeDigest; + CryptXmlDllCloseDigest fpCryptXmlCloseDigest; + CryptXmlDllSignData fpCryptXmlSignData; + CryptXmlDllVerifySignature fpCryptXmlVerifySignature; + CryptXmlDllGetAlgorithmInfo fpCryptXmlGetAlgorithmInfo; +} CRYPT_XML_CRYPTOGRAPHIC_INTERFACE, *PCRYPT_XML_CRYPTOGRAPHIC_INTERFACE; + +typedef HRESULT ( WINAPI *CryptXmlDllGetInterface )( + DWORD dwFlags, + const CRYPT_XML_ALGORITHM_INFO *pMethod, + CRYPT_XML_CRYPTOGRAPHIC_INTERFACE *pInterface +); + +typedef struct _CRYPT_XML_DATA_BLOB { + ULONG cbData; + BYTE *pbData; +} CRYPT_XML_DATA_BLOB, *PCRYPT_XML_DATA_BLOB; + +typedef HRESULT (CALLBACK *PFN_CRYPT_XML_DATA_PROVIDER_READ)( + void *pvCallbackState, + BYTE *pbData, + ULONG cbData, + ULONG *pcbRead +); + +typedef HRESULT (CALLBACK *PFN_CRYPT_XML_DATA_PROVIDER_CLOSE)( + void *pvCallbackState +); + +typedef struct _CRYPT_XML_DATA_PROVIDER { + void *pvCallbackState; + ULONG cbBufferSize; + PFN_CRYPT_XML_DATA_PROVIDER_READ pfnRead; + PFN_CRYPT_XML_DATA_PROVIDER_CLOSE pfnClose; +} CRYPT_XML_DATA_PROVIDER, *PCRYPT_XML_DATA_PROVIDER; + +typedef HRESULT (CALLBACK *PFN_CRYPT_XML_CREATE_TRANSFORM)( + const CRYPT_XML_ALGORITHM *pTransform, + CRYPT_XML_DATA_PROVIDER *pProviderIn, + CRYPT_XML_DATA_PROVIDER *pProviderOut +); + +typedef struct _CRYPT_XML_TRANSFORM_INFO { + ULONG cbSize; + LPCWSTR wszAlgorithm; + ULONG cbBufferSize; + DWORD dwFlags; + PFN_CRYPT_XML_CREATE_TRANSFORM pfnCreateTransform; +} CRYPT_XML_TRANSFORM_INFO, *PCRYPT_XML_TRANSFORM_INFO; + +#define CRYPT_XML_TRANSFORM_ON_STREAM 0x00000001 +#define CRYPT_XML_TRANSFORM_ON_NODESET 0x00000002 +#define CRYPT_XML_TRANSFORM_URI_QUERY_STRING 0x00000003 + +typedef struct _CRYPT_XML_TRANSFORM_CHAIN_CONFIG { + ULONG cbSize; + ULONG cTransformInfo; + PCRYPT_XML_TRANSFORM_INFO *rgpTransformInfo; +} CRYPT_XML_TRANSFORM_CHAIN_CONFIG, *PCRYPT_XML_TRANSFORM_CHAIN_CONFIG; + +typedef struct _CRYPT_XML_REFERENCE { + ULONG cbSize; + HCRYPTXML hReference; + LPCWSTR wszId; + LPCWSTR wszUri; + LPCWSTR wszType; + CRYPT_XML_ALGORITHM DigestMethod; + CRYPT_DATA_BLOB DigestValue; + ULONG cTransform; + CRYPT_XML_ALGORITHM *rgTransform; +} CRYPT_XML_REFERENCE, *PCRYPT_XML_REFERENCE; + +typedef struct _CRYPT_XML_REFERENCES { + ULONG cReference; + PCRYPT_XML_REFERENCE *rgpReference; +} CRYPT_XML_REFERENCES, *PCRYPT_XML_REFERENCES; + +typedef struct _CRYPT_XML_SIGNED_INFO { + ULONG cbSize; + LPCWSTR wszId; + CRYPT_XML_ALGORITHM Canonicalization; + CRYPT_XML_ALGORITHM SignatureMethod; + ULONG cReference; + PCRYPT_XML_REFERENCE *rgpReference; + CRYPT_XML_BLOB Encoded; +} CRYPT_XML_SIGNED_INFO, *PCRYPT_XML_SIGNED_INFO; + +typedef struct _CRYPT_XML_ISSUER_SERIAL { + LPCWSTR wszIssuer ; + LPCWSTR wszSerial; +} CRYPT_XML_ISSUER_SERIAL; + +typedef struct _CRYPT_XML_X509DATA_ITEM { + DWORD dwType; + __MINGW_EXTENSION union { + CRYPT_XML_ISSUER_SERIAL IssuerSerial; + CRYPT_XML_DATA_BLOB SKI; + LPCWSTR wszSubjectName; + CRYPT_XML_DATA_BLOB Certificate; + CRYPT_XML_DATA_BLOB CRL; + CRYPT_XML_BLOB Custom; + } ; +} CRYPT_XML_X509DATA_ITEM; + +#define CRYPT_XML_X509DATA_TYPE_ISSUER_SERIAL 0x00000001 +#define CRYPT_XML_X509DATA_TYPE_SKI 0x00000002 +#define CRYPT_XML_X509DATA_TYPE_SUBJECT_NAME 0x00000003 +#define CRYPT_XML_X509DATA_TYPE_CERTIFICATE 0x00000004 +#define CRYPT_XML_X509DATA_TYPE_CRL 0x00000005 +#define CRYPT_XML_X509DATA_TYPE_CUSTOM 0x00000006 + +typedef struct _CRYPT_XML_X509DATA { + UINT cX509Data; + CRYPT_XML_X509DATA_ITEM *rgX509Data; +} CRYPT_XML_X509DATA, *PCRYPT_XML_X509DATA; + +typedef struct _CRYPT_XML_KEY_INFO_ITEM { + DWORD dwType; + __MINGW_EXTENSION union { + LPCWSTR wszKeyName; + CRYPT_XML_KEY_VALUE KeyValue; + CRYPT_XML_BLOB RetrievalMethod; + CRYPT_XML_X509DATA X509Data; + CRYPT_XML_BLOB Custom; + } ; +} CRYPT_XML_KEY_INFO_ITEM; + +#define CRYPT_XML_KEYINFO_TYPE_KEYNAME 0x00000001 +#define CRYPT_XML_KEYINFO_TYPE_KEYVALUE 0x00000002 +#define CRYPT_XML_KEYINFO_TYPE_RETRIEVAL 0x00000003 +#define CRYPT_XML_KEYINFO_TYPE_X509DATA 0x00000004 +#define CRYPT_XML_KEYINFO_TYPE_CUSTOM 0x00000005 + +typedef struct _CRYPT_XML_KEY_DSA_KEY_VALUE { + CRYPT_XML_DATA_BLOB P; + CRYPT_XML_DATA_BLOB Q; + CRYPT_XML_DATA_BLOB G; + CRYPT_XML_DATA_BLOB Y; + CRYPT_XML_DATA_BLOB J; + CRYPT_XML_DATA_BLOB Seed; + CRYPT_XML_DATA_BLOB Counter; +} CRYPT_XML_KEY_DSA_KEY_VALUE; + +typedef struct _CRYPT_XML_KEY_RSA_KEY_VALUE { + CRYPT_XML_DATA_BLOB Modulus; + CRYPT_XML_DATA_BLOB Exponent; +} CRYPT_XML_KEY_RSA_KEY_VALUE; + +typedef struct _CRYPT_XML_KEY_ECDSA_KEY_VALUE { + LPCWSTR wszNamedCurve; + CRYPT_XML_DATA_BLOB X; + CRYPT_XML_DATA_BLOB Y; + CRYPT_XML_BLOB ExplicitPara; +} CRYPT_XML_KEY_ECDSA_KEY_VALUE; + +typedef struct _CRYPT_XML_KEY_VALUE { + DWORD dwType; + __MINGW_EXTENSION union { + CRYPT_XML_KEY_DSA_KEY_VALUE DSAKeyValue; + CRYPT_XML_KEY_RSA_KEY_VALUE RSAKeyValue; + CRYPT_XML_KEY_ECDSA_KEY_VALUE ECDSAKeyValue; + CRYPT_XML_BLOB Custom; + } ; +} CRYPT_XML_KEY_VALUE; + +#define CRYPT_XML_KEY_VALUE_TYPE_DSA 0x00000001 +#define CRYPT_XML_KEY_VALUE_TYPE_RSA 0x00000002 +#define CRYPT_XML_KEY_VALUE_TYPE_ECDSA 0x00000003 +#define CRYPT_XML_KEY_VALUE_TYPE_CUSTOM 0x00000004 + +typedef struct _CRYPT_XML_KEY_INFO { + ULONG cbSize; + LPCWSTR wszId; + UINT cKeyInfo; + CRYPT_XML_KEY_INFO_ITEM *rgKeyInfo; + BCRYPT_KEY_HANDLE hVerifyKey; +} CRYPT_XML_KEY_INFO; + +typedef struct _CRYPT_XML_OBJECT { + ULONG cbSize; + HCRYPTXML hObject; + LPCWSTR wszId; + LPCWSTR wszMimeType; + LPCWSTR wszEncoding; + CRYPT_XML_REFERENCES Manifest; + CRYPT_XML_BLOB Encoded; +} CRYPT_XML_OBJECT, *PCRYPT_XML_OBJECT; + +typedef struct _CRYPT_XML_SIGNATURE { + ULONG cbSize; + HCRYPTXML hSignature; + LPCWSTR wszId; + CRYPT_XML_SIGNED_INFO SignedInfo; + CRYPT_DATA_BLOB SignatureValue; + CRYPT_XML_KEY_INFO *pKeyInfo; + ULONG cObject; + PCRYPT_XML_OBJECT *rgpObject; +} CRYPT_XML_SIGNATURE, *PCRYPT_XML_SIGNATURE; + +typedef struct _CRYPT_XML_DOC_CTXT { + ULONG cbSize; + HCRYPTXML hDocCtxt; + CRYPT_XML_TRANSFORM_CHAIN_CONFIG *pTransformsConfig; + ULONG cSignature; + PCRYPT_XML_SIGNATURE *rgpSignature; +} CRYPT_XML_DOC_CTXT, *PCRYPT_XML_DOC_CTXT; + +typedef struct _CRYPT_XML_KEYINFO_PARAM { + LPCWSTR wszId; + LPCWSTR wszKeyName; + CERT_BLOB SKI; + LPCWSTR wszSubjectName; + ULONG cCertificate; + CERT_BLOB *rgCertificate; + ULONG cCRL; + CERT_BLOB *rgCRL; +} CRYPT_XML_KEYINFO_PARAM; + +typedef struct _CRYPT_XML_PROPERTY { + CRYPT_XML_PROPERTY_ID dwPropId; + const void *pvValue; + ULONG cbValue; +} CRYPT_XML_PROPERTY, *PCRYPT_XML_PROPERTY; + +typedef struct _CRYPT_XML_STATUS { + ULONG cbSize; + DWORD dwErrorStatus; + DWORD dwInfoStatus; +} CRYPT_XML_STATUS, *PCRYPT_XML_STATUS; + +#define CRYPT_XML_STATUS_ERROR_NOT_RESOLVED 0x00000001 +#define CRYPT_XML_STATUS_ERROR_DIGEST_INVALID 0x00000002 +#define CRYPT_XML_STATUS_ERROR_NOT_SUPPORTED_ALGORITHM 0x00000005 +#define CRYPT_XML_STATUS_ERROR_NOT_SUPPORTED_TRANSFORM 0x00000008 +#define CRYPT_XML_STATUS_ERROR_SIGNATURE_INVALID 0x00010000 +#define CRYPT_XML_STATUS_ERROR_KEYINFO_NOT_PARSED 0x00020000 + +#define CRYPT_XML_STATUS_INTERNAL_REFERENCE 0x00000001 +#define CRYPT_XML_STATUS_KEY_AVAILABLE 0x00000002 +#define CRYPT_XML_STATUS_DIGESTING 0x00000004 +#define CRYPT_XML_STATUS_DIGEST_VALID 0x00000008 +#define CRYPT_XML_STATUS_SIGNATURE_VALID 0x00010000 +#define CRYPT_XML_STATUS_OPENED_TO_ENCODE 0x80000000 + +CRYPTXMLAPI HRESULT WINAPI CryptXmlAddObject( + HCRYPTXML hSignatureOrObject, + DWORD dwFlags, + const CRYPT_XML_PROPERTY *rgProperty, + ULONG cProperty, + const PCRYPT_XML_BLOB pEncoded, + const CRYPT_XML_OBJECT **ppObject +); + +CRYPTXMLAPI HRESULT WINAPI CryptXmlClose( + HXML hCryptXml +); + +CRYPTXMLAPI HRESULT WINAPI CryptXmlCreateReference( + HCRYPTXML hCryptXml, + DWORD dwFlags, + LPCWSTR wszId, + LPCWSTR wszURI, + LPCWSTR wszType, + const CRYPT_XML_ALGORITHM *pDigestMethod, + ULONG cTransform, + const CRYPT_XML_ALGORITHM *rgTransform, + HCRYPTXML *phReference +); + +#define CRYPT_XML_FLAG_CREATE_REFERENCE_AS_OBJECT 0x00000001 + +CRYPTXMLAPI HRESULT WINAPI CryptXmlDigestReference( + HCRYPTXML hReference, + DWORD dwFlags, + CRYPT_XML_DATA_PROVIDER *pDataProviderIn +); + +#define CRYPT_XML_REFERENCE_DATA_TRANSFORMED 0x00000001 + +CRYPTXMLAPI HRESULT WINAPI CryptXmlEncode( + HCRYPTXML hCryptXml, + CRYPT_XML_CHARSET dwCharset, + const CRYPT_XML_PROPERTY *rgProperty, + ULONG cProperty, + void *pvCallbackState, + PFN_CRYPT_XML_WRITE_CALLBACK pfnWrite +); + +CRYPTXMLAPI HRESULT WINAPI CryptXmlGetAlgorithmInfo( + const CRYPT_XML_ALGORITHM *pXmlAlgorithm, + DWORD dwFlags, + CRYPT_XML_ALGORITHM_INFO **ppAlgInfo +); + +CRYPTXMLAPI HRESULT WINAPI CryptXmlGetDocContext( + HCRYPTXML hCryptXml, + const CRYPT_XML_DOC_CTXT **ppStruct +); + +CRYPTXMLAPI HRESULT WINAPI CryptXmlGetReference( + HCRYPTXML HCRYPTXML, + const CRYPT_XML_REFERENCE **ppStruct +); + +CRYPTXMLAPI HRESULT WINAPI CryptXmlGetSignature( + HCRYPTXML hCryptXml, + const PCRYPT_XML_SIGNATURE **ppStruct +); + +CRYPTXMLAPI HRESULT WINAPI CryptXmlGetStatus( + HCRYPTXML hCryptXml, + CRYPT_XML_STATUS *pStatus +); + +CRYPTXMLAPI HRESULT WINAPI CryptXmlGetTransforms( + PCRYPT_XML_TRANSFORM_CHAIN_CONFIG **pConfig +); + +CRYPTXMLAPI HRESULT WINAPI CryptXmlImportPublicKey( + DWORD dwFlags, + CRYPT_XML_KEY_VALUE *pKeyValue, + BCRYPT_KEY_HANDLE *phKey +); + +#define CRYPT_XML_FLAG_DISABLE_EXTENSIONS 0x10000000 + +CRYPTXMLAPI HRESULT WINAPI CryptXmlOpenToDecode( + CRYPT_XML_TRANSFORM_CHAIN_CONFIG *pConfig, + DWORD dwFlags, + const CRYPT_XML_PROPERTY *rgProperty, + ULONG cProperty, + const CRYPT_XML_BLOB *pEncoded, + HCRYPTXML phCryptXml +); + +#define CRYPT_XML_FLAG_NO_SERIALIZE 0x80000000 +#define CRYPT_XML_FLAG_DISABLE_EXTENSION 0x10000000 + +CRYPTXMLAPI HRESULT WINAPI CryptXmlOpenToEncode( + CRYPT_XML_TRANSFORM_CHAIN_CONFIG *pConfig, + DWORD dwFlags, + LPCWSTR wszId, + CRYPT_XML_PROPERTY *rgProperty, + ULONG cProperty, + CRYPT_XML_BLOB *pEncoded, + HCRYPTXML *phSignature +); + +#define CRYPT_XML_FLAG_NO_SERIALIZE 0x80000000 +#define CRYPT_XML_FLAG_DISABLE_EXTENSIONS 0x10000000 + +CRYPTXMLAPI HRESULT WINAPI CryptXmlSetHMACSecret( + HCRYPTXML hSignature, + const BYTE *pbSecret, + ULONG cbSecret +); + +CRYPTXMLAPI HRESULT WINAPI CryptXmlSign( + HCRYPTXML hSignature, + HCRYPTPROV_OR_NCRYPT_KEY_HANDLE hKey, + DWORD dwKeySpec, + DWORD dwFlags, + CRYPT_XML_KEYINFO_SPEC dwKeyInfoSpec, + const void pvKeyInfoSpec, + const CRYPT_XML_ALGORITHM pSignatureMethod, + const CRYPT_XML_ALGORITHM pCanonicalization +); + +#define AT_KEYEXCHANGE 1 +#define AT_SIGNATURE 2 +#define CERT_NCRYPT_KEY_SPEC 0xFFFFFFFF + +#define CRYPT_XML_SIGN_ADD_KEYVALUE 0x00000001 +#define CRYPT_XML_FLAG_DISABLE_EXTENSIONS 0x10000000 + +CRYPTXMLAPI HRESULT WINAPI CryptXmlVerifySignature( + HCRYPTXML hSignature, + BCRYPT_KEY_HANDLE hKey, + DWORD dwFlags +); + +#endif /*(_WIN32_WINNT >= 0x0601)*/ + +#ifdef __cplusplus +} +#endif +#endif /*_INC_CRYPTXML*/
diff --git a/mingw-w64-headers/include/evntrace.h b/mingw-w64-headers/include/evntrace.h index 7c11b02..f5593c7 100644 --- a/mingw-w64-headers/include/evntrace.h +++ b/mingw-w64-headers/include/evntrace.h
@@ -745,6 +745,7 @@ ); #endif /* _WIN32_WINNT >= 0x0600 */ +/*To enable the read event type for disk IO events, set GUID to 3d6fa8d4-fe05-11d0-9dda-00c04fd7ba7c and Type to 10.*/ typedef struct _CLASSIC_EVENT_ID { GUID EventGuid; UCHAR Type;
diff --git a/mingw-w64-headers/include/ncrypt.h b/mingw-w64-headers/include/ncrypt.h index 491ccf7..0f9a8ca 100644 --- a/mingw-w64-headers/include/ncrypt.h +++ b/mingw-w64-headers/include/ncrypt.h
@@ -33,12 +33,12 @@ #ifndef __NCRYPT_KEY_HANDLE__ #define __NCRYPT_KEY_HANDLE__ /*in wincrypt.h too*/ -typedef LPVOID NCRYPT_KEY_HANDLE; +typedef ULONG_PTR NCRYPT_KEY_HANDLE; #endif -typedef LPVOID NCRYPT_PROV_HANDLE; -typedef LPVOID NCRYPT_SECRET_HANDLE; -typedef LPVOID NCRYPT_HANDLE; +typedef ULONG_PTR NCRYPT_PROV_HANDLE; +typedef ULONG_PTR NCRYPT_SECRET_HANDLE; +typedef ULONG_PTR NCRYPT_HANDLE; #ifndef __HCRYPTKEY__ #define __HCRYPTKEY__
diff --git a/mingw-w64-headers/include/objbase.h b/mingw-w64-headers/include/objbase.h index 0aaaf99..32ed37c 100644 --- a/mingw-w64-headers/include/objbase.h +++ b/mingw-w64-headers/include/objbase.h
@@ -330,6 +330,14 @@ #if (_WIN32_WINNT >= 0x0600) HRESULT WINAPI CoDisconnectContext(DWORD dwTimeout); #endif /*(_WIN32_WINNT >= 0x0600)*/ +#if (_WIN32_WINNT >= 0x0601) + +WINOLEAPI HRESULT WINAPI CoGetApartmentType( + APTTYPE *pAptType, + APTTYPEQUALIFIER *pAptQualifier +); + +#endif /*(_WIN32_WINNT >= 0x0601)*/ #ifndef RC_INVOKED #include <poppack.h>
diff --git a/mingw-w64-headers/include/resapi.h b/mingw-w64-headers/include/resapi.h index 6c45b77..a7f05de 100644 --- a/mingw-w64-headers/include/resapi.h +++ b/mingw-w64-headers/include/resapi.h
@@ -54,7 +54,7 @@ typedef VOID (_stdcall *PQUORUM_RESOURCE_LOST)(RESOURCE_HANDLE Resource); typedef enum LOG_LEVEL { - LOG_INFORMATION,LOG_WARNING,LOG_ERROR,LOG_SEVERE + LOG_INFORMATION = 0,LOG_WARNING,LOG_ERROR,LOG_SEVERE } LOG_LEVEL,*PLOG_LEVEL; typedef VOID (_stdcall *PLOG_EVENT_ROUTINE)(RESOURCE_HANDLE ResourceHandle,LOG_LEVEL LogLevel,LPCWSTR FormatString,...); @@ -71,7 +71,7 @@ typedef DWORD (_stdcall *PRESOURCE_TYPE_CONTROL_ROUTINE)(LPCWSTR ResourceTypeName,DWORD ControlCode,PVOID InBuffer,DWORD InBufferSize,PVOID OutBuffer,DWORD OutBufferSize,LPDWORD BytesReturned); typedef enum _RESOURCE_EXIT_STATE { - ResourceExitStateContinue,ResourceExitStateTerminate,ResourceExitStateMax + ResourceExitStateContinue = 0,ResourceExitStateTerminate,ResourceExitStateMax } RESOURCE_EXIT_STATE; typedef struct CLRES_V1_FUNCTIONS { @@ -351,6 +351,37 @@ #endif /* (_WIN32_WINNT >= 0x0600) */ +#if (_WIN32_WINNT >= 0x0600) +DWORD WINAPI ClusterClearBackupStateForSharedVolume( + LPCWSTR lpszVolumePathName +); + +WINBOOL WINAPI ClusterGetVolumeNameForVolumeMountPoint( + LPCWSTR lpszVolumeMountPoint, + LPWSTR lpszVolumeName, + DWORD cchBufferLength +); + +WINBOOL WINAPI ClusterGetVolumePathName( + LPCWSTR lpszFileName, + LPWSTR lpszVolumePathName, + DWORD cchBufferLength +); + +WINBOOL WINAPI ClusterIsPathOnSharedVolume( + LPCWSTR lpszPathName +); + +DWORD WINAPI ClusterPrepareSharedVolumeForBackup( + LPCWSTR lpszFileName, + LPWSTR lpszVolumePathName, + LPDWORD lpcchVolumePathName, + LPWSTR lpszVolumeName, + LPDWORD lpcchVolumeName +); + +#endif /* (_WIN32_WINNT >= 0x0600) */ + #ifdef __cplusplus } #endif
diff --git a/mingw-w64-headers/include/schannel.h b/mingw-w64-headers/include/schannel.h index 3e2ee33..f7e27a1 100644 --- a/mingw-w64-headers/include/schannel.h +++ b/mingw-w64-headers/include/schannel.h
@@ -367,4 +367,10 @@ DWORD cbPrfData; } SecPkgContext_EapPrfInfo, *PSecPkgContext_EapPrfInfo; #endif /*(_WIN32_WINNT >= 0x0600)*/ +#if (_WIN32_WINNT >= 0x0601) +typedef struct _SecPkgContext_SupportedSignatures { + WORD cSignatureAndHashAlgorithms; + WORD *pSignatureAndHashAlgorithms; +} SecPkgContext_SupportedSignatures, *PSecPkgContext_SupportedSignatures; +#endif /*(_WIN32_WINNT >= 0x0601)*/ #endif
diff --git a/mingw-w64-headers/include/sspi.h b/mingw-w64-headers/include/sspi.h index cce8602..125f385 100644 --- a/mingw-w64-headers/include/sspi.h +++ b/mingw-w64-headers/include/sspi.h
@@ -1044,6 +1044,17 @@ PSecBufferDesc pOutput ); #endif /*(_WIN32_WINNT >= 0x0600)*/ +#if (_WIN32_WINNT >= 0x0601) +typedef struct _CREDUIWIN_MARSHALED_CONTEXT { + GUID StructureType; + USHORT cbHeaderLength; + LUID LogonId; + GUID MarshaledDataType; + ULONG MarshaledDataOffset; + USHORT MarshaledDataLength; +} CREDUIWIN_MARSHALED_CONTEXT, *PCREDUIWIN_MARSHALED_CONTEXT; + +#endif /*(_WIN32_WINNT >= 0x0601)*/ #ifdef __cplusplus }
diff --git a/mingw-w64-headers/include/wincrypt.h b/mingw-w64-headers/include/wincrypt.h index 8bfb9e4..1f85a4b 100644 --- a/mingw-w64-headers/include/wincrypt.h +++ b/mingw-w64-headers/include/wincrypt.h
@@ -203,6 +203,11 @@ #define CALG_SHA_384 (ALG_CLASS_HASH | ALG_TYPE_ANY | ALG_SID_SHA_384) #define CALG_SHA_512 (ALG_CLASS_HASH | ALG_TYPE_ANY | ALG_SID_SHA_512) +#if (_WIN32_WINNT >= 0x0600) +#define CALG_ECDH 0x0000aa05 +#define CALG_ECDSA 0x00002203 +#endif /*(_WIN32_WINNT >= 0x0600)*/ + #ifndef __HCRYPTKEY__ #define __HCRYPTKEY__ /* In ncrypt.h too */ @@ -4047,6 +4052,9 @@ DWORD dwUrlRetrievalTimeout; WINBOOL fCheckRevocationFreshnessTime; DWORD dwRevocationFreshnessTime; +#if (_WIN32_WINNT >= 0x0600) + LPFILETIME pftCacheResync; +#endif /*(_WIN32_WINNT >= 0x0600)*/ #endif } CERT_CHAIN_PARA,*PCERT_CHAIN_PARA; @@ -4148,6 +4156,9 @@ #define CERT_CHAIN_POLICY_BASIC_CONSTRAINTS ((LPCSTR) 5) #define CERT_CHAIN_POLICY_NT_AUTH ((LPCSTR) 6) #define CERT_CHAIN_POLICY_MICROSOFT_ROOT ((LPCSTR) 7) +#if (_WIN32_WINNT >= 0x0600) +#define CERT_CHAIN_POLICY_EV ((LPCSTR) 8) +#endif /*(_WIN32_WINNT >= 0x0600)*/ typedef struct _AUTHENTICODE_EXTRA_CERT_CHAIN_POLICY_PARA { DWORD cbSize; @@ -4238,7 +4249,8 @@ #define CERT_SRV_OCSP_RESP_MIN_AFTER_NEXT_UPDATE_SECONDS_VALUE_NAME L"SrvOcspRespMinAfterNextUpdateSeconds" #define CERT_SRV_OCSP_RESP_MIN_AFTER_NEXT_UPDATE_SECONDS_DEFAULT (1 * 60) -typedef LPVOID HCERT_SERVER_OCSP_RESPONSE; +typedef VOID* HCERT_SERVER_OCSP_RESPONSE; +typedef ULONG_PTR HCRYPTPROV_LEGACY; typedef WINBOOL ( WINAPI *PFN_CERT_CREATE_CONTEXT_SORT_FUNC )( DWORD cbTotalEncoded, @@ -4430,9 +4442,15 @@ #ifndef __NCRYPT_KEY_HANDLE__ #define __NCRYPT_KEY_HANDLE__ /*in ncrypt.h too*/ -typedef LPVOID NCRYPT_KEY_HANDLE; +typedef ULONG_PTR NCRYPT_KEY_HANDLE; #endif +#ifndef __HCRYPTPROV_OR_NCRYPT_KEY_HANDLE_DEFINED__ +#define __HCRYPTPROV_OR_NCRYPT_KEY_HANDLE_DEFINED__ +/*Also in cryptxml.h*/ +typedef ULONG_PTR HCRYPTPROV_OR_NCRYPT_KEY_HANDLE; +#endif /*__HCRYPTPROV_OR_NCRYPT_KEY_HANDLE_DEFINED__*/ + typedef struct _CMSG_CNG_CONTENT_DECRYPT_INFO { DWORD cbSize; CRYPT_ALGORITHM_IDENTIFIER ContentEncryptionAlgorithm; @@ -4705,7 +4723,7 @@ POCSP_SIGNATURE_INFO pOptionalSignatureInfo; } OCSP_SIGNED_REQUEST_INFO, *POCSP_SIGNED_REQUEST_INFO; -WINBOOL WINAPI CryptHashCertificate2( +WINCRYPT32API WINBOOL WINAPI CryptHashCertificate2( LPCWSTR pwszCNGHashAlgid, DWORD dwFlags, void *pvReserved, @@ -4715,7 +4733,7 @@ DWORD *pcbComputedHash ); -WINBOOL WINAPI CryptImportPublicKeyInfoEx2( +WINCRYPT32API WINBOOL WINAPI CryptImportPublicKeyInfoEx2( DWORD dwCertEncodingType, PCERT_PUBLIC_KEY_INFO pInfo, DWORD dwFlags, @@ -4723,7 +4741,7 @@ BCRYPT_KEY_HANDLE *phKey ); -WINBOOL WINAPI CryptUpdateProtectedState( +WINCRYPT32API WINBOOL WINAPI CryptUpdateProtectedState( PSID pOldSid, LPCWSTR pwszOldPassword, DWORD dwFlags, @@ -4733,6 +4751,181 @@ #endif /*(_WIN32_WINNT >= 0x0600)*/ +#if (_WIN32_WINNT >= 0x0601) +#define CERT_BUNDLE_CERTIFICATE 0 +#define CERT_BUNDLE_CRL 1 + +typedef struct _CERT_OR_CRL_BLOB { + DWORD dwChoice; + DWORD cbEncoded; + BYTE *pbEncoded; +} CERT_OR_CRL_BLOB, *PCERT_OR_CRL_BLOB; + +typedef struct _CERT_OR_CRL_BUNDLE { + DWORD cItem; + PCERT_OR_CRL_BLOB rgItem; +} CERT_OR_CRL_BUNDLE, *PCERT_OR_CRL_BUNDLE; + +typedef struct _CERT_SELECT_CHAIN_PARA { + HCERTCHAINENGINE hChainEngine; + PFILETIME pTime; + HCERTSTORE hAdditionalStore; + PCERT_CHAIN_PARA pChainPara; + DWORD dwFlags; +} CERT_SELECT_CHAIN_PARA, *PCERT_SELECT_CHAIN_PARA; +typedef const CERT_SELECT_CHAIN_PARA *PCCERT_SELECT_CHAIN_PARA; + +#define CERT_CHAIN_REVOCATION_CHECK_CACHE_ONLY 0x00000004 +#define CERT_CHAIN_REVOCATION_CHECK_CACHE_ONLY 0x80000000 + +typedef struct _CERT_SELECT_CRITERIA { + DWORD dwType; + DWORD cPara; + void **ppPara; +} CERT_SELECT_CRITERIA, *PCERT_SELECT_CRITERIA; +typedef const CERT_SELECT_CRITERIA *PCCERT_SELECT_CRITERIA; + +#define CERT_SELECT_BY_ENHKEY_USAGE 1 +#define CERT_SELECT_BY_KEY_USAGE 2 +#define CERT_SELECT_BY_POLICY_OID 3 +#define CERT_SELECT_BY_PROV_NAME 4 +#define CERT_SELECT_BY_EXTENSION 5 +#define CERT_SELECT_BY_SUBJECT_HOST_NAME 6 +#define CERT_SELECT_BY_ISSUER_ATTR 7 +#define CERT_SELECT_BY_SUBJECT_ATTR 8 +#define CERT_SELECT_BY_ISSUER_NAME 9 +#define CERT_SELECT_BY_PUBLIC_KEY 10 +#define CERT_SELECT_BY_TLS_SIGNATURES 11 + +typedef struct _CRYPT_TIMESTAMP_ACCURACY { + DWORD dwSeconds; + DWORD dwMillis; + DWORD dwMicros; +} CRYPT_TIMESTAMP_ACCURACY, *PCRYPT_TIMESTAMP_ACCURACY; + +typedef struct _CRYPT_TIMESTAMP_REQUEST { + DWORD dwVersion; + CRYPT_ALGORITHM_IDENTIFIER HashAlgorithm; + CRYPT_DER_BLOB HashedMessage; + LPSTR pszTSAPolicyId; + CRYPT_INTEGER_BLOB Nonce; + WINBOOL fCertReq; + DWORD cExtension; + PCERT_EXTENSION rgExtension; +} CRYPT_TIMESTAMP_REQUEST, *PCRYPT_TIMESTAMP_REQUEST; + +typedef struct _CRYPT_TIMESTAMP_INFO { + DWORD dwVersion; + LPSTR pszTSAPolicyId; + CRYPT_ALGORITHM_IDENTIFIER HashAlgorithm; + CRYPT_DER_BLOB HashedMessage; + CRYPT_INTEGER_BLOB SerialNumber; + FILETIME ftTime; + PCRYPT_TIMESTAMP_ACCURACY pvAccuracy; + WINBOOL fOrdering; + CRYPT_DER_BLOB Nonce; + CRYPT_DER_BLOB Tsa; + DWORD cExtension; + PCERT_EXTENSION rgExtension; +} CRYPT_TIMESTAMP_INFO, *PCRYPT_TIMESTAMP_INFO; + +typedef struct _CRYPT_TIMESTAMP_PARA { + LPCSTR pszTSAPolicyId; + WINBOOL fRequestCerts; + CRYPT_INTEGER_BLOB Nonce; + DWORD cExtension; + PCERT_EXTENSION rgExtension; +} CRYPT_TIMESTAMP_PARA, *PCRYPT_TIMESTAMP_PARA; + +#define TIMESTAMP_VERSION 1 + +typedef struct _CRYPT_TIMESTAMP_CONTEXT { + DWORD cbEncoded; + BYTE *pbEncoded; + PCRYPT_TIMESTAMP_INFO pTimeStamp; +} CRYPT_TIMESTAMP_CONTEXT, *PCRYPT_TIMESTAMP_CONTEXT; + +typedef struct _CRYPT_TIMESTAMP_RESPONSE { + DWORD dwStatus; + DWORD cFreeText; + LPWSTR rgFreeText; + CRYPT_BIT_BLOB FailureInfo; + CRYPT_DER_BLOB ContentInfo; +} CRYPT_TIMESTAMP_RESPONSE, *PCRYPT_TIMESTAMP_RESPONSE; + +#define TIMESTAMP_STATUS_GRANTED 0 +#define TIMESTAMP_STATUS_GRANTED_WITH_MODS 1 +#define TIMESTAMP_STATUS_REJECTED 2 +#define TIMESTAMP_STATUS_WAITING 3 +#define TIMESTAMP_STATUS_REVOCATION_WARNING 4 +#define TIMESTAMP_STATUS_REVOKED 5 + +#define TIMESTAMP_FAILURE_BAD_ALG 0 +#define TIMESTAMP_FAILURE_BAD_REQUEST 2 +#define TIMESTAMP_FAILURE_BAD_FORMAT 5 +#define TIMESTAMP_FAILURE_TIME_NOT_AVAILABLE 14 +#define TIMESTAMP_FAILURE_POLICY_NOT_SUPPORTED 15 +#define TIMESTAMP_FAILURE_EXTENSION_NOT_SUPPORTED 16 +#define TIMESTAMP_FAILURE_INFO_NOT_AVAILABLE 17 +#define TIMESTAMP_FAILURE_SYSTEM_FAILURE 25 + +WINCRYPT32API VOID WINAPI CertFreeCertificateChainList( + PCCERT_CHAIN_CONTEXT *prgpSelection +); + +WINCRYPT32API WINBOOL WINAPI CertSelectCertificateChains( + LPCGUID pSelectionContext, + DWORD dwFlags, + PCCERT_SELECT_CHAIN_PARA pChainParameters, + cCriteria DWORD, + PCCERT_SELECT_CRITERIA rgpCriteria, + HCERTSTORE hStore, + PDWORD pcSelection, + PCCERT_CHAIN_CONTEXT **pprgpSelection +); + +WINCRYPT32API WINBOOL WINAPI CryptExportPublicKeyInfoFromBCryptKeyHandle( + BCRYPT_KEY_HANDLE hBCryptKey, + DWORD dwCertEncodingType, + LPSTR pszPublicKeyObjId, + DWORD dwFlags, + void pvAuxInfo, + PCERT_PUBLIC_KEY_INFO pInfo, + DWORD pcbInfo +); + +#define CRYPT_OID_INFO_PUBKEY_ENCRYPT_KEY_FLAG 0x40000000 +#define CRYPT_OID_INFO_PUBKEY_SIGN_KEY_FLAG 0x80000000 + +WINCRYPT32API WINBOOL WINAPI CryptRetrieveTimeStamp( + LPCWSTR wszUrl, + DWORD dwRetrievalFlags, + DWORD dwTimeout, + LPCSTR pszHashId, + const CRYPT_TIMESTAMP_PARA *pPara, + const BYTE *pbData, + DWORD cbData, + PCRYPT_TIMESTAMP_CONTEXT *ppTsContext, + PCCERT_CONTEXT *ppTsSigner, + HCERTSTORE phStore +); + +#define TIMESTAMP_DONT_HASH_DATA 0x00000001 +#define TIMESTAMP_VERIFY_CONTEXT_SIGNATURE 0x00000020 +#define TIMESTAMP_NO_AUTH_RETRIEVAL 0x00020000 + +WINCRYPT32API WINBOOL WINAPI CryptVerifyTimeStampSignature( + const BYTE pbTSContentInfo, + DWORD cbTSContentInfo, + const DWORD pbData, + DWORD cbData, + HCERTSTORE hAdditionalStore, + PCRYPT_TIMESTAMP_CONTEXT ppTsContext, + PCCERT_CONTEXT *ppTsSigner, + HCERTSTORE *phStore +); +#endif /*(_WIN32_WINNT >= 0x0601)*/ + #ifdef __cplusplus } #endif