"Kees Cook" kees@outflux.net wrote:
diff -u -p -u -p -r1.19 crypt32.spec --- dlls/crypt32/crypt32.spec 10 Nov 2004 01:31:50 -0000 1.19 +++ dlls/crypt32/crypt32.spec 6 Apr 2005 05:52:55 -0000 @@ -133,6 +133,7 @@ @ stub CryptMsgUpdate @ stub CryptMsgVerifyCountersignatureEncoded @ stdcall CryptProtectData(ptr wstr ptr ptr ptr long ptr) +@ stdcall CryptUnprotectData(ptr ptr ptr ptr ptr long ptr) @ stdcall CryptRegisterDefaultOIDFunction(long str long wstr) @ stdcall CryptRegisterOIDFunction(long str str wstr str) @ stub CryptRegisterOIDInfo @@ -149,7 +150,6 @@ @ stub CryptSignHashU @ stub CryptSignMessage @ stub CryptSignMessageWithKey -@ stub CryptUnprotectData @ stub CryptUnregisterDefaultOIDFunction @ stub CryptUnregisterOIDFunction @ stub CryptUnregisterOIDInfo
It's better to keep alphabetical order of .spec file entries.
+#include "config.h" +#include <stdarg.h> +#include <stdio.h> +#include <string.h>
+#include "windef.h" +#include "winbase.h" +#include "wincrypt.h" +#include "winreg.h" +#include "winnls.h" +#include "mssip.h" +#include "wine/debug.h"
+WINE_DEFAULT_DEBUG_CHANNEL(crypt);
if you are not going to conditionally include headers using '#ifdef HAVE_xxx' there is no need to include config.h.
r = RegCreateKeyExW(hkeyMap, wszIndexKey, 0, NULL, REG_OPTION_NON_VOLATILE, KEY_ALL_ACCESS, NULL, &hkeyOpen,
&dwDisposition);
if (r != ERROR_SUCCESS)
continue;
if (dwDisposition == REG_OPENED_EXISTING_KEY)
{
/* already exists, skip */
CloseHandle(hkeyOpen);
Registry keys should be closed by RegCloseKey, not CloseHandle (here and everywhere else).
- entropy.pbData=(void*)key;
- entropy.cbData=strlen(key)+1;
- protected = CryptProtectData(NULL,desc,NULL,NULL,NULL,0,&cipher);
- ok(!protected, "Encrypting without plain data source.\n");
- r = GetLastError();
- ok2(r == ERROR_INVALID_PARAMETER, "Wrong (%lu) GetLastError seen\n",r);
If you are going to test last error value after an API call it's a usual practice to set the error first to some invalid value, 0xdeadbeef works fine.
-- Dmitry.