Commit 8f2821ac authored by Juan Lang's avatar Juan Lang Committed by Alexandre Julliard

crypt32: The newline character must also be quoted.

parent 7833f307
...@@ -41,6 +41,7 @@ static inline BOOL is_quotable_char(char c) ...@@ -41,6 +41,7 @@ static inline BOOL is_quotable_char(char c)
case '>': case '>':
case ';': case ';':
case '#': case '#':
case '\n':
return TRUE; return TRUE;
default: default:
return FALSE; return FALSE;
......
...@@ -363,6 +363,9 @@ static BYTE encodedHashCN[] = { ...@@ -363,6 +363,9 @@ static BYTE encodedHashCN[] = {
static BYTE encodedSemiCN[] = { static BYTE encodedSemiCN[] = {
0x30,0x0d,0x31,0x0b,0x30,0x09,0x06,0x03,0x55,0x04,0x03,0x1e,0x02,0x00,0x3b 0x30,0x0d,0x31,0x0b,0x30,0x09,0x06,0x03,0x55,0x04,0x03,0x1e,0x02,0x00,0x3b
}; };
static BYTE encodedNewlineCN[] = {
0x30,0x11,0x31,0x0f,0x30,0x0d,0x06,0x03,0x55,0x04,0x03,0x1e,0x06,0x00,0x61,
0x00,0x0a,0x00,0x62 };
static void test_CertNameToStrA(void) static void test_CertNameToStrA(void)
{ {
...@@ -457,6 +460,9 @@ static void test_CertNameToStrA(void) ...@@ -457,6 +460,9 @@ static void test_CertNameToStrA(void)
blob.pbData = encodedSemiCN; blob.pbData = encodedSemiCN;
blob.cbData = sizeof(encodedSemiCN); blob.cbData = sizeof(encodedSemiCN);
test_NameToStrConversionA(&blob, CERT_X500_NAME_STR, "CN=\";\"", FALSE); test_NameToStrConversionA(&blob, CERT_X500_NAME_STR, "CN=\";\"", FALSE);
blob.pbData = encodedNewlineCN;
blob.cbData = sizeof(encodedNewlineCN);
test_NameToStrConversionA(&blob, CERT_X500_NAME_STR, "CN=\"a\nb\"", FALSE);
} }
static void test_NameToStrConversionW(PCERT_NAME_BLOB pName, DWORD dwStrType, static void test_NameToStrConversionW(PCERT_NAME_BLOB pName, DWORD dwStrType,
...@@ -499,6 +505,7 @@ static const WCHAR lessThanCN_W[] = { 'C','N','=','"','<','"',0 }; ...@@ -499,6 +505,7 @@ static const WCHAR lessThanCN_W[] = { 'C','N','=','"','<','"',0 };
static const WCHAR greaterThanCN_W[] = { 'C','N','=','"','>','"',0 }; static const WCHAR greaterThanCN_W[] = { 'C','N','=','"','>','"',0 };
static const WCHAR hashCN_W[] = { 'C','N','=','"','#','"',0 }; static const WCHAR hashCN_W[] = { 'C','N','=','"','#','"',0 };
static const WCHAR semiCN_W[] = { 'C','N','=','"',';','"',0 }; static const WCHAR semiCN_W[] = { 'C','N','=','"',';','"',0 };
static const WCHAR newlineCN_W[] = { 'C','N','=','"','a','\n','b','"',0 };
static void test_CertNameToStrW(void) static void test_CertNameToStrW(void)
{ {
...@@ -594,6 +601,9 @@ static void test_CertNameToStrW(void) ...@@ -594,6 +601,9 @@ static void test_CertNameToStrW(void)
blob.pbData = encodedSemiCN; blob.pbData = encodedSemiCN;
blob.cbData = sizeof(encodedSemiCN); blob.cbData = sizeof(encodedSemiCN);
test_NameToStrConversionW(&blob, CERT_X500_NAME_STR, semiCN_W, FALSE); test_NameToStrConversionW(&blob, CERT_X500_NAME_STR, semiCN_W, FALSE);
blob.pbData = encodedNewlineCN;
blob.cbData = sizeof(encodedNewlineCN);
test_NameToStrConversionW(&blob, CERT_X500_NAME_STR, newlineCN_W, FALSE);
} }
struct StrToNameA struct StrToNameA
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment