32 { 0xc0,0x00,0x00,0x00,0x00,0x00,0x00,0x46 }};
39 static WCHAR msisip[] =
L"MSISIP.DLL";
40 static WCHAR getSignedDataMsg[] =
L"MsiSIPGetSignedDataMsg";
41 static WCHAR putSignedDataMsg[] =
L"MsiSIPPutSignedDataMsg";
42 static WCHAR createIndirectData[] =
L"MsiSIPCreateIndirectData";
43 static WCHAR verifyIndirectData[] =
L"MsiSIPVerifyIndirectData";
44 static WCHAR removeSignedDataMsg[] =
L"MsiSIPRemoveSignedDataMsg";
45 static WCHAR isMyTypeOfFile[] =
L"MsiSIPIsMyTypeOfFile";
49 memset(&prov, 0,
sizeof(prov));
77 BYTE *pbSignedDataMsg)
86 TRACE(
"(%p %p %ld %p %p)\n", pSubjectInfo, pdwEncodingType, dwIndex,
87 pcbSignedDataMsg, pbSignedDataMsg);
97 r = IStorage_OpenStream(stg,
L"\5DigitalSignature", 0,
101 TRACE(
"couldn't find digital signature stream\n");
110 WARN(
"unexpected data in digital sig: 0x%02x%02x\n",
hdr[0],
hdr[1]);
119 WARN(
"indefinite-length encoding not supported!\n");
122 else if (
hdr[1] & 0x80)
127 lenBytes =
hdr[1] & 0x7f;
128 if (lenBytes >
sizeof(
DWORD))
130 WARN(
"asn.1 length too long (%ld)\n", lenBytes);
133 r = IStream_Read(stm,
len, lenBytes, &
count);
151 if (!pbSignedDataMsg)
153 *pcbSignedDataMsg = 2 + lenBytes + dataBytes;
156 else if (*pcbSignedDataMsg < 2 + lenBytes + dataBytes)
159 *pcbSignedDataMsg = 2 + lenBytes + dataBytes;
172 r = IStream_Read(stm,
ptr, dataBytes, &
count);
176 *pcbSignedDataMsg = 2 + lenBytes + dataBytes;
182 IStream_Release(stm);
184 IStorage_Release(stg);
191DEFINE_GUID(CLSID_MsiTransform, 0x000c1082,0x0000,0x0000,0xc0,0x00,0x00,0x00,0x00,0x00,0x00,0x46);
192DEFINE_GUID(CLSID_MsiDatabase, 0x000c1084,0x0000,0x0000,0xc0,0x00,0x00,0x00,0x00,0x00,0x00,0x46);
193DEFINE_GUID(CLSID_MsiPatch, 0x000c1086,0x0000,0x0000,0xc0,0x00,0x00,0x00,0x00,0x00,0x00,0x46);
212 r = IStorage_Stat(stg, &
stat, STATFLAG_NONAME);
223 IStorage_Release(stg);
#define WINE_DEFAULT_DEBUG_CHANNEL(t)
#define ERROR_INSUFFICIENT_BUFFER
HRESULT WINAPI DllRegisterServer(void)
HRESULT WINAPI DllUnregisterServer(void)
BOOL WINAPI CryptSIPRemoveProvider(GUID *pgProv)
BOOL WINAPI CryptSIPAddProvider(SIP_ADD_NEWPROVIDER *psNewProv)
BOOL WINAPI MsiSIPIsMyTypeOfFile(WCHAR *name, GUID *subject)
BOOL WINAPI MsiSIPGetSignedDataMsg(SIP_SUBJECTINFO *pSubjectInfo, DWORD *pdwEncodingType, DWORD dwIndex, DWORD *pcbSignedDataMsg, BYTE *pbSignedDataMsg)
HRESULT WINAPI StgOpenStorage(const OLECHAR *pwcsName, IStorage *pstgPriority, DWORD grfMode, SNB snbExclude, DWORD reserved, IStorage **ppstgOpen)
GLuint GLuint GLsizei count
GLdouble GLdouble GLdouble r
#define memcpy(s1, s2, n)
#define STGM_SHARE_EXCLUSIVE
#define STGM_SHARE_DENY_WRITE
#define DEFINE_GUID(name, l, w1, w2, b1, b2, b3, b4, b5, b6, b7, b8)
#define IsEqualGUID(rguid1, rguid2)
WCHAR * pwszCreateFuncName
WCHAR * pwszGetCapFuncName
WCHAR * pwszRemoveFuncName
WCHAR * pwszIsFunctionNameFmt2
WCHAR * pwszVerifyFuncName
#define X509_ASN_ENCODING
#define PKCS_7_ASN_ENCODING