[PATCH] crypt32/tests: Add CryptBinaryToStringW test

Alistair Leslie-Hughes leslie_alistair at hotmail.com
Thu Feb 22 21:36:51 CST 2018


Signed-off-by: Alistair Leslie-Hughes <leslie_alistair at hotmail.com>
---
 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 <winerror.h>
 #include <wincrypt.h>
 
+#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




More information about the wine-devel mailing list