diff --git a/dlls/wintrust/wintrust.spec b/dlls/wintrust/wintrust.spec index 0627711f5fb..53a246882cd 100644 --- a/dlls/wintrust/wintrust.spec +++ b/dlls/wintrust/wintrust.spec @@ -50,7 +50,7 @@ @ stdcall GenericChainFinalProv(ptr) @ stdcall HTTPSCertificateTrust(ptr) @ stdcall HTTPSFinalProv(ptr) -@ stub IsCatalogFile +@ stdcall IsCatalogFile(ptr wstr) @ stub MsCatConstructHashTag @ stub MsCatFreeHashTag @ stub OfficeCleanupPolicy diff --git a/dlls/wintrust/wintrust_main.c b/dlls/wintrust/wintrust_main.c index 1c87b6ee07f..302b2bd4283 100644 --- a/dlls/wintrust/wintrust_main.c +++ b/dlls/wintrust/wintrust_main.c @@ -1201,3 +1201,18 @@ HRESULT WINAPI WTHelperCertCheckValidSignature(CRYPT_PROVIDER_DATA *pProvData) FIXME("Stub\n"); return S_OK; } + +/*********************************************************************** + * IsCatalogFile + */ +BOOL WINAPI IsCatalogFile(HANDLE hFile, WCHAR *pwszFileName) +{ + static const GUID catGUID = { 0xDE351A43, 0x8E59, 0x11D0, { 0x8C,0x47,0x00,0xC0,0x4F,0xC2,0x95,0xEE }}; + GUID guid; + + TRACE("(%p, %s)\n", hFile, debugstr_w(pwszFileName)); + + if (!CryptSIPRetrieveSubjectGuid(pwszFileName, hFile, &guid)) + return FALSE; + return IsEqualGUID(&guid, &catGUID); +}