ReactOS Fundraising Campaign 2012
 
€ 4,410 / € 30,000

Information | Donate

Home | Info | Community | Development | myReactOS | Contact Us

  1. Home
  2. Community
  3. Development
  4. myReactOS
  5. Fundraiser 2012

  1. Main Page
  2. Alphabetical List
  3. Data Structures
  4. Directories
  5. File List
  6. Data Fields
  7. Globals
  8. Related Pages

ReactOS Development > Doxygen

mssip.h
Go to the documentation of this file.
00001 /*
00002  * Copyright (C) 2002 Patrik Stridvall
00003  *
00004  * This library is free software; you can redistribute it and/or
00005  * modify it under the terms of the GNU Lesser General Public
00006  * License as published by the Free Software Foundation; either
00007  * version 2.1 of the License, or (at your option) any later version.
00008  *
00009  * This library is distributed in the hope that it will be useful,
00010  * but WITHOUT ANY WARRANTY; without even the implied warranty of
00011  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
00012  * Lesser General Public License for more details.
00013  *
00014  * You should have received a copy of the GNU Lesser General Public
00015  * License along with this library; if not, write to the Free Software
00016  * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
00017  */
00018 
00019 #ifndef __WINE_MSSIP_H
00020 #define __WINE_MSSIP_H
00021 
00022 #ifdef __cplusplus
00023 extern "C" {
00024 #endif /* defined(__cplusplus) */
00025 
00026 /**********************************************************************/
00027 
00028 typedef CRYPT_HASH_BLOB CRYPT_DIGEST_DATA;
00029 
00030 /**********************************************************************/
00031 
00032 #define MSSIP_FLAGS_PROHIBIT_RESIZE_ON_CREATE 0x00010000
00033 #define MSSIP_FLAGS_USE_CATALOG               0x00020000
00034 
00035 #define SPC_INC_PE_RESOURCES_FLAG         0x80
00036 #define SPC_INC_PE_DEBUG_INFO_FLAG        0x40
00037 #define SPC_INC_PE_IMPORT_ADDR_TABLE_FLAG 0x20
00038 
00039 #define MSSIP_ADDINFO_NONE      0
00040 #define MSSIP_ADDINFO_FLAT      1
00041 #define MSSIP_ADDINFO_CATMEMBER 2
00042 #define MSSIP_ADDINFO_BLOB      3
00043 #define MSSIP_ADDINFO_NONMSSIP  500
00044 
00045 #define SIP_MAX_MAGIC_NUMBER 4
00046 
00047 /**********************************************************************/
00048 
00049 #include <pshpack8.h>
00050 typedef struct SIP_SUBJECTINFO_ {
00051     DWORD cbSize;
00052     GUID *pgSubjectType;
00053     HANDLE hFile;
00054     LPCWSTR pwsFileName;
00055     LPCWSTR pwsDisplayName;
00056 
00057     DWORD dwReserved1;
00058     DWORD dwIntVersion;
00059 
00060     HCRYPTPROV hProv;
00061     CRYPT_ALGORITHM_IDENTIFIER DigestAlgorithm;
00062     DWORD dwFlags;
00063     DWORD dwEncodingType;
00064     DWORD dwReserved2;
00065     DWORD fdwCAPISettings;
00066     DWORD fdwSecuritySettings;
00067     DWORD dwIndex;
00068 
00069     DWORD dwUnionChoice;
00070     union {
00071       struct MS_ADDINFO_FLAT_          *psFlat;
00072       struct MS_ADDINFO_CATALOGMEMBER_ *psCatMember;
00073       struct MS_ADDINFO_BLOB_          *psBlob;
00074     } DUMMYUNIONNAME;
00075 
00076     LPVOID pClientData;
00077 } SIP_SUBJECTINFO, *LPSIP_SUBJECTINFO;
00078 #include <poppack.h>
00079 
00080 #include <pshpack8.h>
00081 typedef struct MS_ADDINFO_FLAT_ {
00082   DWORD cbStruct;
00083 
00084   struct SIP_INDIRECT_DATA_ *pIndirectData;
00085 } MS_ADDINFO_FLAT, *PMS_ADDINFO_FLAT;
00086 #include <poppack.h>
00087 
00088 #include <pshpack8.h>
00089 typedef struct MS_ADDINFO_CATALOGMEMBER_ {
00090   DWORD cbStruct;
00091 
00092   struct CRYPTCATSTORE_  *pStore;
00093   struct CRYPTCATMEMBER_ *pMember;
00094 } MS_ADDINFO_CATALOGMEMBER, *PMS_ADDINFO_CATALOGMEMBER;
00095 #include <poppack.h>
00096 
00097 #include <pshpack8.h>
00098 typedef struct MS_ADDINFO_BLOB_ {
00099   DWORD cbStruct;
00100 
00101   DWORD cbMemObject;
00102   BYTE *pbMemObject;
00103 
00104   DWORD cbMemSignedMsg;
00105   BYTE *pbMemSignedMsg;
00106 } MS_ADDINFO_BLOB, *PMS_ADDINFO_BLOB;
00107 #include <poppack.h>
00108 
00109 #include <pshpack8.h>
00110 typedef struct SIP_INDIRECT_DATA_ {
00111   CRYPT_ATTRIBUTE_TYPE_VALUE Data;
00112   CRYPT_ALGORITHM_IDENTIFIER DigestAlgorithm;
00113   CRYPT_HASH_BLOB            Digest;
00114 } SIP_INDIRECT_DATA, *PSIP_INDIRECT_DATA;
00115 #include <poppack.h>
00116 
00117 typedef BOOL (WINAPI * pCryptSIPGetSignedDataMsg)(SIP_SUBJECTINFO *,DWORD *,DWORD,DWORD *,BYTE *);
00118 typedef BOOL (WINAPI * pCryptSIPPutSignedDataMsg)(SIP_SUBJECTINFO *,DWORD,DWORD *,DWORD,BYTE *);
00119 typedef BOOL (WINAPI * pCryptSIPCreateIndirectData)(SIP_SUBJECTINFO *,DWORD *,SIP_INDIRECT_DATA *);
00120 typedef BOOL (WINAPI * pCryptSIPVerifyIndirectData)(SIP_SUBJECTINFO *,SIP_INDIRECT_DATA *);
00121 typedef BOOL (WINAPI * pCryptSIPRemoveSignedDataMsg)(SIP_SUBJECTINFO *,DWORD);
00122 
00123 #include <pshpack8.h>
00124 typedef struct SIP_DISPATCH_INFO_ {
00125   DWORD cbSize;
00126 
00127   HANDLE hSIP;
00128 
00129   pCryptSIPGetSignedDataMsg    pfGet;
00130   pCryptSIPPutSignedDataMsg    pfPut;
00131   pCryptSIPCreateIndirectData  pfCreate;
00132   pCryptSIPVerifyIndirectData  pfVerify;
00133   pCryptSIPRemoveSignedDataMsg pfRemove;
00134 } SIP_DISPATCH_INFO, *LPSIP_DISPATCH_INFO;
00135 #include <poppack.h>
00136 
00137 typedef BOOL (WINAPI *pfnIsFileSupported)(HANDLE,GUID *);
00138 typedef BOOL (WINAPI *pfnIsFileSupportedName)(WCHAR *,GUID *);
00139 
00140 #include <pshpack8.h>
00141 typedef struct SIP_ADD_NEWPROVIDER_
00142 {
00143   DWORD cbStruct;
00144 
00145   GUID  *pgSubject;
00146 
00147   WCHAR *pwszDLLFileName;
00148   WCHAR *pwszMagicNumber;
00149 
00150   WCHAR *pwszIsFunctionName;
00151 
00152   WCHAR *pwszGetFuncName;
00153   WCHAR *pwszPutFuncName;
00154   WCHAR *pwszCreateFuncName;
00155   WCHAR *pwszVerifyFuncName;
00156   WCHAR *pwszRemoveFuncName;
00157 
00158   WCHAR *pwszIsFunctionNameFmt2;
00159 } SIP_ADD_NEWPROVIDER, *PSIP_ADD_NEWPROVIDER;
00160 #include <poppack.h>
00161 
00162 /**********************************************************************/
00163 
00164 BOOL WINAPI CryptSIPGetSignedDataMsg(SIP_SUBJECTINFO *,DWORD *,DWORD,DWORD *,BYTE *);
00165 BOOL WINAPI CryptSIPPutSignedDataMsg(SIP_SUBJECTINFO *,DWORD,DWORD *,DWORD,BYTE *);
00166 BOOL WINAPI CryptSIPCreateIndirectData(SIP_SUBJECTINFO *,DWORD *,SIP_INDIRECT_DATA *);
00167 BOOL WINAPI CryptSIPVerifyIndirectData(SIP_SUBJECTINFO *,SIP_INDIRECT_DATA *);
00168 BOOL WINAPI CryptSIPRemoveSignedDataMsg(SIP_SUBJECTINFO *,DWORD);
00169 
00170 BOOL WINAPI CryptSIPLoad(const GUID *,DWORD,SIP_DISPATCH_INFO *);
00171 BOOL WINAPI CryptSIPRetrieveSubjectGuid(LPCWSTR,HANDLE,GUID *);
00172 BOOL WINAPI CryptSIPRetrieveSubjectGuidForCatalogFile(LPCWSTR,HANDLE,GUID *);
00173 BOOL WINAPI CryptSIPAddProvider(SIP_ADD_NEWPROVIDER *);
00174 BOOL WINAPI CryptSIPRemoveProvider(GUID *);
00175 
00176 #ifdef __cplusplus
00177 } /* extern "C" */
00178 #endif /* defined(__cplusplus) */
00179 
00180 #endif  /* __WINE_MSSIP_H */

Generated on Fri May 25 2012 04:30:27 for ReactOS by doxygen 1.7.6.1

ReactOS is a registered trademark or a trademark of ReactOS Foundation in the United States and other countries.