Hello, After retrying, I tried the same function arguments that msn messenger 7.5 passes to advapi32. It seems that function _is_ allowed to define the flags CRYPT_NEWKEYSET and CRYPT_VERIFYCONTEXT at the same time.
I tried the same flags for advapi32 crosstest 'crypt' in linux and windows. Linux: $ wine advapi32_crosstest.exe crypt crypt.c:198: Test failed: 0/80090009 windows 2000: Test didn't fail. Patch attached. Note that second parameter must be NULL for this call to succeed. Maarten
diff --git a/dlls/advapi32/tests/crypt.c b/dlls/advapi32/tests/crypt.c index def6c82..d2f53af 100644 --- a/dlls/advapi32/tests/crypt.c +++ b/dlls/advapi32/tests/crypt.c @@ -193,6 +193,17 @@ static void test_acquire_context(void) if (hProv) pCryptReleaseContext(hProv, 0); + SetLastError(0xdeadbeef); + result = pCryptAcquireContextA(&hProv, NULL, szRsaBaseProv, PROV_RSA_FULL, CRYPT_NEWKEYSET|CRYPT_VERIFYCONTEXT); + GLE = GetLastError(); + ok(result && (GLE == ERROR_ENVVAR_NOT_FOUND || + GLE == ERROR_SUCCESS || + GLE == ERROR_RING2_STACK_IN_USE || + GLE == NTE_FAIL || + GLE == ERROR_NOT_LOGGED_ON), "%d/%08x\n", result, GLE); + if (hProv) + pCryptReleaseContext(hProv, 0); + /* Try again, witch an empty ("\0") szProvider parameter */ hProv = 0; SetLastError(0xdeadbeef);
signature.asc
Description: OpenPGP digital signature