On Mon, 2005-07-25 at 16:23, Rein Klazes wrote:
On Thu, 14 Jul 2005 13:37:53 +0200 (CEST), you wrote:
Hi,
currently we return ERROR_SUCCESS for WinVerifyTrust. Process Explorer
expects some data because of this.
As no trust provider is implemented yet, return TRUST_E_PROVIDER_UNKNOWN
instead.
Paul,
Girotel was perfectly happy with the ERROR_SUCCESS without anymore
data (none is actually returned), now it fails.
I think that in this case ERROR_SUCCESS should be the default. If you
cannot figure out what data your program expects, perhaps you can
single out the specific ActionID to return a failure.
Rein.
Hi Rein,
could you try the attached patch. It's a hack and we probably need an
implementation of softpub.h. I just want to make sure Girotel doesn't
use the same ActionID
Does anyone have softpub.h lying around to be included ?
Cheers,
Paul.
Index: dlls/wintrust/wintrust_main.c
===
RCS file: /home/wine/wine/dlls/wintrust/wintrust_main.c,v
retrieving revision 1.12
diff -u -p -r1.12 wintrust_main.c
--- dlls/wintrust/wintrust_main.c 15 Jul 2005 09:54:34 - 1.12
+++ dlls/wintrust/wintrust_main.c 25 Jul 2005 19:25:35 -
@@ -68,16 +68,31 @@ BOOL WINAPI CryptCATAdminReleaseContext(
*/
LONG WINAPI WinVerifyTrust( HWND hwnd, GUID *ActionID, WINTRUST_DATA* ActionData )
{
+static const GUID WINTRUST_ACTION_GENERIC_VERIFY_V2 = { 0xaac56b, 0xcd44, 0x11d0,
+ { 0x8c,0xc2,0x00,0xc0,0x4f,0xc2,0x95,0xee }};
+
FIXME(%p %s %p\n, hwnd, debugstr_guid(ActionID), ActionData);
/* Trust providers can be found at:
* HKLM\SOFTWARE\Microsoft\Cryptography\Providers\Trust\CertCheck\
*
- * As we do not have any trust providers yet (or cater for it),
- * return just that.
+ * Process Explorer expects a correct implementation, so we
+ * return TRUST_E_PROVIDER_UNKNOWN.
+ *
+ * Girotel needs ERROR_SUCCESS.
+ *
+ * For now return TRUST_E_PROVIDER_UNKNOWN only when
+ * ActionID = WINTRUST_ACTION_GENERIC_VERIFY_V2.
+ *
*/
-return TRUST_E_PROVIDER_UNKNOWN;
+if (IsEqualCLSID(ActionID, WINTRUST_ACTION_GENERIC_VERIFY_V2))
+{
+TRACE(ActionID is WINTRUST_ACTION_GENERIC_VERIFY_V2\n);
+return TRUST_E_PROVIDER_UNKNOWN;
+}
+
+return ERROR_SUCCESS;
}
/***