Christian Inci : crypt32: Fix a string test.
Alexandre Julliard
julliard at winehq.org
Mon Apr 11 13:29:31 CDT 2011
Module: wine
Branch: master
Commit: a0207c88a7668e07b2b69ce951393422209e59fb
URL: http://source.winehq.org/git/wine.git/?a=commit;h=a0207c88a7668e07b2b69ce951393422209e59fb
Author: Christian Inci <chris.pcguy.inci at gmail.com>
Date: Sat Apr 9 21:34:47 2011 +0200
crypt32: Fix a string test.
---
dlls/crypt32/str.c | 5 ++++-
dlls/crypt32/tests/str.c | 30 +++++++++++++++++++++++++++++-
2 files changed, 33 insertions(+), 2 deletions(-)
diff --git a/dlls/crypt32/str.c b/dlls/crypt32/str.c
index ae90eb0..24f7c55 100644
--- a/dlls/crypt32/str.c
+++ b/dlls/crypt32/str.c
@@ -1074,7 +1074,8 @@ BOOL WINAPI CertStrToNameW(DWORD dwCertEncodingType, LPCWSTR pszX500,
static const WCHAR commaSep[] = { ',',0 };
static const WCHAR semiSep[] = { ';',0 };
static const WCHAR crlfSep[] = { '\r','\n',0 };
- static const WCHAR allSeps[] = { ',',';','\r','\n',0 };
+ static const WCHAR allSepsWithoutPlus[] = { ',',';','\r','\n',0 };
+ static const WCHAR allSeps[] = { '+',',',';','\r','\n',0 };
LPCWSTR sep;
str++;
@@ -1084,6 +1085,8 @@ BOOL WINAPI CertStrToNameW(DWORD dwCertEncodingType, LPCWSTR pszX500,
sep = semiSep;
else if (dwStrType & CERT_NAME_STR_CRLF_FLAG)
sep = crlfSep;
+ else if (dwStrType & CERT_NAME_STR_NO_PLUS_FLAG)
+ sep = allSepsWithoutPlus;
else
sep = allSeps;
ret = CRYPT_GetNextValueW(str, dwStrType, sep, &token,
diff --git a/dlls/crypt32/tests/str.c b/dlls/crypt32/tests/str.c
index 1846ec6..4d69e5c 100644
--- a/dlls/crypt32/tests/str.c
+++ b/dlls/crypt32/tests/str.c
@@ -800,8 +800,36 @@ static void test_CertStrToNameA(void)
"Expected CRYPT_E_INVALID_X500_STRING, got %08x\n", GetLastError());
ret = pCertStrToNameA(X509_ASN_ENCODING, "CN=1+2", 0, NULL, buf,
&size, NULL);
- todo_wine ok(!ret && GetLastError() == CRYPT_E_INVALID_X500_STRING,
+ ok(!ret && GetLastError() == CRYPT_E_INVALID_X500_STRING,
"Expected CRYPT_E_INVALID_X500_STRING, got %08x\n", GetLastError());
+ ret = pCertStrToNameA(X509_ASN_ENCODING, "CN=1+2", CERT_NAME_STR_NO_PLUS_FLAG, NULL, buf,
+ &size, NULL);
+ ok(ret && GetLastError() == ERROR_SUCCESS,
+ "Expected ERROR_SUCCESS, got %08x\n", GetLastError());
+ ret = pCertStrToNameA(X509_ASN_ENCODING, "CN=1,2", CERT_NAME_STR_NO_QUOTING_FLAG, NULL, buf,
+ &size, NULL);
+ ok(!ret && GetLastError() == CRYPT_E_INVALID_X500_STRING,
+ "Expected CRYPT_E_INVALID_X500_STRING, got %08x\n", GetLastError());
+ ret = pCertStrToNameA(X509_ASN_ENCODING, "CN=\"1,2;3,4\"", CERT_NAME_STR_NO_QUOTING_FLAG, NULL, buf,
+ &size, NULL);
+ ok(!ret && GetLastError() == CRYPT_E_INVALID_X500_STRING,
+ "Expected CRYPT_E_INVALID_X500_STRING, got %08x\n", GetLastError());
+ ret = pCertStrToNameA(X509_ASN_ENCODING, "CN=abc", 0, NULL, buf,
+ &size, NULL);
+ ok(ret && GetLastError() == ERROR_SUCCESS,
+ "Expected ERROR_SUCCESS, got %08x\n", GetLastError());
+ ret = pCertStrToNameA(X509_ASN_ENCODING, "CN=abc", CERT_NAME_STR_NO_QUOTING_FLAG, NULL, buf,
+ &size, NULL);
+ ok(ret && GetLastError() == ERROR_SUCCESS,
+ "Expected ERROR_SUCCESS, got %08x\n", GetLastError());
+ ret = pCertStrToNameA(X509_ASN_ENCODING, "CN=\"abc\"", 0, NULL, buf,
+ &size, NULL);
+ ok(ret && GetLastError() == ERROR_SUCCESS,
+ "Expected ERROR_SUCCESS, got %08x\n", GetLastError());
+ ret = pCertStrToNameA(X509_ASN_ENCODING, "CN=\"abc\"", CERT_NAME_STR_NO_QUOTING_FLAG, NULL, buf,
+ &size, NULL);
+ todo_wine ok(!ret && GetLastError() == ERROR_MORE_DATA,
+ "Expected ERROR_MORE_DATA, got %08x\n", GetLastError());
for (i = 0; i < sizeof(namesA) / sizeof(namesA[0]); i++)
{
size = sizeof(buf);
More information about the wine-cvs
mailing list