diff --git a/dlls/crypt32/tests/str.c b/dlls/crypt32/tests/str.c index 8dbc60f..dced386 100644 --- a/dlls/crypt32/tests/str.c +++ b/dlls/crypt32/tests/str.c @@ -59,6 +59,15 @@ static BYTE bin8[] = { 0x66,0x00,0x69,0x00,0x63,0x00,0x61,0x00,0x74,0x00,0x69,0x00,0x6f,0x00,0x6e, 0x00,0x20,0x00,0x41,0x00,0x75,0x00,0x74,0x00,0x68,0x00,0x6f,0x00,0x72,0x00, 0x69,0x00,0x74,0x00,0x79,0x00 }; +static BYTE bin9[] = { 0x61, 0x62, 0x63, 0x22, 0x64, 0x65, 0x66 }; +static BYTE bin10[] = { 0x61, 0x62, 0x63, 0x27, 0x64, 0x65, 0x66 }; +static BYTE bin11[] = { 0x61, 0x62, 0x63, 0x2c, 0x20, 0x64, 0x65, 0x66 }; +static BYTE bin12[] = { 0x20, 0x61, 0x62, 0x63, 0x20 }; +static BYTE bin13[] = { 0x22, 0x64, 0x65, 0x66, 0x22 }; +static BYTE bin14[] = { 0x31, 0x3b, 0x33 }; +static BYTE bin15[] = { 0x34, 0x2c, 0x37 }; +static BYTE bin16[] = { 0x20, 0x31, 0x20 }; +static BYTE bin17[] = { 0x22, 0x31, 0x22 }; static const BYTE cert[] = {0x30,0x82,0x2,0xbb,0x30,0x82,0x2,0x24,0x2,0x9,0x0,0xe3,0x5a,0x10,0xf1,0xfc, @@ -218,6 +227,24 @@ static void test_CertRDNValueToStrA(void) { sizeof(bin6), bin6 }, "localhost" }, { "1.2.840.113549.1.9.1", CERT_RDN_IA5_STRING, { sizeof(bin7), bin7 }, "aric@codeweavers.com" }, + { "0", CERT_RDN_PRINTABLE_STRING, + { sizeof(bin9), bin9 }, "abc\"def" }, + { "0", CERT_RDN_PRINTABLE_STRING, + { sizeof(bin10), bin10 }, "abc'def" }, + { "0", CERT_RDN_PRINTABLE_STRING, + { sizeof(bin11), bin11 }, "abc, def" }, + { "0", CERT_RDN_PRINTABLE_STRING, + { sizeof(bin12), bin12 }, " abc " }, + { "0", CERT_RDN_PRINTABLE_STRING, + { sizeof(bin13), bin13 }, "\"def\"" }, + { "0", CERT_RDN_PRINTABLE_STRING, + { sizeof(bin14), bin14 }, "1;3" }, + { "0", CERT_RDN_PRINTABLE_STRING, + { sizeof(bin15), bin15 }, "4,7" }, + { "0", CERT_RDN_PRINTABLE_STRING, + { sizeof(bin16), bin16 }, " 1 " }, + { "0", CERT_RDN_PRINTABLE_STRING, + { sizeof(bin17), bin17 }, "\"1\"" }, }; DWORD i, ret; char buffer[2000]; @@ -272,6 +299,15 @@ static void test_CertRDNValueToStrW(void) static const WCHAR ePKIW[] = { 'e','P','K','I',' ','R','o','o','t',' ', 'C','e','r','t','i','f','i','c','a','t','i','o','n',' ','A','u','t','h', 'o','r','i','t','y',0 }; + static const WCHAR bin9W[] = { 'a','b','c','"','d','e','f',0 }; + static const WCHAR bin10W[] = { 'a','b','c','\'','d','e','f',0 }; + static const WCHAR bin11W[] = { 'a','b','c',',',' ','d','e','f',0 }; + static const WCHAR bin12W[] = { ' ','a','b','c',' ',0 }; + static const WCHAR bin13W[] = { '"','d','e','f','"',0 }; + static const WCHAR bin14W[] = { '1',';','3',0 }; + static const WCHAR bin15W[] = { '4',',','7',0 }; + static const WCHAR bin16W[] = { ' ','1',' ',0 }; + static const WCHAR bin17W[] = { '"','1','"',0 }; CertRDNAttrEncodingW attrs[] = { { "2.5.4.6", CERT_RDN_PRINTABLE_STRING, { sizeof(bin1), bin1 }, usW }, @@ -287,6 +323,24 @@ static void test_CertRDNValueToStrW(void) { sizeof(bin6), bin6 }, localhostW }, { "1.2.840.113549.1.9.1", CERT_RDN_IA5_STRING, { sizeof(bin7), bin7 }, aricW }, + { "0", CERT_RDN_PRINTABLE_STRING, + { sizeof(bin9), bin9 }, bin9W }, + { "0", CERT_RDN_PRINTABLE_STRING, + { sizeof(bin10), bin10 }, bin10W }, + { "0", CERT_RDN_PRINTABLE_STRING, + { sizeof(bin11), bin11 }, bin11W }, + { "0", CERT_RDN_PRINTABLE_STRING, + { sizeof(bin12), bin12 }, bin12W }, + { "0", CERT_RDN_PRINTABLE_STRING, + { sizeof(bin13), bin13 }, bin13W }, + { "0", CERT_RDN_PRINTABLE_STRING, + { sizeof(bin14), bin14 }, bin14W }, + { "0", CERT_RDN_PRINTABLE_STRING, + { sizeof(bin15), bin15 }, bin15W }, + { "0", CERT_RDN_PRINTABLE_STRING, + { sizeof(bin16), bin16 }, bin16W }, + { "0", CERT_RDN_PRINTABLE_STRING, + { sizeof(bin17), bin17 }, bin17W }, }; DWORD i, ret; WCHAR buffer[2000];