source: Daodan/MSYS2/mingw32/i686-w64-mingw32/include/mssip.h@ 1170

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

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

File size: 4.9 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#ifndef MSSIP_H
7#define MSSIP_H
8
9#ifdef __cplusplus
10extern "C" {
11#endif
12
13#pragma pack (8)
14
15 typedef CRYPT_HASH_BLOB CRYPT_DIGEST_DATA;
16
17#define MSSIP_FLAGS_PROHIBIT_RESIZE_ON_CREATE 0x00010000
18#define MSSIP_FLAGS_USE_CATALOG 0x00020000
19
20#define SPC_INC_PE_RESOURCES_FLAG 0x80
21#define SPC_INC_PE_DEBUG_INFO_FLAG 0x40
22#define SPC_INC_PE_IMPORT_ADDR_TABLE_FLAG 0x20
23
24 typedef struct SIP_SUBJECTINFO_ {
25 DWORD cbSize;
26 GUID *pgSubjectType;
27 HANDLE hFile;
28 LPCWSTR pwsFileName;
29 LPCWSTR pwsDisplayName;
30 DWORD dwReserved1;
31 DWORD dwIntVersion;
32 HCRYPTPROV hProv;
33 CRYPT_ALGORITHM_IDENTIFIER DigestAlgorithm;
34 DWORD dwFlags;
35 DWORD dwEncodingType;
36 DWORD dwReserved2;
37 DWORD fdwCAPISettings;
38 DWORD fdwSecuritySettings;
39 DWORD dwIndex;
40 DWORD dwUnionChoice;
41#define MSSIP_ADDINFO_NONE 0
42#define MSSIP_ADDINFO_FLAT 1
43#define MSSIP_ADDINFO_CATMEMBER 2
44#define MSSIP_ADDINFO_BLOB 3
45#define MSSIP_ADDINFO_NONMSSIP 500
46 __C89_NAMELESS union {
47 struct MS_ADDINFO_FLAT_ *psFlat;
48 struct MS_ADDINFO_CATALOGMEMBER_ *psCatMember;
49 struct MS_ADDINFO_BLOB_ *psBlob;
50 };
51 LPVOID pClientData;
52 } SIP_SUBJECTINFO,*LPSIP_SUBJECTINFO;
53
54 typedef struct MS_ADDINFO_FLAT_ {
55 DWORD cbStruct;
56 struct SIP_INDIRECT_DATA_ *pIndirectData;
57 } MS_ADDINFO_FLAT,*PMS_ADDINFO_FLAT;
58
59 typedef struct MS_ADDINFO_CATALOGMEMBER_ {
60 DWORD cbStruct;
61 struct CRYPTCATSTORE_ *pStore;
62 struct CRYPTCATMEMBER_ *pMember;
63 } MS_ADDINFO_CATALOGMEMBER,*PMS_ADDINFO_CATALOGMEMBER;
64
65 typedef struct MS_ADDINFO_BLOB_ {
66 DWORD cbStruct;
67 DWORD cbMemObject;
68 BYTE *pbMemObject;
69 DWORD cbMemSignedMsg;
70 BYTE *pbMemSignedMsg;
71 } MS_ADDINFO_BLOB,*PMS_ADDINFO_BLOB;
72
73 typedef struct SIP_INDIRECT_DATA_ {
74 CRYPT_ATTRIBUTE_TYPE_VALUE Data;
75 CRYPT_ALGORITHM_IDENTIFIER DigestAlgorithm;
76 CRYPT_HASH_BLOB Digest;
77 } SIP_INDIRECT_DATA,*PSIP_INDIRECT_DATA;
78
79#pragma pack()
80
81 extern WINBOOL WINAPI CryptSIPGetSignedDataMsg(SIP_SUBJECTINFO *pSubjectInfo,DWORD *pdwEncodingType,DWORD dwIndex,DWORD *pcbSignedDataMsg,BYTE *pbSignedDataMsg);
82 typedef WINBOOL (WINAPI *pCryptSIPGetSignedDataMsg)(SIP_SUBJECTINFO *pSubjectInfo,DWORD *pdwEncodingType,DWORD dwIndex,DWORD *pcbSignedDataMsg,BYTE *pbSignedDataMsg);
83 extern WINBOOL WINAPI CryptSIPPutSignedDataMsg(SIP_SUBJECTINFO *pSubjectInfo,DWORD dwEncodingType,DWORD *pdwIndex,DWORD cbSignedDataMsg,BYTE *pbSignedDataMsg);
84 typedef WINBOOL (WINAPI *pCryptSIPPutSignedDataMsg)(SIP_SUBJECTINFO *pSubjectInfo,DWORD dwEncodingType,DWORD *pdwIndex,DWORD cbSignedDataMsg,BYTE *pbSignedDataMsg);
85 extern WINBOOL WINAPI CryptSIPCreateIndirectData(SIP_SUBJECTINFO *pSubjectInfo,DWORD *pcbIndirectData,SIP_INDIRECT_DATA *pIndirectData);
86 typedef WINBOOL (WINAPI *pCryptSIPCreateIndirectData)(SIP_SUBJECTINFO *pSubjectInfo,DWORD *pcbIndirectData,SIP_INDIRECT_DATA *pIndirectData);
87 extern WINBOOL WINAPI CryptSIPVerifyIndirectData(SIP_SUBJECTINFO *pSubjectInfo,SIP_INDIRECT_DATA *pIndirectData);
88 typedef WINBOOL (WINAPI *pCryptSIPVerifyIndirectData)(SIP_SUBJECTINFO *pSubjectInfo,SIP_INDIRECT_DATA *pIndirectData);
89 extern WINBOOL WINAPI CryptSIPRemoveSignedDataMsg(SIP_SUBJECTINFO *pSubjectInfo,DWORD dwIndex);
90 typedef WINBOOL (WINAPI *pCryptSIPRemoveSignedDataMsg)(SIP_SUBJECTINFO *pSubjectInfo,DWORD dwIndex);
91
92#pragma pack(8)
93
94 typedef struct SIP_DISPATCH_INFO_ {
95 DWORD cbSize;
96 HANDLE hSIP;
97 pCryptSIPGetSignedDataMsg pfGet;
98 pCryptSIPPutSignedDataMsg pfPut;
99 pCryptSIPCreateIndirectData pfCreate;
100 pCryptSIPVerifyIndirectData pfVerify;
101 pCryptSIPRemoveSignedDataMsg pfRemove;
102 } SIP_DISPATCH_INFO,*LPSIP_DISPATCH_INFO;
103
104 typedef WINBOOL (WINAPI *pfnIsFileSupported)(HANDLE hFile,GUID *pgSubject);
105 typedef WINBOOL (WINAPI *pfnIsFileSupportedName)(WCHAR *pwszFileName,GUID *pgSubject);
106
107 typedef struct SIP_ADD_NEWPROVIDER_ {
108 DWORD cbStruct;
109 GUID *pgSubject;
110 WCHAR *pwszDLLFileName;
111 WCHAR *pwszMagicNumber;
112 WCHAR *pwszIsFunctionName;
113 WCHAR *pwszGetFuncName;
114 WCHAR *pwszPutFuncName;
115 WCHAR *pwszCreateFuncName;
116 WCHAR *pwszVerifyFuncName;
117 WCHAR *pwszRemoveFuncName;
118 WCHAR *pwszIsFunctionNameFmt2;
119 } SIP_ADD_NEWPROVIDER,*PSIP_ADD_NEWPROVIDER;
120
121#define SIP_MAX_MAGIC_NUMBER 4
122
123#pragma pack()
124
125 extern WINBOOL WINAPI CryptSIPLoad(const GUID *pgSubject,DWORD dwFlags,SIP_DISPATCH_INFO *pSipDispatch);
126 extern WINBOOL WINAPI CryptSIPRetrieveSubjectGuid(LPCWSTR FileName,HANDLE hFileIn,GUID *pgSubject);
127 extern WINBOOL WINAPI CryptSIPRetrieveSubjectGuidForCatalogFile(LPCWSTR FileName,HANDLE hFileIn,GUID *pgSubject);
128 extern WINBOOL WINAPI CryptSIPAddProvider(SIP_ADD_NEWPROVIDER *psNewProv);
129 extern WINBOOL WINAPI CryptSIPRemoveProvider(GUID *pgProv);
130
131#ifdef __cplusplus
132}
133#endif
134#endif
Note: See TracBrowser for help on using the repository browser.