37 case DLL_WINE_PREATTACH:
48 { 0xc0,0x00,0x00,0x00,0x00,0x00,0x00,0x46 }};
55 static WCHAR msisip[] = {
'M',
'S',
'I',
'S',
'I',
'P',
'.',
'D',
'L',
'L',0 };
56 static WCHAR getSignedDataMsg[] = {
'M',
's',
'i',
'S',
'I',
'P',
'G',
'e',
't',
57 'S',
'i',
'g',
'n',
'e',
'd',
'D',
'a',
't',
'a',
'M',
's',
'g',0 };
58 static WCHAR putSignedDataMsg[] = {
'M',
's',
'i',
'S',
'I',
'P',
'P',
'u',
't',
59 'S',
'i',
'g',
'n',
'e',
'd',
'D',
'a',
't',
'a',
'M',
's',
'g',0 };
60 static WCHAR createIndirectData[] = {
'M',
's',
'i',
'S',
'I',
'P',
61 'C',
'r',
'e',
'a',
't',
'e',
'I',
'n',
'd',
'i',
'r',
'e',
'c',
't',
'D',
'a',
't',
'a',
63 static WCHAR verifyIndirectData[] = {
'M',
's',
'i',
'S',
'I',
'P',
64 'V',
'e',
'r',
'i',
'f',
'y',
'I',
'n',
'd',
'i',
'r',
'e',
'c',
't',
'D',
'a',
't',
'a',
66 static WCHAR removeSignedDataMsg[] = {
'M',
's',
'i',
'S',
'I',
'P',
'R',
'e',
'm',
67 'o',
'v',
'e',
'S',
'i',
'g',
'n',
'e',
'd',
'D',
'a',
't',
'a',
'M',
's',
'g', 0 };
68 static WCHAR isMyTypeOfFile[] = {
'M',
's',
'i',
'S',
'I',
'P',
69 'I',
's',
'M',
'y',
'T',
'y',
'p',
'e',
'O',
'f',
'F',
'i',
'l',
'e',0 };
73 memset(&prov, 0,
sizeof(prov));
101 BYTE *pbSignedDataMsg)
103 static const WCHAR digitalSig[] = { 5,
'D',
'i',
'g',
'i',
't',
'a',
'l',
104 'S',
'i',
'g',
'n',
'a',
't',
'u',
'r',
'e',0 };
112 TRACE(
"(%p %p %d %p %p)\n", pSubjectInfo, pdwEncodingType, dwIndex,
113 pcbSignedDataMsg, pbSignedDataMsg);
123 r = IStorage_OpenStream(stg, digitalSig, 0,
127 TRACE(
"couldn't find digital signature stream\n");
136 WARN(
"unexpected data in digital sig: 0x%02x%02x\n",
hdr[0],
hdr[1]);
145 WARN(
"indefinite-length encoding not supported!\n");
148 else if (
hdr[1] & 0x80)
153 lenBytes =
hdr[1] & 0x7f;
154 if (lenBytes >
sizeof(
DWORD))
156 WARN(
"asn.1 length too long (%d)\n", lenBytes);
159 r = IStream_Read(stm,
len, lenBytes, &
count);
177 if (!pbSignedDataMsg)
179 *pcbSignedDataMsg = 2 + lenBytes + dataBytes;
182 else if (*pcbSignedDataMsg < 2 + lenBytes + dataBytes)
185 *pcbSignedDataMsg = 2 + lenBytes + dataBytes;
198 r = IStream_Read(stm,
ptr, dataBytes, &
count);
202 *pcbSignedDataMsg = 2 + lenBytes + dataBytes;
208 IStream_Release(stm);
210 IStorage_Release(stg);
217DEFINE_GUID(CLSID_MsiTransform, 0x000c1082,0x0000,0x0000,0xc0,0x00,0x00,0x00,0x00,0x00,0x00,0x46);
218DEFINE_GUID(CLSID_MsiDatabase, 0x000c1084,0x0000,0x0000,0xc0,0x00,0x00,0x00,0x00,0x00,0x00,0x46);
219DEFINE_GUID(CLSID_MsiPatch, 0x000c1086,0x0000,0x0000,0xc0,0x00,0x00,0x00,0x00,0x00,0x00,0x46);
238 r = IStorage_Stat(stg, &
stat, STATFLAG_NONAME);
249 IStorage_Release(stg);
#define WINE_DEFAULT_DEBUG_CHANNEL(t)
#define ERROR_INSUFFICIENT_BUFFER
BOOL WINAPI DllMain(HINSTANCE hInstance, DWORD dwReason, LPVOID lpReserved)
HRESULT WINAPI DllRegisterServer(void)
HRESULT WINAPI DllUnregisterServer(void)
BOOL WINAPI CryptSIPRemoveProvider(GUID *pgProv)
BOOL WINAPI CryptSIPAddProvider(SIP_ADD_NEWPROVIDER *psNewProv)
#define DLL_PROCESS_ATTACH
BOOL WINAPI DisableThreadLibraryCalls(IN HMODULE hLibModule)
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
static IN DWORD IN LPVOID lpvReserved
#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