diff --git a/dlls/crypt32/crypt32.spec b/dlls/crypt32/crypt32.spec index bae473c01af..12e1223ab87 100644 --- a/dlls/crypt32/crypt32.spec +++ b/dlls/crypt32/crypt32.spec @@ -122,7 +122,7 @@ @ stub CryptGetAsyncParam @ stdcall CryptGetDefaultOIDDllList(long long ptr ptr) @ stdcall CryptGetDefaultOIDFunctionAddress(long long wstr long ptr ptr) -@ stub CryptGetMessageCertificates +@ stdcall CryptGetMessageCertificates(long ptr long ptr long) @ stub CryptGetMessageSignerCount @ stdcall CryptGetOIDFunctionAddress(long long str long ptr ptr) @ stdcall CryptGetOIDFunctionValue(long str str wstr ptr ptr ptr) diff --git a/dlls/crypt32/msg.c b/dlls/crypt32/msg.c index c9226addb73..97c6b4e0c5d 100644 --- a/dlls/crypt32/msg.c +++ b/dlls/crypt32/msg.c @@ -2273,3 +2273,16 @@ BOOL WINAPI CryptMsgControl(HCRYPTMSG hCryptMsg, DWORD dwFlags, pvCtrlPara); return msg->control(hCryptMsg, dwFlags, dwCtrlType, pvCtrlPara); } + +HCERTSTORE WINAPI CryptGetMessageCertificates(DWORD dwMsgAndCertEncodingType, + HCRYPTPROV_LEGACY hCryptProv, DWORD dwFlags, const BYTE* pbSignedBlob, + DWORD cbSignedBlob) +{ + CRYPT_DATA_BLOB blob = { cbSignedBlob, (LPBYTE)pbSignedBlob }; + + TRACE("(%08x, %ld, %d08x %p, %d)\n", dwMsgAndCertEncodingType, hCryptProv, + dwFlags, pbSignedBlob, cbSignedBlob); + + return CertOpenStore(CERT_STORE_PROV_PKCS7, dwMsgAndCertEncodingType, + hCryptProv, dwFlags, &blob); +}