140 lines
3.8 KiB
C
140 lines
3.8 KiB
C
/*
|
|
* Copyright (C) 2004 Francois Gouget
|
|
*
|
|
* This library is free software; you can redistribute it and/or
|
|
* modify it under the terms of the GNU Lesser General Public
|
|
* License as published by the Free Software Foundation; either
|
|
* version 2.1 of the License, or (at your option) any later version.
|
|
*
|
|
* This library is distributed in the hope that it will be useful,
|
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
* Lesser General Public License for more details.
|
|
*
|
|
* You should have received a copy of the GNU Lesser General Public
|
|
* License along with this library; if not, write to the Free Software
|
|
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
|
*/
|
|
|
|
#ifndef __WINE_WINTRUST_H
|
|
#define __WINE_WINTRUST_H
|
|
|
|
#include <wincrypt.h>
|
|
|
|
|
|
#include <pshpack8.h>
|
|
|
|
typedef struct WINTRUST_FILE_INFO_
|
|
{
|
|
DWORD cbStruct;
|
|
LPCWSTR pcwszFilePath;
|
|
HANDLE hFile;
|
|
GUID* pgKnownSubject;
|
|
} WINTRUST_FILE_INFO, *PWINTRUST_FILE_INFO;
|
|
|
|
typedef struct WINTRUST_CATALOG_INFO_
|
|
{
|
|
DWORD cbStruct;
|
|
DWORD dwCatalogVersion;
|
|
LPCWSTR pcwszCatalogFilePath;
|
|
LPCWSTR pcwszMemberTag;
|
|
LPCWSTR pcwszMemberFilePath;
|
|
HANDLE hMemberFile;
|
|
BYTE* pbCalculatedFileHash;
|
|
DWORD cbCalculatedFileHash;
|
|
PCCTL_CONTEXT pcCatalogContext;
|
|
} WINTRUST_CATALOG_INFO, *PWINTRUST_CATALOG_INFO;
|
|
|
|
typedef struct WINTRUST_BLOB_INFO_
|
|
{
|
|
DWORD cbStruct;
|
|
GUID gSubject;
|
|
LPCWSTR pcwszDisplayName;
|
|
DWORD cbMemObject;
|
|
BYTE* pbMemObject;
|
|
DWORD cbMemSignedMsg;
|
|
BYTE* pbMemSignedMsg;
|
|
} WINTRUST_BLOB_INFO, *PWINTRUST_BLOB_INFO;
|
|
|
|
typedef struct WINTRUST_SGNR_INFO_
|
|
{
|
|
DWORD cbStruct;
|
|
LPCWSTR pcwszDisplayName;
|
|
CMSG_SIGNER_INFO* psSignerInfo;
|
|
DWORD chStores;
|
|
HCERTSTORE* pahStores;
|
|
} WINTRUST_SGNR_INFO, *PWINTRUST_SGNR_INFO;
|
|
|
|
typedef struct WINTRUST_CERT_INFO_
|
|
{
|
|
DWORD cbStruct;
|
|
LPCWSTR pcwszDisplayName;
|
|
CERT_CONTEXT* psCertContext;
|
|
DWORD chStores;
|
|
HCERTSTORE* pahStores;
|
|
DWORD dwFlags;
|
|
FILETIME* psftVerifyAsOf;
|
|
} WINTRUST_CERT_INFO, *PWINTRUST_CERT_INFO;
|
|
|
|
|
|
typedef struct _WINTRUST_DATA
|
|
{
|
|
DWORD cbStruct;
|
|
LPVOID pPolicyCallbackData;
|
|
LPVOID pSIPClientData;
|
|
DWORD dwUIChoice;
|
|
DWORD fdwRevocationChecks;
|
|
DWORD dwUnionChoice;
|
|
union
|
|
{
|
|
struct WINTRUST_FILE_INFO_* pFile;
|
|
struct WINTRUST_CATALOG_INFO_* pCatalog;
|
|
struct WINTRUST_BLOB_INFO_* pBlob;
|
|
struct WINTRUST_SGNR_INFO_* pSgnr;
|
|
struct WINTRUST_CERT_INFO_* pCert;
|
|
} DUMMYUNIONNAME;
|
|
|
|
DWORD dwStateAction;
|
|
HANDLE hWVTStateData;
|
|
WCHAR* pwszURLReference;
|
|
DWORD dwProvFlags;
|
|
DWORD dwUIContext;
|
|
} WINTRUST_DATA, *PWINTRUST_DATA;
|
|
|
|
typedef struct _CRYPT_TRUST_REG_ENTRY
|
|
{
|
|
DWORD cbStruct;
|
|
WCHAR *pwszDLLName;
|
|
WCHAR *pwszFunctionName;
|
|
} CRYPT_TRUST_REG_ENTRY, *PCRYPT_TRUST_REG_ENTRY;
|
|
|
|
typedef struct _CRYPT_REGISTER_ACTIONID
|
|
{
|
|
DWORD cbStruct;
|
|
CRYPT_TRUST_REG_ENTRY sInitProvider;
|
|
CRYPT_TRUST_REG_ENTRY sObjectProvider;
|
|
CRYPT_TRUST_REG_ENTRY sSignatureProvider;
|
|
CRYPT_TRUST_REG_ENTRY sCertificateProvider;
|
|
CRYPT_TRUST_REG_ENTRY sCertificatePolicyProvider;
|
|
CRYPT_TRUST_REG_ENTRY sFinalPolicyProvider;
|
|
CRYPT_TRUST_REG_ENTRY sTestPolicyProvider;
|
|
CRYPT_TRUST_REG_ENTRY sCleanupProvider;
|
|
} CRYPT_REGISTER_ACTIONID, *PCRYPT_REGISTER_ACTIONID;
|
|
|
|
#include <poppack.h>
|
|
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
|
|
BOOL WINAPI WintrustAddActionID(GUID*,DWORD,CRYPT_REGISTER_ACTIONID*);
|
|
void WINAPI WintrustGetRegPolicyFlags(DWORD*);
|
|
LONG WINAPI WinVerifyTrust(HWND,GUID*,WINTRUST_DATA*);
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|
|
|
|
#endif
|