From: Alistair Leslie-Hughes Subject: [PATCH] crypt32/tests: Add CryptBinaryToStringW test Message-Id: Date: Fri, 23 Feb 2018 03:36:51 +0000 Signed-off-by: Alistair Leslie-Hughes --- dlls/crypt32/tests/base64.c | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/dlls/crypt32/tests/base64.c b/dlls/crypt32/tests/base64.c index 2e7e488..5329c6d 100644 --- a/dlls/crypt32/tests/base64.c +++ b/dlls/crypt32/tests/base64.c @@ -25,6 +25,7 @@ #include #include +#include "wine/heap.h" #include "wine/test.h" #define CERT_HEADER "-----BEGIN CERTIFICATE-----\r\n" @@ -47,6 +48,8 @@ static BOOL (WINAPI *pCryptBinaryToStringA)(const BYTE *pbBinary, static BOOL (WINAPI *pCryptStringToBinaryA)(LPCSTR pszString, DWORD cchString, DWORD dwFlags, BYTE *pbBinary, DWORD *pcbBinary, DWORD *pdwSkip, DWORD *pdwFlags); +static BOOL (WINAPI *pCryptBinaryToStringW)(const BYTE *pbBinary, + DWORD cbBinary, DWORD dwFlags, LPWSTR pszString, DWORD *pcchString); static BOOL (WINAPI *pCryptStringToBinaryW)(LPCWSTR pszString, DWORD cchString, DWORD dwFlags, BYTE *pbBinary, DWORD *pcbBinary, DWORD *pdwSkip, DWORD *pdwFlags); @@ -552,12 +555,34 @@ static void testStringToBinaryA(void) } } +static void testBinaryToStringW(void) +{ + BYTE *data; + int size = 16656; + DWORD out = 0; + BOOL ret; + + if (!pCryptBinaryToStringW) + { + win_skip("CryptBinaryToStringW is not available\n"); + return; + } + + data = heap_alloc_zero(size); + ret = pCryptBinaryToStringW(data, size, CRYPT_STRING_BASE64, NULL, &out); + ok(ret, "CryptBinaryToStringW failed: %d\n", GetLastError()); + todo_wine ok(out == 22903, "return size returned: %d\n", out); + + heap_free(data); +} + START_TEST(base64) { HMODULE lib = GetModuleHandleA("crypt32"); pCryptBinaryToStringA = (void *)GetProcAddress(lib, "CryptBinaryToStringA"); pCryptStringToBinaryA = (void *)GetProcAddress(lib, "CryptStringToBinaryA"); + pCryptBinaryToStringW = (void *)GetProcAddress(lib, "CryptBinaryToStringW"); pCryptStringToBinaryW = (void *)GetProcAddress(lib, "CryptStringToBinaryW"); if (pCryptBinaryToStringA) @@ -569,4 +594,6 @@ START_TEST(base64) testStringToBinaryA(); else win_skip("CryptStringToBinaryA is not available\n"); + + testBinaryToStringW(); } -- 1.9.1