ReactOS  0.4.14-dev-593-g1793dcc
str.c File Reference
#include <stdio.h>
#include <stdarg.h>
#include <windef.h>
#include <winbase.h>
#include <winerror.h>
#include <wincrypt.h>
#include "wine/test.h"
Include dependency graph for str.c:

Go to the source code of this file.

Classes

struct  _CertRDNAttrEncoding
 
struct  _CertRDNAttrEncodingW
 
struct  StrToNameA
 
struct  StrToNameW
 

Typedefs

typedef struct _CertRDNAttrEncoding CertRDNAttrEncoding
 
typedef struct _CertRDNAttrEncodingPCertRDNAttrEncoding
 
typedef struct _CertRDNAttrEncodingW CertRDNAttrEncodingW
 
typedef struct _CertRDNAttrEncodingWPCertRDNAttrEncodingW
 

Functions

static DWORD (WINAPI *pCertNameToStrA)(DWORD
 
static BOOL (WINAPI *pCertStrToNameA)(DWORD dwCertEncodingType
 
static void test_CertRDNValueToStrA (void)
 
static void test_CertRDNValueToStrW (void)
 
static void test_NameToStrConversionA (PCERT_NAME_BLOB pName, DWORD dwStrType, LPCSTR expected, BOOL todo)
 
static void test_CertNameToStrA (void)
 
static void test_NameToStrConversionW (PCERT_NAME_BLOB pName, DWORD dwStrType, LPCWSTR expected, BOOL todo)
 
static void test_CertNameToStrW (void)
 
static void test_CertStrToNameA (void)
 
static void test_CertStrToNameW (void)
 
static void test_CertGetNameStringA (void)
 
 START_TEST (str)
 

Variables

static BYTE bin1 [] = { 0x55, 0x53 }
 
static BYTE bin2 []
 
static BYTE bin3 []
 
static BYTE bin4 []
 
static BYTE bin5 []
 
static BYTE bin6 []
 
static BYTE bin7 []
 
static BYTE bin8 []
 
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 const BYTE cert []
 
static char issuerStr []
 
static char issuerStrSemicolon []
 
static char issuerStrCRLF []
 
static char subjectStr []
 
static char subjectStrSemicolon []
 
static char subjectStrCRLF []
 
static char x500SubjectStr [] = "C=US, S=Minnesota, L=Minneapolis, O=CodeWeavers, OU=Wine Development, CN=localhost, E=aric@codeweavers.com"
 
static char x500SubjectStrSemicolonReverse [] = "E=aric@codeweavers.com; CN=localhost; OU=Wine Development; O=CodeWeavers; L=Minneapolis; S=Minnesota; C=US"
 
static WCHAR issuerStrW []
 
static WCHAR issuerStrSemicolonW []
 
static WCHAR issuerStrCRLFW []
 
static WCHAR subjectStrW []
 
static WCHAR subjectStrSemicolonW []
 
static WCHAR subjectStrCRLFW []
 
static WCHAR x500SubjectStrSemicolonReverseW []
 
static HMODULE dll
 
static LPVOID
 
static DWORD
 
static LPSTR
 
static LPWSTR
 
static PCERT_RDN_VALUE_BLOB
 
static LPCSTR pszX500
 
static LPCSTR DWORD dwStrType
 
static LPCSTR DWORD voidpvReserved
 
static LPCSTR DWORD void BYTEpbEncoded
 
static LPCSTR DWORD void BYTE DWORDpcbEncoded
 
static LPCSTR DWORD void BYTE DWORD LPCSTRppszError
 
static DWORD type
 
static DWORD DWORD flags
 
static DWORD DWORD voidtypePara
 
static DWORD DWORD void LPSTR str
 
static DWORD DWORD void LPSTR DWORD cch
 
static BYTE encodedSimpleCN []
 
static BYTE encodedSingleQuotedCN []
 
static BYTE encodedSpacedCN []
 
static BYTE encodedQuotedCN []
 
static BYTE encodedMultipleAttrCN []
 
static BYTE encodedCommaCN []
 
static BYTE encodedEqualCN []
 
static BYTE encodedLessThanCN []
 
static BYTE encodedGreaterThanCN []
 
static BYTE encodedHashCN []
 
static BYTE encodedSemiCN []
 
static BYTE encodedNewlineCN []
 
static BYTE encodedDummyCN []
 
static BYTE encodedFields []
 
static const WCHAR simpleCN_W [] = { 'C','N','=','1',0 }
 
static const WCHAR singledQuotedCN_W [] = { 'C','N','=','\'','1','\'',0 }
 
static const WCHAR simpleSingleQuotedCN_W [] = { '\'','1','\'',0 }
 
static const WCHAR spacedCN_W [] = { 'C','N','=','"',' ','1',' ','"',0 }
 
static const WCHAR simpleSpacedCN_W [] = { '"',' ','1',' ','"',0 }
 
static const WCHAR quotedCN_W [] = { 'C','N','=','"','"','"','1','"','"','"',0 }
 
static const WCHAR simpleQuotedCN_W [] = { '"','"','"','1','"','"','"',0 }
 
static const WCHAR multipleAttrCN_W [] = { 'C','N','=','"','1','+','2','"',0 }
 
static const WCHAR simpleMultipleAttrCN_W [] = { '"','1','+','2','"',0 }
 
static const WCHAR commaCN_W [] = { 'C','N','=','"','a',',','b','"',0 }
 
static const WCHAR simpleCommaCN_W [] = { '"','a',',','b','"',0 }
 
static const WCHAR equalCN_W [] = { 'C','N','=','"','a','=','b','"',0 }
 
static const WCHAR simpleEqualCN_W [] = { '"','a','=','b','"',0 }
 
static const WCHAR lessThanCN_W [] = { 'C','N','=','"','<','"',0 }
 
static const WCHAR simpleLessThanCN_W [] = { '"','<','"',0 }
 
static const WCHAR greaterThanCN_W [] = { 'C','N','=','"','>','"',0 }
 
static const WCHAR simpleGreaterThanCN_W [] = { '"','>','"',0 }
 
static const WCHAR hashCN_W [] = { 'C','N','=','"','#','"',0 }
 
static const WCHAR simpleHashCN_W [] = { '"','#','"',0 }
 
static const WCHAR semiCN_W [] = { 'C','N','=','"',';','"',0 }
 
static const WCHAR simpleSemiCN_W [] = { '"',';','"',0 }
 
static const WCHAR newlineCN_W [] = { 'C','N','=','"','a','\n','b','"',0 }
 
static const WCHAR simpleNewlineCN_W [] = { '"','a','\n','b','"',0 }
 
static const struct StrToNameA namesA []
 
static const WCHAR badlyQuotedCN_W [] = { 'C','N','=','"','"','1','"','"',0 }
 
static const WCHAR simpleCN2_W [] = { 'C','N','=','"','1','"',0 }
 
static const WCHAR simpleCN3_W [] = { 'C','N',' ','=',' ','"','1','"',0 }
 
static const WCHAR japaneseCN_W [] = { 'C','N','=',0x226f,0x575b,0 }
 
static const WCHAR dummyCN_W [] = { 'C','N','=','d','u','m','m','y',',','T','=','t','e','s','t',0 }
 
static const WCHAR encodedFields_W []
 
static const BYTE encodedJapaneseCN []
 
static const struct StrToNameW namesW []
 

Typedef Documentation

◆ CertRDNAttrEncoding

◆ CertRDNAttrEncodingW

◆ PCertRDNAttrEncoding

◆ PCertRDNAttrEncodingW

Function Documentation

◆ BOOL()

static BOOL ( WINAPI pCertStrToNameA)
static

◆ DWORD()

static DWORD ( WINAPI pCertNameToStrA)
static

◆ START_TEST()

START_TEST ( str  )

Definition at line 1060 of file str.c.

1061 {
1062  dll = GetModuleHandleA("Crypt32.dll");
1063 
1064  pCertNameToStrA = (void*)GetProcAddress(dll,"CertNameToStrA");
1065  pCertNameToStrW = (void*)GetProcAddress(dll,"CertNameToStrW");
1066  pCertRDNValueToStrA = (void*)GetProcAddress(dll, "CertRDNValueToStrA");
1067  pCertRDNValueToStrW = (void*)GetProcAddress(dll, "CertRDNValueToStrW");
1068  pCertStrToNameA = (void*)GetProcAddress(dll,"CertStrToNameA");
1069  pCertStrToNameW = (void*)GetProcAddress(dll,"CertStrToNameW");
1070  pCertGetNameStringA = (void*)GetProcAddress(dll, "CertGetNameStringA");
1071 
1079 }
static void test_CertNameToStrA(void)
Definition: str.c:431
static void test_CertNameToStrW(void)
Definition: str.c:584
static HMODULE dll
Definition: str.c:188
static void test_CertRDNValueToStrA(void)
Definition: str.c:205
static void test_CertGetNameStringA(void)
Definition: str.c:904
static void test_CertStrToNameW(void)
Definition: str.c:847
HMODULE WINAPI DECLSPEC_HOTPATCH GetModuleHandleA(LPCSTR lpModuleName)
Definition: loader.c:821
static void test_CertRDNValueToStrW(void)
Definition: str.c:275
static void test_CertStrToNameA(void)
Definition: str.c:730
#define GetProcAddress(x, y)
Definition: compat.h:418

◆ test_CertGetNameStringA()

static void test_CertGetNameStringA ( void  )
static

Definition at line 904 of file str.c.

905 {
907 
908  if (!pCertGetNameStringA)
909  {
910  win_skip("CertGetNameStringA is not available\n");
911  return;
912  }
913 
915  sizeof(cert));
916  ok(context != NULL, "CertCreateCertificateContext failed: %08x\n",
917  GetLastError());
918  if (context)
919  {
920  static const char aric[] = "aric@codeweavers.com";
921  static const char localhost[] = "localhost";
922  DWORD len, type;
923  LPSTR str;
924 
925  /* Bad string types/types missing from the cert */
926  len = pCertGetNameStringA(NULL, 0, 0, NULL, NULL, 0);
927  ok(len == 1, "expected 1, got %d\n", len);
928  len = pCertGetNameStringA(context, 0, 0, NULL, NULL, 0);
929  ok(len == 1, "expected 1, got %d\n", len);
930  len = pCertGetNameStringA(context, CERT_NAME_URL_TYPE, 0, NULL, NULL,
931  0);
932  ok(len == 1, "expected 1, got %d\n", len);
933 
934  len = pCertGetNameStringA(context, CERT_NAME_EMAIL_TYPE, 0, NULL, NULL,
935  0);
936  ok(len == strlen(aric) + 1, "unexpected length %d\n", len);
937  str = HeapAlloc(GetProcessHeap(), 0, len);
938  if (str)
939  {
940  len = pCertGetNameStringA(context, CERT_NAME_EMAIL_TYPE, 0, NULL,
941  str, len);
942  ok(!strcmp(str, aric), "unexpected value %s\n", str);
943  HeapFree(GetProcessHeap(), 0, str);
944  }
945 
946  len = pCertGetNameStringA(context, CERT_NAME_RDN_TYPE, 0, NULL, NULL,
947  0);
948  ok(len == strlen(issuerStr) + 1, "unexpected length %d\n", len);
949  str = HeapAlloc(GetProcessHeap(), 0, len);
950  if (str)
951  {
952  len = pCertGetNameStringA(context, CERT_NAME_RDN_TYPE, 0, NULL,
953  str, len);
954  ok(!strcmp(str, issuerStr), "unexpected value %s\n", str);
955  HeapFree(GetProcessHeap(), 0, str);
956  }
957  type = 0;
958  len = pCertGetNameStringA(context, CERT_NAME_RDN_TYPE, 0, &type, NULL,
959  0);
960  ok(len == strlen(issuerStr) + 1, "unexpected length %d\n", len);
961  str = HeapAlloc(GetProcessHeap(), 0, len);
962  if (str)
963  {
964  len = pCertGetNameStringA(context, CERT_NAME_RDN_TYPE, 0, &type,
965  str, len);
966  ok(!strcmp(str, issuerStr), "unexpected value %s\n", str);
967  HeapFree(GetProcessHeap(), 0, str);
968  }
970  len = pCertGetNameStringA(context, CERT_NAME_RDN_TYPE, 0, &type, NULL,
971  0);
972  ok(len == strlen(subjectStr) + 1, "unexpected length %d\n", len);
973  str = HeapAlloc(GetProcessHeap(), 0, len);
974  if (str)
975  {
976  len = pCertGetNameStringA(context, CERT_NAME_RDN_TYPE, 0, &type,
977  str, len);
978  ok(!strcmp(str, subjectStr), "unexpected value %s\n", str);
979  HeapFree(GetProcessHeap(), 0, str);
980  }
981 
982  len = pCertGetNameStringA(context, CERT_NAME_ATTR_TYPE, 0, NULL, NULL,
983  0);
984  ok(len == strlen(aric) + 1, "unexpected length %d\n", len);
985  str = HeapAlloc(GetProcessHeap(), 0, len);
986  if (str)
987  {
988  len = pCertGetNameStringA(context, CERT_NAME_ATTR_TYPE, 0, NULL,
989  str, len);
990  ok(!strcmp(str, aric), "unexpected value %s\n", str);
991  HeapFree(GetProcessHeap(), 0, str);
992  }
993  len = pCertGetNameStringA(context, CERT_NAME_ATTR_TYPE, 0,
994  (void *)szOID_RSA_emailAddr, NULL, 0);
995  ok(len == strlen(aric) + 1, "unexpected length %d\n", len);
996  str = HeapAlloc(GetProcessHeap(), 0, len);
997  if (str)
998  {
999  len = pCertGetNameStringA(context, CERT_NAME_ATTR_TYPE, 0,
1000  (void *)szOID_RSA_emailAddr, str, len);
1001  ok(!strcmp(str, aric), "unexpected value %s\n", str);
1002  HeapFree(GetProcessHeap(), 0, str);
1003  }
1004  len = pCertGetNameStringA(context, CERT_NAME_ATTR_TYPE, 0,
1005  (void *)szOID_COMMON_NAME, NULL, 0);
1006  ok(len == strlen(localhost) + 1, "unexpected length %d\n", len);
1007  str = HeapAlloc(GetProcessHeap(), 0, len);
1008  if (str)
1009  {
1010  len = pCertGetNameStringA(context, CERT_NAME_ATTR_TYPE, 0,
1011  (void *)szOID_COMMON_NAME, str, len);
1012  ok(!strcmp(str, localhost), "unexpected value %s\n", str);
1013  HeapFree(GetProcessHeap(), 0, str);
1014  }
1015 
1016  len = pCertGetNameStringA(context, CERT_NAME_SIMPLE_DISPLAY_TYPE, 0,
1017  NULL, NULL, 0);
1018  ok(len == strlen(localhost) + 1, "unexpected length %d\n", len);
1019  str = HeapAlloc(GetProcessHeap(), 0, len);
1020  if (str)
1021  {
1022  len = pCertGetNameStringA(context, CERT_NAME_SIMPLE_DISPLAY_TYPE,
1023  0, NULL, str, len);
1024  ok(!strcmp(str, localhost), "unexpected value %s\n", str);
1025  HeapFree(GetProcessHeap(), 0, str);
1026  }
1027 
1028  len = pCertGetNameStringA(context, CERT_NAME_FRIENDLY_DISPLAY_TYPE, 0,
1029  NULL, NULL, 0);
1030  ok(len == strlen(localhost) + 1, "unexpected length %d\n", len);
1031  str = HeapAlloc(GetProcessHeap(), 0, len);
1032  if (str)
1033  {
1034  len = pCertGetNameStringA(context, CERT_NAME_FRIENDLY_DISPLAY_TYPE,
1035  0, NULL, str, len);
1036  ok(!strcmp(str, localhost), "unexpected value %s\n", str);
1037  HeapFree(GetProcessHeap(), 0, str);
1038  }
1039 
1040  len = pCertGetNameStringA(context, CERT_NAME_DNS_TYPE, 0, NULL, NULL,
1041  0);
1042  ok(len == strlen(localhost) + 1 || broken(len == 1) /* NT4 */,
1043  "unexpected length %d\n", len);
1044  if (len > 1)
1045  {
1046  str = HeapAlloc(GetProcessHeap(), 0, len);
1047  if (str)
1048  {
1049  len = pCertGetNameStringA(context, CERT_NAME_DNS_TYPE, 0, NULL,
1050  str, len);
1051  ok(!strcmp(str, localhost), "unexpected value %s\n", str);
1052  HeapFree(GetProcessHeap(), 0, str);
1053  }
1054  }
1055 
1057  }
1058 }
#define CERT_NAME_FRIENDLY_DISPLAY_TYPE
Definition: wincrypt.h:3501
static const BYTE aric[]
Definition: encode.c:700
#define CERT_NAME_ATTR_TYPE
Definition: wincrypt.h:3499
Definition: http.c:7098
ACPI_SIZE strlen(const char *String)
Definition: utclib.c:269
BOOL WINAPI CertFreeCertificateContext(PCCERT_CONTEXT pCertContext)
Definition: cert.c:371
static char issuerStr[]
Definition: str.c:118
static const BYTE cert[]
Definition: str.c:71
static const BYTE localhost[]
Definition: encode.c:1442
GLuint GLuint GLsizei GLenum type
Definition: gl.h:1545
DWORD WINAPI GetLastError(VOID)
Definition: except.c:1059
#define szOID_COMMON_NAME
Definition: wincrypt.h:3134
#define CERT_NAME_SIMPLE_DISPLAY_TYPE
Definition: wincrypt.h:3500
char * LPSTR
Definition: xmlstorage.h:182
static DWORD type
Definition: str.c:201
#define X509_ASN_ENCODING
Definition: wincrypt.h:2297
#define CERT_OID_NAME_STR
Definition: wincrypt.h:3485
#define CERT_NAME_EMAIL_TYPE
Definition: wincrypt.h:3497
smooth NULL
Definition: ftsmooth.c:416
#define CERT_NAME_URL_TYPE
Definition: wincrypt.h:3503
#define GetProcessHeap()
Definition: compat.h:403
PVOID WINAPI HeapAlloc(HANDLE, DWORD, SIZE_T)
static DWORD DWORD void LPSTR str
Definition: str.c:201
unsigned long DWORD
Definition: ntddk_ex.h:95
#define CERT_NAME_RDN_TYPE
Definition: wincrypt.h:3498
PCCERT_CONTEXT WINAPI CertCreateCertificateContext(DWORD dwCertEncodingType, const BYTE *pbCertEncoded, DWORD cbCertEncoded)
Definition: cert.c:316
GLenum GLsizei len
Definition: glext.h:6722
#define broken(x)
Definition: _sntprintf.h:21
#define ok(value,...)
Definition: atltest.h:57
#define szOID_RSA_emailAddr
Definition: wincrypt.h:3035
int strcmp(const char *String1, const char *String2)
Definition: utclib.c:469
#define CERT_NAME_DNS_TYPE
Definition: wincrypt.h:3502
static char subjectStr[]
Definition: str.c:124
#define win_skip
Definition: test.h:150
#define HeapFree(x, y, z)
Definition: compat.h:402

Referenced by START_TEST().

◆ test_CertNameToStrA()

static void test_CertNameToStrA ( void  )
static

Definition at line 431 of file str.c.

432 {
435 
436  if (!pCertNameToStrA)
437  {
438  win_skip("CertNameToStrA is not available\n");
439  return;
440  }
441 
443  sizeof(cert));
444  ok(context != NULL, "CertCreateCertificateContext failed: %08x\n",
445  GetLastError());
446  if (context)
447  {
448  DWORD ret;
449 
450  /* This crashes
451  ret = pCertNameToStrA(0, NULL, 0, NULL, 0);
452  */
453  /* Test with a bogus encoding type */
454  SetLastError(0xdeadbeef);
455  ret = pCertNameToStrA(0, &context->pCertInfo->Issuer, 0, NULL, 0);
457  "Expected retval 1 and ERROR_FILE_NOT_FOUND, got %d - %08x\n",
458  ret, GetLastError());
459  SetLastError(0xdeadbeef);
460  ret = pCertNameToStrA(X509_ASN_ENCODING, &context->pCertInfo->Issuer,
461  0, NULL, 0);
463  "Expected positive return and ERROR_SUCCESS, got %d - %08x\n",
464  ret, GetLastError());
465 
466  test_NameToStrConversionA(&context->pCertInfo->Issuer,
468  test_NameToStrConversionA(&context->pCertInfo->Issuer,
471  test_NameToStrConversionA(&context->pCertInfo->Issuer,
474  test_NameToStrConversionA(&context->pCertInfo->Subject,
476  test_NameToStrConversionA(&context->pCertInfo->Subject,
479  test_NameToStrConversionA(&context->pCertInfo->Subject,
482  test_NameToStrConversionA(&context->pCertInfo->Subject,
484  test_NameToStrConversionA(&context->pCertInfo->Subject,
487 
489  }
490  blob.pbData = encodedSimpleCN;
491  blob.cbData = sizeof(encodedSimpleCN);
493  blob.pbData = encodedSingleQuotedCN;
494  blob.cbData = sizeof(encodedSingleQuotedCN);
497  blob.pbData = encodedSpacedCN;
498  blob.cbData = sizeof(encodedSpacedCN);
501  blob.pbData = encodedQuotedCN;
502  blob.cbData = sizeof(encodedQuotedCN);
503  test_NameToStrConversionA(&blob, CERT_X500_NAME_STR, "CN=\"\"\"1\"\"\"",
504  FALSE);
506  FALSE);
507  blob.pbData = encodedMultipleAttrCN;
508  blob.cbData = sizeof(encodedMultipleAttrCN);
511  blob.pbData = encodedCommaCN;
512  blob.cbData = sizeof(encodedCommaCN);
515  blob.pbData = encodedEqualCN;
516  blob.cbData = sizeof(encodedEqualCN);
519  blob.pbData = encodedLessThanCN;
520  blob.cbData = sizeof(encodedLessThanCN);
523  blob.pbData = encodedGreaterThanCN;
524  blob.cbData = sizeof(encodedGreaterThanCN);
527  blob.pbData = encodedHashCN;
528  blob.cbData = sizeof(encodedHashCN);
531  blob.pbData = encodedSemiCN;
532  blob.cbData = sizeof(encodedSemiCN);
535  blob.pbData = encodedNewlineCN;
536  blob.cbData = sizeof(encodedNewlineCN);
539 }
static BYTE encodedNewlineCN[]
Definition: str.c:418
#define CERT_NAME_STR_SEMICOLON_FLAG
Definition: wincrypt.h:3487
#define CERT_X500_NAME_STR
Definition: wincrypt.h:3486
#define ERROR_SUCCESS
Definition: deptool.c:10
Definition: image.c:133
Definition: http.c:7098
static BYTE encodedSingleQuotedCN[]
Definition: str.c:392
BOOL WINAPI CertFreeCertificateContext(PCCERT_CONTEXT pCertContext)
Definition: cert.c:371
static char issuerStr[]
Definition: str.c:118
static const BYTE cert[]
Definition: str.c:71
static char x500SubjectStrSemicolonReverse[]
Definition: str.c:131
DWORD WINAPI GetLastError(VOID)
Definition: except.c:1059
static BYTE encodedSimpleCN[]
Definition: str.c:390
static char issuerStrSemicolon[]
Definition: str.c:120
static char issuerStrCRLF[]
Definition: str.c:122
static BYTE encodedCommaCN[]
Definition: str.c:400
static BYTE encodedEqualCN[]
Definition: str.c:403
#define X509_ASN_ENCODING
Definition: wincrypt.h:2297
static BYTE encodedSemiCN[]
Definition: str.c:415
static void test_NameToStrConversionA(PCERT_NAME_BLOB pName, DWORD dwStrType, LPCSTR expected, BOOL todo)
Definition: str.c:370
#define CERT_OID_NAME_STR
Definition: wincrypt.h:3485
smooth NULL
Definition: ftsmooth.c:416
#define CERT_NAME_STR_CRLF_FLAG
Definition: wincrypt.h:3490
#define ERROR_FILE_NOT_FOUND
Definition: disk.h:79
static BYTE encodedGreaterThanCN[]
Definition: str.c:409
static char subjectStrCRLF[]
Definition: str.c:128
unsigned long DWORD
Definition: ntddk_ex.h:95
#define SetLastError(x)
Definition: compat.h:417
int ret
PCCERT_CONTEXT WINAPI CertCreateCertificateContext(DWORD dwCertEncodingType, const BYTE *pbCertEncoded, DWORD cbCertEncoded)
Definition: cert.c:316
static BYTE encodedHashCN[]
Definition: str.c:412
static BYTE encodedLessThanCN[]
Definition: str.c:406
#define CERT_NAME_STR_REVERSE_FLAG
Definition: wincrypt.h:3492
static char subjectStrSemicolon[]
Definition: str.c:126
static char x500SubjectStr[]
Definition: str.c:130
#define ok(value,...)
Definition: atltest.h:57
#define CERT_SIMPLE_NAME_STR
Definition: wincrypt.h:3484
static char subjectStr[]
Definition: str.c:124
static BYTE encodedMultipleAttrCN[]
Definition: str.c:398
#define win_skip
Definition: test.h:150
static BYTE encodedSpacedCN[]
Definition: str.c:394
static BYTE encodedQuotedCN[]
Definition: str.c:396

Referenced by START_TEST().

◆ test_CertNameToStrW()

static void test_CertNameToStrW ( void  )
static

Definition at line 584 of file str.c.

585 {
588 
589  if (!pCertNameToStrW)
590  {
591  win_skip("CertNameToStrW is not available\n");
592  return;
593  }
594 
596  sizeof(cert));
597  ok(context != NULL, "CertCreateCertificateContext failed: %08x\n",
598  GetLastError());
599  if (context)
600  {
601  DWORD ret;
602 
603  /* This crashes
604  ret = pCertNameToStrW(0, NULL, 0, NULL, 0);
605  */
606  /* Test with a bogus encoding type */
607  SetLastError(0xdeadbeef);
608  ret = pCertNameToStrW(0, &context->pCertInfo->Issuer, 0, NULL, 0);
610  "Expected retval 1 and ERROR_FILE_NOT_FOUND, got %d - %08x\n",
611  ret, GetLastError());
612  SetLastError(0xdeadbeef);
613  ret = pCertNameToStrW(X509_ASN_ENCODING, &context->pCertInfo->Issuer,
614  0, NULL, 0);
616  "Expected positive return and ERROR_SUCCESS, got %d - %08x\n",
617  ret, GetLastError());
618 
619  test_NameToStrConversionW(&context->pCertInfo->Issuer,
621  test_NameToStrConversionW(&context->pCertInfo->Issuer,
624  test_NameToStrConversionW(&context->pCertInfo->Issuer,
627  test_NameToStrConversionW(&context->pCertInfo->Subject,
629  test_NameToStrConversionW(&context->pCertInfo->Subject,
632  test_NameToStrConversionW(&context->pCertInfo->Subject,
635  test_NameToStrConversionW(&context->pCertInfo->Subject,
638 
640  }
641  blob.pbData = encodedSimpleCN;
642  blob.cbData = sizeof(encodedSimpleCN);
644  blob.pbData = encodedSingleQuotedCN;
645  blob.cbData = sizeof(encodedSingleQuotedCN);
647  FALSE);
650  blob.pbData = encodedSpacedCN;
651  blob.cbData = sizeof(encodedSpacedCN);
654  FALSE);
655  blob.pbData = encodedQuotedCN;
656  blob.cbData = sizeof(encodedQuotedCN);
658  FALSE);
660  FALSE);
661  blob.pbData = encodedMultipleAttrCN;
662  blob.cbData = sizeof(encodedMultipleAttrCN);
664  FALSE);
667  blob.pbData = encodedCommaCN;
668  blob.cbData = sizeof(encodedCommaCN);
671  FALSE);
672  blob.pbData = encodedEqualCN;
673  blob.cbData = sizeof(encodedEqualCN);
676  FALSE);
677  blob.pbData = encodedLessThanCN;
678  blob.cbData = sizeof(encodedLessThanCN);
681  FALSE);
682  blob.pbData = encodedGreaterThanCN;
683  blob.cbData = sizeof(encodedGreaterThanCN);
685  FALSE);
688  blob.pbData = encodedHashCN;
689  blob.cbData = sizeof(encodedHashCN);
692  FALSE);
693  blob.pbData = encodedSemiCN;
694  blob.cbData = sizeof(encodedSemiCN);
697  FALSE);
698  blob.pbData = encodedNewlineCN;
699  blob.cbData = sizeof(encodedNewlineCN);
702  FALSE);
703 }
static const WCHAR equalCN_W[]
Definition: str.c:571
static BYTE encodedNewlineCN[]
Definition: str.c:418
#define CERT_NAME_STR_SEMICOLON_FLAG
Definition: wincrypt.h:3487
#define CERT_X500_NAME_STR
Definition: wincrypt.h:3486
static WCHAR issuerStrCRLFW[]
Definition: str.c:144
#define ERROR_SUCCESS
Definition: deptool.c:10
Definition: image.c:133
static WCHAR issuerStrSemicolonW[]
Definition: str.c:138
Definition: http.c:7098
static const WCHAR hashCN_W[]
Definition: str.c:577
static BYTE encodedSingleQuotedCN[]
Definition: str.c:392
BOOL WINAPI CertFreeCertificateContext(PCCERT_CONTEXT pCertContext)
Definition: cert.c:371
static const BYTE cert[]
Definition: str.c:71
DWORD WINAPI GetLastError(VOID)
Definition: except.c:1059
static const WCHAR greaterThanCN_W[]
Definition: str.c:575
static BYTE encodedSimpleCN[]
Definition: str.c:390
static const WCHAR simpleHashCN_W[]
Definition: str.c:578
static BYTE encodedCommaCN[]
Definition: str.c:400
static BYTE encodedEqualCN[]
Definition: str.c:403
static const WCHAR simpleQuotedCN_W[]
Definition: str.c:566
#define X509_ASN_ENCODING
Definition: wincrypt.h:2297
static WCHAR issuerStrW[]
Definition: str.c:132
static BYTE encodedSemiCN[]
Definition: str.c:415
#define CERT_OID_NAME_STR
Definition: wincrypt.h:3485
static const WCHAR commaCN_W[]
Definition: str.c:569
smooth NULL
Definition: ftsmooth.c:416
static WCHAR subjectStrW[]
Definition: str.c:150
static const WCHAR quotedCN_W[]
Definition: str.c:565
static const WCHAR multipleAttrCN_W[]
Definition: str.c:567
#define CERT_NAME_STR_CRLF_FLAG
Definition: wincrypt.h:3490
static WCHAR subjectStrSemicolonW[]
Definition: str.c:160
#define ERROR_FILE_NOT_FOUND
Definition: disk.h:79
static BYTE encodedGreaterThanCN[]
Definition: str.c:409
static WCHAR x500SubjectStrSemicolonReverseW[]
Definition: str.c:180
unsigned long DWORD
Definition: ntddk_ex.h:95
#define SetLastError(x)
Definition: compat.h:417
static const WCHAR simpleSemiCN_W[]
Definition: str.c:580
static const WCHAR simpleNewlineCN_W[]
Definition: str.c:582
int ret
static const WCHAR simpleMultipleAttrCN_W[]
Definition: str.c:568
static void test_NameToStrConversionW(PCERT_NAME_BLOB pName, DWORD dwStrType, LPCWSTR expected, BOOL todo)
Definition: str.c:541
PCCERT_CONTEXT WINAPI CertCreateCertificateContext(DWORD dwCertEncodingType, const BYTE *pbCertEncoded, DWORD cbCertEncoded)
Definition: cert.c:316
static BYTE encodedHashCN[]
Definition: str.c:412
static const WCHAR lessThanCN_W[]
Definition: str.c:573
static BYTE encodedLessThanCN[]
Definition: str.c:406
static const WCHAR spacedCN_W[]
Definition: str.c:563
#define CERT_NAME_STR_REVERSE_FLAG
Definition: wincrypt.h:3492
static const WCHAR simpleCN_W[]
Definition: str.c:560
static const WCHAR simpleCommaCN_W[]
Definition: str.c:570
#define ok(value,...)
Definition: atltest.h:57
static const WCHAR simpleSpacedCN_W[]
Definition: str.c:564
static const WCHAR simpleSingleQuotedCN_W[]
Definition: str.c:562
static const WCHAR semiCN_W[]
Definition: str.c:579
static const WCHAR simpleEqualCN_W[]
Definition: str.c:572
static const WCHAR newlineCN_W[]
Definition: str.c:581
#define CERT_SIMPLE_NAME_STR
Definition: wincrypt.h:3484
static BYTE encodedMultipleAttrCN[]
Definition: str.c:398
#define win_skip
Definition: test.h:150
static WCHAR subjectStrCRLFW[]
Definition: str.c:170
static BYTE encodedSpacedCN[]
Definition: str.c:394
static const WCHAR simpleLessThanCN_W[]
Definition: str.c:574
static BYTE encodedQuotedCN[]
Definition: str.c:396
static const WCHAR singledQuotedCN_W[]
Definition: str.c:561
static const WCHAR simpleGreaterThanCN_W[]
Definition: str.c:576

Referenced by START_TEST().

◆ test_CertRDNValueToStrA()

static void test_CertRDNValueToStrA ( void  )
static

Definition at line 205 of file str.c.

206 {
207  CertRDNAttrEncoding attrs[] = {
208  { "2.5.4.6", CERT_RDN_PRINTABLE_STRING,
209  { sizeof(bin1), bin1 }, "US", FALSE },
210  { "2.5.4.8", CERT_RDN_PRINTABLE_STRING,
211  { sizeof(bin2), bin2 }, "Minnesota", FALSE },
212  { "2.5.4.7", CERT_RDN_PRINTABLE_STRING,
213  { sizeof(bin3), bin3 }, "Minneapolis", FALSE },
214  { "2.5.4.10", CERT_RDN_PRINTABLE_STRING,
215  { sizeof(bin4), bin4 }, "CodeWeavers", FALSE },
216  { "2.5.4.11", CERT_RDN_PRINTABLE_STRING,
217  { sizeof(bin5), bin5 }, "Wine Development", FALSE },
218  { "2.5.4.3", CERT_RDN_PRINTABLE_STRING,
219  { sizeof(bin6), bin6 }, "localhost", FALSE },
220  { "1.2.840.113549.1.9.1", CERT_RDN_IA5_STRING,
221  { sizeof(bin7), bin7 }, "aric@codeweavers.com", FALSE },
223  { sizeof(bin9), bin9 }, "abc\"def", FALSE },
225  { sizeof(bin10), bin10 }, "abc'def", FALSE },
227  { sizeof(bin11), bin11 }, "abc, def", FALSE },
229  { sizeof(bin12), bin12 }, " abc ", FALSE },
231  { sizeof(bin13), bin13 }, "\"def\"", FALSE },
233  { sizeof(bin14), bin14 }, "1;3", FALSE },
234  };
235  DWORD i, ret;
236  char buffer[2000];
237  CERT_RDN_VALUE_BLOB blob = { 0, NULL };
238  static const char ePKI[] = "ePKI Root Certification Authority";
239 
240  if (!pCertRDNValueToStrA) return;
241 
242  /* This crashes
243  ret = pCertRDNValueToStrA(0, NULL, NULL, 0);
244  */
245  /* With empty input, it generates the empty string */
246  SetLastError(0xdeadbeef);
247  ret = pCertRDNValueToStrA(0, &blob, NULL, 0);
248  ok(ret == 1 && GetLastError() == 0xdeadbeef, "Expected empty string\n");
249  ret = pCertRDNValueToStrA(0, &blob, buffer, sizeof(buffer));
250  ok(ret == 1 && GetLastError() == 0xdeadbeef, "Expected empty string\n");
251  ok(!buffer[0], "Expected empty string\n");
252 
253  for (i = 0; i < ARRAY_SIZE(attrs); i++)
254  {
255  ret = pCertRDNValueToStrA(attrs[i].dwValueType, &attrs[i].Value,
256  buffer, sizeof(buffer));
257  todo_wine_if (attrs[i].todo)
258  {
259  ok(ret == strlen(attrs[i].str) + 1, "Expected length %d, got %d\n",
260  lstrlenA(attrs[i].str) + 1, ret);
261  ok(!strcmp(buffer, attrs[i].str), "Expected %s, got %s\n",
262  attrs[i].str, buffer);
263  }
264  }
265  blob.pbData = bin8;
266  blob.cbData = sizeof(bin8);
267  ret = pCertRDNValueToStrA(CERT_RDN_UTF8_STRING, &blob, buffer,
268  sizeof(buffer));
269  ok(ret == strlen(ePKI) + 1 || broken(ret != strlen(ePKI) + 1),
270  "Expected length %d, got %d\n", lstrlenA(ePKI), ret);
271  if (ret == strlen(ePKI) + 1)
272  ok(!strcmp(buffer, ePKI), "Expected %s, got %s\n", ePKI, buffer);
273 }
static BYTE bin4[]
Definition: str.c:50
_In_opt_ ULONG _Out_ PULONG Value
Definition: rtlfuncs.h:2343
static BYTE bin10[]
Definition: str.c:65
Definition: image.c:133
ACPI_SIZE strlen(const char *String)
Definition: utclib.c:269
#define CERT_RDN_IA5_STRING
Definition: wincrypt.h:2784
BOOL todo
Definition: filedlg.c:313
DWORD WINAPI GetLastError(VOID)
Definition: except.c:1059
GLuint buffer
Definition: glext.h:5915
static BYTE bin8[]
Definition: str.c:58
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint i
Definition: glfuncs.h:248
static BYTE bin13[]
Definition: str.c:68
static BYTE bin5[]
Definition: str.c:52
smooth NULL
Definition: ftsmooth.c:416
static BYTE bin14[]
Definition: str.c:69
#define todo_wine_if(is_todo)
Definition: test.h:164
static BYTE bin3[]
Definition: str.c:48
static DWORD DWORD void LPSTR str
Definition: str.c:201
static BYTE bin7[]
Definition: str.c:56
unsigned long DWORD
Definition: ntddk_ex.h:95
#define SetLastError(x)
Definition: compat.h:417
#define CERT_RDN_UTF8_STRING
Definition: wincrypt.h:2793
static BYTE bin12[]
Definition: str.c:67
static BYTE bin6[]
Definition: str.c:54
static BYTE bin9[]
Definition: str.c:64
int ret
static BYTE bin2[]
Definition: str.c:46
#define broken(x)
Definition: _sntprintf.h:21
int WINAPI lstrlenA(LPCSTR lpString)
Definition: lstring.c:145
#define ARRAY_SIZE(a)
Definition: main.h:24
#define ok(value,...)
Definition: atltest.h:57
static BYTE bin1[]
Definition: str.c:45
int strcmp(const char *String1, const char *String2)
Definition: utclib.c:469
static BYTE bin11[]
Definition: str.c:66
#define CERT_RDN_PRINTABLE_STRING
Definition: wincrypt.h:2780

Referenced by START_TEST().

◆ test_CertRDNValueToStrW()

static void test_CertRDNValueToStrW ( void  )
static

Definition at line 275 of file str.c.

276 {
277  static const WCHAR usW[] = { 'U','S',0 };
278  static const WCHAR minnesotaW[] = { 'M','i','n','n','e','s','o','t','a',0 };
279  static const WCHAR minneapolisW[] = { 'M','i','n','n','e','a','p','o','l',
280  'i','s',0 };
281  static const WCHAR codeweaversW[] = { 'C','o','d','e','W','e','a','v','e',
282  'r','s',0 };
283  static const WCHAR wineDevW[] = { 'W','i','n','e',' ','D','e','v','e','l',
284  'o','p','m','e','n','t',0 };
285  static const WCHAR localhostW[] = { 'l','o','c','a','l','h','o','s','t',0 };
286  static const WCHAR aricW[] = { 'a','r','i','c','@','c','o','d','e','w','e',
287  'a','v','e','r','s','.','c','o','m',0 };
288  static const WCHAR ePKIW[] = { 'e','P','K','I',' ','R','o','o','t',' ',
289  'C','e','r','t','i','f','i','c','a','t','i','o','n',' ','A','u','t','h',
290  'o','r','i','t','y',0 };
291  static const WCHAR embeddedDoubleQuoteW[] = { 'a','b','c','"','d','e','f',
292  0 };
293  static const WCHAR embeddedSingleQuoteW[] = { 'a','b','c','\'','d','e','f',
294  0 };
295  static const WCHAR embeddedCommaW[] = { 'a','b','c',',',' ','d','e','f',0 };
296  static const WCHAR trailingAndEndingSpaceW[] = { ' ','a','b','c',' ',0 };
297  static const WCHAR enclosingQuotesW[] = { '"','d','e','f','"',0 };
298  static const WCHAR embeddedSemiW[] = { '1',';','3',0 };
299  CertRDNAttrEncodingW attrs[] = {
300  { "2.5.4.6", CERT_RDN_PRINTABLE_STRING,
301  { sizeof(bin1), bin1 }, usW, FALSE },
302  { "2.5.4.8", CERT_RDN_PRINTABLE_STRING,
303  { sizeof(bin2), bin2 }, minnesotaW, FALSE },
304  { "2.5.4.7", CERT_RDN_PRINTABLE_STRING,
305  { sizeof(bin3), bin3 }, minneapolisW, FALSE },
306  { "2.5.4.10", CERT_RDN_PRINTABLE_STRING,
307  { sizeof(bin4), bin4 }, codeweaversW, FALSE },
308  { "2.5.4.11", CERT_RDN_PRINTABLE_STRING,
309  { sizeof(bin5), bin5 }, wineDevW, FALSE },
310  { "2.5.4.3", CERT_RDN_PRINTABLE_STRING,
311  { sizeof(bin6), bin6 }, localhostW, FALSE },
312  { "1.2.840.113549.1.9.1", CERT_RDN_IA5_STRING,
313  { sizeof(bin7), bin7 }, aricW, FALSE },
315  { sizeof(bin9), bin9 }, embeddedDoubleQuoteW, FALSE },
317  { sizeof(bin10), bin10 }, embeddedSingleQuoteW, FALSE },
319  { sizeof(bin11), bin11 }, embeddedCommaW, FALSE },
321  { sizeof(bin12), bin12 }, trailingAndEndingSpaceW, FALSE },
323  { sizeof(bin13), bin13 }, enclosingQuotesW, FALSE },
325  { sizeof(bin14), bin14 }, embeddedSemiW, FALSE },
326  };
327  DWORD i, ret;
328  WCHAR buffer[2000];
329  CERT_RDN_VALUE_BLOB blob = { 0, NULL };
330 
331  if (!pCertRDNValueToStrW)
332  {
333  win_skip("CertRDNValueToStrW is not available\n");
334  return;
335  }
336 
337  /* This crashes
338  ret = pCertRDNValueToStrW(0, NULL, NULL, 0);
339  */
340  /* With empty input, it generates the empty string */
341  SetLastError(0xdeadbeef);
342  ret = pCertRDNValueToStrW(0, &blob, NULL, 0);
343  ok(ret == 1 && GetLastError() == 0xdeadbeef, "Expected empty string\n");
344  ret = pCertRDNValueToStrW(0, &blob, buffer, ARRAY_SIZE(buffer));
345  ok(ret == 1 && GetLastError() == 0xdeadbeef, "Expected empty string\n");
346  ok(!buffer[0], "Expected empty string\n");
347 
348  for (i = 0; i < ARRAY_SIZE(attrs); i++)
349  {
350  ret = pCertRDNValueToStrW(attrs[i].dwValueType, &attrs[i].Value, buffer, ARRAY_SIZE(buffer));
351  todo_wine_if (attrs[i].todo)
352  {
353  ok(ret == lstrlenW(attrs[i].str) + 1,
354  "Expected length %d, got %d\n", lstrlenW(attrs[i].str) + 1, ret);
355  ok(!lstrcmpW(buffer, attrs[i].str), "Expected %s, got %s\n",
357  }
358  }
359  blob.pbData = bin8;
360  blob.cbData = sizeof(bin8);
361  ret = pCertRDNValueToStrW(CERT_RDN_UTF8_STRING, &blob, buffer,
362  sizeof(buffer));
363  ok(ret == lstrlenW(ePKIW) + 1 || broken(ret != lstrlenW(ePKIW) + 1),
364  "Expected length %d, got %d\n", lstrlenW(ePKIW), ret);
365  if (ret == lstrlenW(ePKIW) + 1)
366  ok(!lstrcmpW(buffer, ePKIW), "Expected %s, got %s\n",
368 }
static BYTE bin4[]
Definition: str.c:50
_In_opt_ ULONG _Out_ PULONG Value
Definition: rtlfuncs.h:2343
static const WCHAR localhostW[]
Definition: notification.c:35
static BYTE bin10[]
Definition: str.c:65
Definition: image.c:133
char * wine_dbgstr_w(const wchar_t *wstr)
Definition: atltest.h:87
int WINAPI lstrcmpW(LPCWSTR lpString1, LPCWSTR lpString2)
Definition: lstring.c:170
#define CERT_RDN_IA5_STRING
Definition: wincrypt.h:2784
BOOL todo
Definition: filedlg.c:313
DWORD WINAPI GetLastError(VOID)
Definition: except.c:1059
GLuint buffer
Definition: glext.h:5915
static BYTE bin8[]
Definition: str.c:58
#define lstrlenW
Definition: compat.h:415
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint i
Definition: glfuncs.h:248
static BYTE bin13[]
Definition: str.c:68
static BYTE bin5[]
Definition: str.c:52
smooth NULL
Definition: ftsmooth.c:416
static BYTE bin14[]
Definition: str.c:69
#define todo_wine_if(is_todo)
Definition: test.h:164
static BYTE bin3[]
Definition: str.c:48
static DWORD DWORD void LPSTR str
Definition: str.c:201
__wchar_t WCHAR
Definition: xmlstorage.h:180
static BYTE bin7[]
Definition: str.c:56
unsigned long DWORD
Definition: ntddk_ex.h:95
#define SetLastError(x)
Definition: compat.h:417
#define CERT_RDN_UTF8_STRING
Definition: wincrypt.h:2793
static BYTE bin12[]
Definition: str.c:67
static BYTE bin6[]
Definition: str.c:54
static BYTE bin9[]
Definition: str.c:64
int ret
static BYTE bin2[]
Definition: str.c:46
#define broken(x)
Definition: _sntprintf.h:21
#define ARRAY_SIZE(a)
Definition: main.h:24
#define ok(value,...)
Definition: atltest.h:57
static BYTE bin1[]
Definition: str.c:45
static BYTE bin11[]
Definition: str.c:66
#define win_skip
Definition: test.h:150
#define CERT_RDN_PRINTABLE_STRING
Definition: wincrypt.h:2780

Referenced by START_TEST().

◆ test_CertStrToNameA()

static void test_CertStrToNameA ( void  )
static

Definition at line 730 of file str.c.

731 {
732  BOOL ret;
733  DWORD size, i;
734  BYTE buf[100];
735 
736  if (!pCertStrToNameA)
737  {
738  win_skip("CertStrToNameA is not available\n");
739  return;
740  }
741 
742  /* Crash
743  ret = pCertStrToNameA(0, NULL, 0, NULL, NULL, NULL, NULL);
744  */
745  ret = pCertStrToNameA(0, NULL, 0, NULL, NULL, &size, NULL);
746  ok(!ret, "Expected failure\n");
747  ret = pCertStrToNameA(0, "bogus", 0, NULL, NULL, &size, NULL);
749  "Expected CRYPT_E_INVALID_X500_STRING, got %08x\n", GetLastError());
750  ret = pCertStrToNameA(0, "foo=1", 0, NULL, NULL, &size, NULL);
752  "Expected CRYPT_E_INVALID_X500_STRING, got %08x\n", GetLastError());
753  ret = pCertStrToNameA(0, "CN=1", 0, NULL, NULL, &size, NULL);
755  "Expected ERROR_FILE_NOT_FOUND, got %08x\n", GetLastError());
756  ret = pCertStrToNameA(X509_ASN_ENCODING, "CN=1", 0, NULL, NULL, &size, NULL);
757  ok(ret, "CertStrToNameA failed: %08x\n", GetLastError());
758  size = sizeof(buf);
759  ret = pCertStrToNameA(X509_ASN_ENCODING, "CN=\"\"1\"\"", 0, NULL, buf, &size,
760  NULL);
762  "Expected CRYPT_E_INVALID_X500_STRING, got %08x\n", GetLastError());
763  ret = pCertStrToNameA(X509_ASN_ENCODING, "CN=1+2", 0, NULL, buf,
764  &size, NULL);
766  "Expected CRYPT_E_INVALID_X500_STRING, got %08x\n", GetLastError());
767  ret = pCertStrToNameA(X509_ASN_ENCODING, "CN=1+2", CERT_NAME_STR_NO_PLUS_FLAG, NULL, buf,
768  &size, NULL);
770  "Expected ERROR_SUCCESS, got %08x\n", GetLastError());
771  ret = pCertStrToNameA(X509_ASN_ENCODING, "CN=1,2", CERT_NAME_STR_NO_QUOTING_FLAG, NULL, buf,
772  &size, NULL);
774  "Expected CRYPT_E_INVALID_X500_STRING, got %08x\n", GetLastError());
775  ret = pCertStrToNameA(X509_ASN_ENCODING, "CN=\"1,2;3,4\"", CERT_NAME_STR_NO_QUOTING_FLAG, NULL, buf,
776  &size, NULL);
778  "Expected CRYPT_E_INVALID_X500_STRING, got %08x\n", GetLastError());
779  ret = pCertStrToNameA(X509_ASN_ENCODING, "CN=abc", 0, NULL, buf,
780  &size, NULL);
782  "Expected ERROR_SUCCESS, got %08x\n", GetLastError());
783  ret = pCertStrToNameA(X509_ASN_ENCODING, "CN=abc", CERT_NAME_STR_NO_QUOTING_FLAG, NULL, buf,
784  &size, NULL);
786  "Expected ERROR_SUCCESS, got %08x\n", GetLastError());
787  ret = pCertStrToNameA(X509_ASN_ENCODING, "CN=\"abc\"", 0, NULL, buf,
788  &size, NULL);
790  "Expected ERROR_SUCCESS, got %08x\n", GetLastError());
791  ret = pCertStrToNameA(X509_ASN_ENCODING, "CN=\"abc\"", CERT_NAME_STR_NO_QUOTING_FLAG, NULL, buf,
792  &size, NULL);
794  "Expected ERROR_MORE_DATA, got %08x\n", GetLastError());
795  for (i = 0; i < ARRAY_SIZE(namesA); i++)
796  {
797  size = sizeof(buf);
798  ret = pCertStrToNameA(X509_ASN_ENCODING, namesA[i].x500, 0, NULL, buf,
799  &size, NULL);
800  ok(ret, "CertStrToNameA failed on string %s: %08x\n", namesA[i].x500,
801  GetLastError());
802  ok(size == namesA[i].encodedSize,
803  "Expected size %d, got %d\n", namesA[i].encodedSize, size);
804  if (ret)
805  ok(!memcmp(buf, namesA[i].encoded, namesA[i].encodedSize),
806  "Unexpected value for string %s\n", namesA[i].x500);
807  }
808 }
int memcmp(void *Buffer1, void *Buffer2, ACPI_SIZE Count)
Definition: utclib.c:112
#define ERROR_SUCCESS
Definition: deptool.c:10
GLenum GLuint GLenum GLsizei const GLchar * buf
Definition: glext.h:7751
DWORD WINAPI GetLastError(VOID)
Definition: except.c:1059
#define CRYPT_E_INVALID_X500_STRING
Definition: winerror.h:3027
#define CERT_NAME_STR_NO_QUOTING_FLAG
Definition: wincrypt.h:3489
#define X509_ASN_ENCODING
Definition: wincrypt.h:2297
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint i
Definition: glfuncs.h:248
unsigned int BOOL
Definition: ntddk_ex.h:94
smooth NULL
Definition: ftsmooth.c:416
#define ERROR_FILE_NOT_FOUND
Definition: disk.h:79
#define CERT_NAME_STR_NO_PLUS_FLAG
Definition: wincrypt.h:3488
GLsizeiptr size
Definition: glext.h:5919
unsigned long DWORD
Definition: ntddk_ex.h:95
int ret
unsigned char BYTE
Definition: mem.h:68
#define ERROR_MORE_DATA
Definition: dderror.h:13
static const struct StrToNameA namesA[]
Definition: str.c:712
#define ARRAY_SIZE(a)
Definition: main.h:24
#define ok(value,...)
Definition: atltest.h:57
#define win_skip
Definition: test.h:150

Referenced by START_TEST().

◆ test_CertStrToNameW()

static void test_CertStrToNameW ( void  )
static

Definition at line 847 of file str.c.

848 {
849  static const WCHAR bogusW[] = { 'b','o','g','u','s',0 };
850  static const WCHAR fooW[] = { 'f','o','o','=','1',0 };
851  BOOL ret;
852  DWORD size, i;
853  LPCWSTR errorPtr;
854  BYTE buf[100];
855 
856  if (!pCertStrToNameW)
857  {
858  win_skip("CertStrToNameW is not available\n");
859  return;
860  }
861 
862  /* Crash
863  ret = pCertStrToNameW(0, NULL, 0, NULL, NULL, NULL, NULL);
864  */
865  ret = pCertStrToNameW(0, NULL, 0, NULL, NULL, &size, NULL);
866  ok(!ret, "Expected failure\n");
867  ret = pCertStrToNameW(0, bogusW, 0, NULL, NULL, &size, NULL);
869  "Expected CRYPT_E_INVALID_X500_STRING, got %08x\n", GetLastError());
870  ret = pCertStrToNameW(0, fooW, 0, NULL, NULL, &size, NULL);
872  "Expected CRYPT_E_INVALID_X500_STRING, got %08x\n", GetLastError());
873  ret = pCertStrToNameW(0, simpleCN_W, 0, NULL, NULL, &size, NULL);
875  "Expected ERROR_FILE_NOT_FOUND, got %08x\n", GetLastError());
876  ret = pCertStrToNameW(X509_ASN_ENCODING, simpleCN_W, 0, NULL, NULL, &size,
877  NULL);
878  ok(ret, "CertStrToNameW failed: %08x\n", GetLastError());
879  size = sizeof(buf);
880  ret = pCertStrToNameW(X509_ASN_ENCODING, badlyQuotedCN_W, 0, NULL, buf,
881  &size, NULL);
883  "Expected CRYPT_E_INVALID_X500_STRING, got %08x\n", GetLastError());
884  ret = pCertStrToNameW(X509_ASN_ENCODING, badlyQuotedCN_W, 0, NULL, buf,
885  &size, &errorPtr);
887  "Expected CRYPT_E_INVALID_X500_STRING, got %08x\n", GetLastError());
888  ok(errorPtr && *errorPtr == '1', "Expected first error character was 1\n");
889  for (i = 0; i < ARRAY_SIZE(namesW); i++)
890  {
891  size = sizeof(buf);
892  ret = pCertStrToNameW(X509_ASN_ENCODING, namesW[i].x500, 0, NULL, buf,
893  &size, NULL);
894  ok(ret, "Index %d: CertStrToNameW failed: %08x\n", i, GetLastError());
895  ok(size == namesW[i].encodedSize,
896  "Index %d: expected size %d, got %d\n", i, namesW[i].encodedSize,
897  size);
898  if (ret)
899  ok(!memcmp(buf, namesW[i].encoded, size),
900  "Index %d: unexpected value for string %s\n", i, wine_dbgstr_w(namesW[i].x500));
901  }
902 }
int memcmp(void *Buffer1, void *Buffer2, ACPI_SIZE Count)
Definition: utclib.c:112
const WCHAR * LPCWSTR
Definition: xmlstorage.h:185
GLenum GLuint GLenum GLsizei const GLchar * buf
Definition: glext.h:7751
char * wine_dbgstr_w(const wchar_t *wstr)
Definition: atltest.h:87
DWORD WINAPI GetLastError(VOID)
Definition: except.c:1059
#define CRYPT_E_INVALID_X500_STRING
Definition: winerror.h:3027
#define X509_ASN_ENCODING
Definition: wincrypt.h:2297
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint i
Definition: glfuncs.h:248
unsigned int BOOL
Definition: ntddk_ex.h:94
smooth NULL
Definition: ftsmooth.c:416
#define ERROR_FILE_NOT_FOUND
Definition: disk.h:79
GLsizeiptr size
Definition: glext.h:5919
static const struct StrToNameW namesW[]
Definition: str.c:828
__wchar_t WCHAR
Definition: xmlstorage.h:180
static const WCHAR fooW[]
Definition: locale.c:44
unsigned long DWORD
Definition: ntddk_ex.h:95
static const WCHAR badlyQuotedCN_W[]
Definition: str.c:817
int ret
unsigned char BYTE
Definition: mem.h:68
static const WCHAR simpleCN_W[]
Definition: str.c:560
#define ARRAY_SIZE(a)
Definition: main.h:24
#define ok(value,...)
Definition: atltest.h:57
#define win_skip
Definition: test.h:150

Referenced by START_TEST().

◆ test_NameToStrConversionA()

static void test_NameToStrConversionA ( PCERT_NAME_BLOB  pName,
DWORD  dwStrType,
LPCSTR  expected,
BOOL  todo 
)
static

Definition at line 370 of file str.c.

372 {
373  char buffer[2000] = { 0 };
374  DWORD i;
375 
376  i = pCertNameToStrA(X509_ASN_ENCODING, pName, dwStrType, NULL, 0);
378  ok(i == strlen(expected) + 1, "Expected %d chars, got %d\n",
379  lstrlenA(expected) + 1, i);
380  i = pCertNameToStrA(X509_ASN_ENCODING,pName, dwStrType, buffer,
381  sizeof(buffer));
383  ok(i == strlen(expected) + 1, "Expected %d chars, got %d\n",
384  lstrlenA(expected) + 1, i);
386  ok(!strcmp(buffer, expected), "Expected %s, got %s\n", expected,
387  buffer);
388 }
ACPI_SIZE strlen(const char *String)
Definition: utclib.c:269
BOOL todo
Definition: filedlg.c:313
GLuint buffer
Definition: glext.h:5915
#define X509_ASN_ENCODING
Definition: wincrypt.h:2297
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint i
Definition: glfuncs.h:248
smooth NULL
Definition: ftsmooth.c:416
#define todo_wine_if(is_todo)
Definition: test.h:164
static LPSTR pName
Definition: security.c:75
static LPCSTR DWORD dwStrType
Definition: str.c:196
unsigned long DWORD
Definition: ntddk_ex.h:95
int WINAPI lstrlenA(LPCSTR lpString)
Definition: lstring.c:145
#define ok(value,...)
Definition: atltest.h:57
int strcmp(const char *String1, const char *String2)
Definition: utclib.c:469
BOOL expected
Definition: store.c:2063

Referenced by test_CertNameToStrA().

◆ test_NameToStrConversionW()

static void test_NameToStrConversionW ( PCERT_NAME_BLOB  pName,
DWORD  dwStrType,
LPCWSTR  expected,
BOOL  todo 
)
static

Definition at line 541 of file str.c.

543 {
544  WCHAR buffer[2000] = { 0 };
545  DWORD i;
546 
547  i = pCertNameToStrW(X509_ASN_ENCODING,pName, dwStrType, NULL, 0);
549  ok(i == lstrlenW(expected) + 1, "Expected %d chars, got %d\n",
550  lstrlenW(expected) + 1, i);
551  i = pCertNameToStrW(X509_ASN_ENCODING,pName, dwStrType, buffer, ARRAY_SIZE(buffer));
553  ok(i == lstrlenW(expected) + 1, "Expected %d chars, got %d\n",
554  lstrlenW(expected) + 1, i);
556  ok(!lstrcmpW(buffer, expected), "Expected %s, got %s\n",
558 }
char * wine_dbgstr_w(const wchar_t *wstr)
Definition: atltest.h:87
int WINAPI lstrcmpW(LPCWSTR lpString1, LPCWSTR lpString2)
Definition: lstring.c:170
BOOL todo
Definition: filedlg.c:313
GLuint buffer
Definition: glext.h:5915
#define lstrlenW
Definition: compat.h:415
#define X509_ASN_ENCODING
Definition: wincrypt.h:2297
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint i
Definition: glfuncs.h:248
smooth NULL
Definition: ftsmooth.c:416
#define todo_wine_if(is_todo)
Definition: test.h:164
static LPSTR pName
Definition: security.c:75
static LPCSTR DWORD dwStrType
Definition: str.c:196
__wchar_t WCHAR
Definition: xmlstorage.h:180
unsigned long DWORD
Definition: ntddk_ex.h:95
#define ARRAY_SIZE(a)
Definition: main.h:24
#define ok(value,...)
Definition: atltest.h:57
BOOL expected
Definition: store.c:2063

Referenced by test_CertNameToStrW().

Variable Documentation

◆ badlyQuotedCN_W

const WCHAR badlyQuotedCN_W[] = { 'C','N','=','"','"','1','"','"',0 }
static

Definition at line 817 of file str.c.

Referenced by test_CertStrToNameW().

◆ bin1

BYTE bin1[] = { 0x55, 0x53 }
static

Definition at line 45 of file str.c.

Referenced by test_CertRDNValueToStrA(), and test_CertRDNValueToStrW().

◆ bin10

BYTE bin10[] = { 0x61, 0x62, 0x63, 0x27, 0x64, 0x65, 0x66 }
static

Definition at line 65 of file str.c.

Referenced by test_CertRDNValueToStrA(), and test_CertRDNValueToStrW().

◆ bin11

BYTE bin11[] = { 0x61, 0x62, 0x63, 0x2c, 0x20, 0x64, 0x65, 0x66 }
static

Definition at line 66 of file str.c.

Referenced by test_CertRDNValueToStrA(), and test_CertRDNValueToStrW().

◆ bin12

BYTE bin12[] = { 0x20, 0x61, 0x62, 0x63, 0x20 }
static

Definition at line 67 of file str.c.

Referenced by test_CertRDNValueToStrA(), and test_CertRDNValueToStrW().

◆ bin13

BYTE bin13[] = { 0x22, 0x64, 0x65, 0x66, 0x22 }
static

Definition at line 68 of file str.c.

Referenced by test_CertRDNValueToStrA(), and test_CertRDNValueToStrW().

◆ bin14

BYTE bin14[] = { 0x31, 0x3b, 0x33 }
static

Definition at line 69 of file str.c.

Referenced by test_CertRDNValueToStrA(), and test_CertRDNValueToStrW().

◆ bin2

BYTE bin2[]
static
Initial value:
= { 0x4d, 0x69, 0x6e, 0x6e, 0x65, 0x73, 0x6f, 0x74,
0x61 }

Definition at line 46 of file str.c.

Referenced by test_CertRDNValueToStrA(), and test_CertRDNValueToStrW().

◆ bin3

BYTE bin3[]
static
Initial value:
= { 0x4d, 0x69, 0x6e, 0x6e, 0x65, 0x61, 0x70, 0x6f,
0x6c, 0x69, 0x73 }

Definition at line 48 of file str.c.

Referenced by test_CertRDNValueToStrA(), and test_CertRDNValueToStrW().

◆ bin4

BYTE bin4[]
static
Initial value:
= { 0x43, 0x6f, 0x64, 0x65, 0x57, 0x65, 0x61, 0x76,
0x65, 0x72, 0x73 }

Definition at line 50 of file str.c.

Referenced by test_CertRDNValueToStrA(), and test_CertRDNValueToStrW().

◆ bin5

BYTE bin5[]
static
Initial value:
= { 0x57, 0x69, 0x6e, 0x65, 0x20, 0x44, 0x65, 0x76,
0x65, 0x6c, 0x6f, 0x70, 0x6d, 0x65, 0x6e, 0x74 }

Definition at line 52 of file str.c.

Referenced by test_CertRDNValueToStrA(), and test_CertRDNValueToStrW().

◆ bin6

BYTE bin6[]
static
Initial value:
= { 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x68, 0x6f, 0x73,
0x74 }

Definition at line 54 of file str.c.

Referenced by test_CertRDNValueToStrA(), and test_CertRDNValueToStrW().

◆ bin7

BYTE bin7[]
static
Initial value:
= { 0x61, 0x72, 0x69, 0x63, 0x40, 0x63, 0x6f, 0x64,
0x65, 0x77, 0x65, 0x61, 0x76, 0x65, 0x72, 0x73, 0x2e, 0x63, 0x6f, 0x6d }

Definition at line 56 of file str.c.

Referenced by test_CertRDNValueToStrA(), and test_CertRDNValueToStrW().

◆ bin8

BYTE bin8[]
static
Initial value:
= {
0x65,0x00,0x50,0x00,0x4b,0x00,0x49,0x00,0x20,0x00,0x52,0x00,0x6f,0x00,0x6f,
0x00,0x74,0x00,0x20,0x00,0x43,0x00,0x65,0x00,0x72,0x00,0x74,0x00,0x69,0x00,
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 }

Definition at line 58 of file str.c.

Referenced by test_CertRDNValueToStrA(), and test_CertRDNValueToStrW().

◆ bin9

BYTE bin9[] = { 0x61, 0x62, 0x63, 0x22, 0x64, 0x65, 0x66 }
static

Definition at line 64 of file str.c.

Referenced by test_CertRDNValueToStrA(), and test_CertRDNValueToStrW().

◆ cch

◆ cert

const BYTE cert[]
static

◆ commaCN_W

const WCHAR commaCN_W[] = { 'C','N','=','"','a',',','b','"',0 }
static

Definition at line 569 of file str.c.

Referenced by test_CertNameToStrW().

◆ dll

◆ dummyCN_W

const WCHAR dummyCN_W[] = { 'C','N','=','d','u','m','m','y',',','T','=','t','e','s','t',0 }
static

Definition at line 821 of file str.c.

◆ DWORD

Definition at line 189 of file str.c.

◆ dwStrType

◆ encodedCommaCN

BYTE encodedCommaCN[]
static
Initial value:
= {
0x30,0x0e,0x31,0x0c,0x30,0x0a,0x06,0x03,0x55,0x04,0x03,0x13,0x03,0x61,0x2c,
0x62 }

Definition at line 400 of file str.c.

Referenced by test_CertNameToStrA(), and test_CertNameToStrW().

◆ encodedDummyCN

BYTE encodedDummyCN[]
static
Initial value:
= {
0x30,0x1F,0x31,0x0E,0x30,0x0C,0x06,0x03,0x55,0x04,0x03,0x13,0x05,0x64,0x75,
0x6D,0x6D,0x79,0x31,0x0D,0x30,0x0B,0x06,0x03,0x55,0x04,0x0C,0x13,0x04,0x74,
0x65,0x73,0x74 }

Definition at line 421 of file str.c.

◆ encodedEqualCN

BYTE encodedEqualCN[]
static
Initial value:
= {
0x30,0x0e,0x31,0x0c,0x30,0x0a,0x06,0x03,0x55,0x04,0x03,0x13,0x03,0x61,0x3d,
0x62 }

Definition at line 403 of file str.c.

Referenced by test_CertNameToStrA(), and test_CertNameToStrW().

◆ encodedFields

BYTE encodedFields[]
static
Initial value:
= {
0x30,0x2F,0x31,0x12,0x30,0x10,0x06,0x03,0x55,0x04,0x03,0x13,0x09,0x57,0x69,
0x6E,0x65,0x20,0x54,0x65,0x73,0x74,0x31,0x0C,0x30,0x0A,0x06,0x03,0x55,0x04,
0x0C,0x13,0x03,0x31,0x32,0x33,0x31,0x0B,0x30,0x09,0x06,0x03,0x55,0x04,0x06,
0x13,0x02,0x42,0x52 }

Definition at line 425 of file str.c.

◆ encodedFields_W

const WCHAR encodedFields_W[]
static
Initial value:
= { ' ','C','N',' ','=',' ',' ',' ','W','i','n','e',' ','T',
'e','s','t',',','T',' ','=',' ','1','2','3',',',' ','C',
' ','=',' ','B','R',0 }

Definition at line 822 of file str.c.

◆ encodedGreaterThanCN

BYTE encodedGreaterThanCN[]
static
Initial value:
= {
0x30,0x0d,0x31,0x0b,0x30,0x09,0x06,0x03,0x55,0x04,0x03,0x1e,0x02,0x00,0x3e
}

Definition at line 409 of file str.c.

Referenced by test_CertNameToStrA(), and test_CertNameToStrW().

◆ encodedHashCN

BYTE encodedHashCN[]
static
Initial value:
= {
0x30,0x0d,0x31,0x0b,0x30,0x09,0x06,0x03,0x55,0x04,0x03,0x1e,0x02,0x00,0x23
}

Definition at line 412 of file str.c.

Referenced by test_CertNameToStrA(), and test_CertNameToStrW().

◆ encodedJapaneseCN

const BYTE encodedJapaneseCN[]
static
Initial value:
= { 0x30,0x0f,0x31,0x0d,0x30,0x0b,0x06,
0x03,0x55,0x04,0x03,0x1e,0x04,0x22,0x6f,0x57,0x5b }

Definition at line 825 of file str.c.

◆ encodedLessThanCN

BYTE encodedLessThanCN[]
static
Initial value:
= {
0x30,0x0d,0x31,0x0b,0x30,0x09,0x06,0x03,0x55,0x04,0x03,0x1e,0x02,0x00,0x3c
}

Definition at line 406 of file str.c.

Referenced by test_CertNameToStrA(), and test_CertNameToStrW().

◆ encodedMultipleAttrCN

BYTE encodedMultipleAttrCN[]
static
Initial value:
= { 0x30,0x0e,0x31,0x0c,0x30,0x0a,
0x06,0x03,0x55,0x04,0x03,0x13,0x03,0x31,0x2b,0x32 }

Definition at line 398 of file str.c.

Referenced by test_CertNameToStrA(), and test_CertNameToStrW().

◆ encodedNewlineCN

BYTE encodedNewlineCN[]
static
Initial value:
= {
0x30,0x11,0x31,0x0f,0x30,0x0d,0x06,0x03,0x55,0x04,0x03,0x1e,0x06,0x00,0x61,
0x00,0x0a,0x00,0x62 }

Definition at line 418 of file str.c.

Referenced by test_CertNameToStrA(), and test_CertNameToStrW().

◆ encodedQuotedCN

BYTE encodedQuotedCN[]
static
Initial value:
= { 0x30,0x11,0x31,0x0f,0x30,0x0d,0x06,0x03,
0x55, 0x04,0x03,0x1e,0x06,0x00,0x22,0x00,0x31,0x00,0x22, }

Definition at line 396 of file str.c.

Referenced by test_CertNameToStrA(), and test_CertNameToStrW().

◆ encodedSemiCN

BYTE encodedSemiCN[]
static
Initial value:
= {
0x30,0x0d,0x31,0x0b,0x30,0x09,0x06,0x03,0x55,0x04,0x03,0x1e,0x02,0x00,0x3b
}

Definition at line 415 of file str.c.

Referenced by test_CertNameToStrA(), and test_CertNameToStrW().

◆ encodedSimpleCN

BYTE encodedSimpleCN[]
static
Initial value:
= {
0x30,0x0c,0x31,0x0a,0x30,0x08,0x06,0x03,0x55,0x04,0x03,0x13,0x01,0x31 }

Definition at line 390 of file str.c.

Referenced by test_CertNameToStrA(), and test_CertNameToStrW().

◆ encodedSingleQuotedCN

BYTE encodedSingleQuotedCN[]
static
Initial value:
= { 0x30,0x0e,0x31,0x0c,0x30,0x0a,
0x06,0x03,0x55,0x04,0x03,0x13,0x03,0x27,0x31,0x27 }

Definition at line 392 of file str.c.

Referenced by test_CertNameToStrA(), and test_CertNameToStrW().

◆ encodedSpacedCN

BYTE encodedSpacedCN[]
static
Initial value:
= { 0x30,0x0e,0x31,0x0c,0x30,0x0a,0x06,0x03,
0x55,0x04,0x03,0x13,0x03,0x20,0x31,0x20 }

Definition at line 394 of file str.c.

Referenced by test_CertNameToStrA(), and test_CertNameToStrW().

◆ equalCN_W

const WCHAR equalCN_W[] = { 'C','N','=','"','a','=','b','"',0 }
static

Definition at line 571 of file str.c.

Referenced by test_CertNameToStrW().

◆ flags

Definition at line 201 of file str.c.

◆ greaterThanCN_W

const WCHAR greaterThanCN_W[] = { 'C','N','=','"','>','"',0 }
static

Definition at line 575 of file str.c.

Referenced by test_CertNameToStrW().

◆ hashCN_W

const WCHAR hashCN_W[] = { 'C','N','=','"','#','"',0 }
static

Definition at line 577 of file str.c.

Referenced by test_CertNameToStrW().

◆ issuerStr

char issuerStr[]
static
Initial value:
=
"US, Minnesota, Minneapolis, CodeWeavers, Wine Development, localhost, aric@codeweavers.com"

Definition at line 118 of file str.c.

Referenced by test_CertGetNameStringA(), and test_CertNameToStrA().

◆ issuerStrCRLF

char issuerStrCRLF[]
static
Initial value:
=
"US\r\nMinnesota\r\nMinneapolis\r\nCodeWeavers\r\nWine Development\r\nlocalhost\r\naric@codeweavers.com"

Definition at line 122 of file str.c.

Referenced by test_CertNameToStrA().

◆ issuerStrCRLFW

WCHAR issuerStrCRLFW[]
static
Initial value:
= {
'U','S','\r','\n','M','i','n','n','e','s','o','t','a','\r','\n','M','i','n',
'n','e','a','p','o','l','i','s','\r','\n','C','o','d','e','W','e','a','v','e',
'r','s','\r','\n','W','i','n','e',' ','D','e','v','e','l','o','p','m','e','n',
't','\r','\n','l','o','c','a','l','h','o','s','t','\r','\n','a','r','i','c',
'@','c','o','d','e','w','e','a','v','e','r','s','.','c','o','m',0 }

Definition at line 144 of file str.c.

Referenced by test_CertNameToStrW().

◆ issuerStrSemicolon

char issuerStrSemicolon[]
static
Initial value:
=
"US; Minnesota; Minneapolis; CodeWeavers; Wine Development; localhost; aric@codeweavers.com"

Definition at line 120 of file str.c.

Referenced by test_CertNameToStrA().

◆ issuerStrSemicolonW

WCHAR issuerStrSemicolonW[]
static
Initial value:
= {
'U','S',';',' ','M','i','n','n','e','s','o','t','a',';',' ','M','i','n','n',
'e','a','p','o','l','i','s',';',' ','C','o','d','e','W','e','a','v','e','r',
's',';',' ','W','i','n','e',' ','D','e','v','e','l','o','p','m','e','n','t',
';',' ','l','o','c','a','l','h','o','s','t',';',' ','a','r','i','c','@','c',
'o','d','e','w','e','a','v','e','r','s','.','c','o','m',0 }

Definition at line 138 of file str.c.

Referenced by test_CertNameToStrW().

◆ issuerStrW

WCHAR issuerStrW[]
static
Initial value:
= {
'U','S',',',' ','M','i','n','n','e','s','o','t','a',',',' ','M','i','n','n',
'e','a','p','o','l','i','s',',',' ','C','o','d','e','W','e','a','v','e','r',
's',',',' ','W','i','n','e',' ','D','e','v','e','l','o','p','m','e','n','t',
',',' ','l','o','c','a','l','h','o','s','t',',',' ','a','r','i','c','@','c',
'o','d','e','w','e','a','v','e','r','s','.','c','o','m',0 }

Definition at line 132 of file str.c.

Referenced by test_CertNameToStrW().

◆ japaneseCN_W

const WCHAR japaneseCN_W[] = { 'C','N','=',0x226f,0x575b,0 }
static

Definition at line 820 of file str.c.

◆ lessThanCN_W

const WCHAR lessThanCN_W[] = { 'C','N','=','"','<','"',0 }
static

Definition at line 573 of file str.c.

Referenced by test_CertNameToStrW().

◆ LPSTR

Definition at line 189 of file str.c.

Referenced by CRYPT_ValueToRDN().

◆ LPVOID

Definition at line 189 of file str.c.

◆ LPWSTR

Definition at line 190 of file str.c.

Referenced by CRYPT_EncodeValueWithType().

◆ multipleAttrCN_W

const WCHAR multipleAttrCN_W[] = { 'C','N','=','"','1','+','2','"',0 }
static

Definition at line 567 of file str.c.

Referenced by test_CertNameToStrW().

◆ namesA

const struct StrToNameA namesA[]
static
Initial value:
= {
{ "CN=1", sizeof(encodedSimpleCN), encodedSimpleCN },
{ "CN=\"1\"", sizeof(encodedSimpleCN), encodedSimpleCN },
{ "CN = \"1\"", sizeof(encodedSimpleCN), encodedSimpleCN },
{ "CN=\" 1 \"", sizeof(encodedSpacedCN), encodedSpacedCN },
{ "CN=\"\"\"1\"\"\"", sizeof(encodedQuotedCN), encodedQuotedCN },
{ "CN=\"1+2\"", sizeof(encodedMultipleAttrCN), encodedMultipleAttrCN },
{ "CN=\"a,b\"", sizeof(encodedCommaCN), encodedCommaCN },
{ "CN=\"a=b\"", sizeof(encodedEqualCN), encodedEqualCN },
{ "CN=\"<\"", sizeof(encodedLessThanCN), encodedLessThanCN },
{ "CN=\">\"", sizeof(encodedGreaterThanCN), encodedGreaterThanCN },
{ "CN=\"#\"", sizeof(encodedHashCN), encodedHashCN },
{ "CN=\";\"", sizeof(encodedSemiCN), encodedSemiCN },
{ "CN=dummy,T=test", sizeof(encodedDummyCN), encodedDummyCN },
{ " CN = Wine Test,T = 123, C = BR", sizeof(encodedFields), encodedFields },
}
static BYTE encodedSingleQuotedCN[]
Definition: str.c:392
static BYTE encodedDummyCN[]
Definition: str.c:421
static BYTE encodedSimpleCN[]
Definition: str.c:390
static BYTE encodedCommaCN[]
Definition: str.c:400
static BYTE encodedEqualCN[]
Definition: str.c:403
static BYTE encodedSemiCN[]
Definition: str.c:415
static BYTE encodedGreaterThanCN[]
Definition: str.c:409
static BYTE encodedHashCN[]
Definition: str.c:412
static BYTE encodedLessThanCN[]
Definition: str.c:406
static BYTE encodedFields[]
Definition: str.c:425
static BYTE encodedMultipleAttrCN[]
Definition: str.c:398
static BYTE encodedSpacedCN[]
Definition: str.c:394
static BYTE encodedQuotedCN[]
Definition: str.c:396

Definition at line 712 of file str.c.

Referenced by test_CertStrToNameA().

◆ namesW

const struct StrToNameW namesW[]
static
Initial value:
= {
}
static const WCHAR equalCN_W[]
Definition: str.c:571
static const WCHAR hashCN_W[]
Definition: str.c:577
static BYTE encodedSingleQuotedCN[]
Definition: str.c:392
static BYTE encodedDummyCN[]
Definition: str.c:421
static const WCHAR greaterThanCN_W[]
Definition: str.c:575
static BYTE encodedSimpleCN[]
Definition: str.c:390
static BYTE encodedCommaCN[]
Definition: str.c:400
static BYTE encodedEqualCN[]
Definition: str.c:403
static BYTE encodedSemiCN[]
Definition: str.c:415
static const WCHAR commaCN_W[]
Definition: str.c:569
static const WCHAR dummyCN_W[]
Definition: str.c:821
static const WCHAR encodedFields_W[]
Definition: str.c:822
static const WCHAR quotedCN_W[]
Definition: str.c:565
static const WCHAR multipleAttrCN_W[]
Definition: str.c:567
static const WCHAR japaneseCN_W[]
Definition: str.c:820
static BYTE encodedGreaterThanCN[]
Definition: str.c:409
static BYTE encodedHashCN[]
Definition: str.c:412
static const WCHAR lessThanCN_W[]
Definition: str.c:573
static BYTE encodedLessThanCN[]
Definition: str.c:406
static const WCHAR spacedCN_W[]
Definition: str.c:563
static const WCHAR simpleCN_W[]
Definition: str.c:560
static BYTE encodedFields[]
Definition: str.c:425
static const WCHAR semiCN_W[]
Definition: str.c:579
static const WCHAR simpleCN2_W[]
Definition: str.c:818
static const WCHAR simpleCN3_W[]
Definition: str.c:819
static BYTE encodedMultipleAttrCN[]
Definition: str.c:398
static const BYTE encodedJapaneseCN[]
Definition: str.c:825
static BYTE encodedSpacedCN[]
Definition: str.c:394
static BYTE encodedQuotedCN[]
Definition: str.c:396
static const WCHAR singledQuotedCN_W[]
Definition: str.c:561

Definition at line 828 of file str.c.

Referenced by test_CertStrToNameW(), and test_StdRegProv().

◆ newlineCN_W

const WCHAR newlineCN_W[] = { 'C','N','=','"','a','\n','b','"',0 }
static

Definition at line 581 of file str.c.

Referenced by test_CertNameToStrW().

◆ pbEncoded

static LPCWSTR DWORD void BYTE * pbEncoded

Definition at line 196 of file str.c.

Referenced by CertCreateContext(), CertStrToNameA(), CertStrToNameW(), CRYPT_AsnDecodeAccessDescription(), CRYPT_AsnDecodeAlgorithmId(), CRYPT_AsnDecodeAltName(), CRYPT_AsnDecodeAltNameEntry(), CRYPT_AsnDecodeAltNameInternal(), CRYPT_AsnDecodeArray(), CRYPT_AsnDecodeAttributeTypeValue(), CRYPT_AsnDecodeAuthorityInfoAccess(), CRYPT_AsnDecodeAuthorityKeyId(), CRYPT_AsnDecodeAuthorityKeyId2(), CRYPT_AsnDecodeBasicConstraints(), CRYPT_AsnDecodeBasicConstraints2(), CRYPT_AsnDecodeBits(), CRYPT_AsnDecodeBitsInternal(), CRYPT_AsnDecodeBitsSwapBytes(), CRYPT_AsnDecodeBMPString(), CRYPT_AsnDecodeBool(), CRYPT_AsnDecodeCert(), CRYPT_AsnDecodeCertExtensions(), CRYPT_AsnDecodeCertExtensionsInternal(), CRYPT_AsnDecodeCertInfo(), CRYPT_AsnDecodeCertPolicies(), CRYPT_AsnDecodeCertPolicy(), CRYPT_AsnDecodeCertPolicyConstraints(), CRYPT_AsnDecodeCertPolicyMapping(), CRYPT_AsnDecodeCertPolicyMappings(), CRYPT_AsnDecodeCertSignedContent(), CRYPT_AsnDecodeCertVersion(), CRYPT_AsnDecodeChoiceOfTime(), CRYPT_AsnDecodeChoiceOfTimeInternal(), CRYPT_AsnDecodeCMSCertEncoded(), CRYPT_AsnDecodeCMSCrlEncoded(), CRYPT_AsnDecodeCMSSignedInfo(), CRYPT_AsnDecodeCMSSignerId(), CRYPT_AsnDecodeCMSSignerInfo(), CRYPT_AsnDecodeCMSSignerInfoInternal(), CRYPT_AsnDecodeCopyBytes(), CRYPT_AsnDecodeCRL(), CRYPT_AsnDecodeCRLDistPoints(), CRYPT_AsnDecodeCRLEntries(), CRYPT_AsnDecodeCRLEntry(), CRYPT_AsnDecodeCRLEntryExtensions(), CRYPT_AsnDecodeCRLExtensions(), CRYPT_AsnDecodeCRLExtensionsInternal(), CRYPT_AsnDecodeCRLInfo(), CRYPT_AsnDecodeCTL(), CRYPT_AsnDecodeCTLEntries(), CRYPT_AsnDecodeCTLEntry(), CRYPT_AsnDecodeCTLEntryAttributes(), CRYPT_AsnDecodeCTLExtensions(), CRYPT_AsnDecodeCTLExtensionsInternal(), CRYPT_AsnDecodeCTLUsage(), CRYPT_AsnDecodeDerBlob(), CRYPT_AsnDecodeDistPoint(), CRYPT_AsnDecodeDistPointName(), CRYPT_AsnDecodeEccSignature(), CRYPT_AsnDecodeEncryptedContentInfo(), CRYPT_AsnDecodeEnhancedKeyUsage(), CRYPT_AsnDecodeEnumerated(), CRYPT_AsnDecodeExcludedSubtree(), CRYPT_AsnDecodeExtension(), CRYPT_AsnDecodeExtensions(), CRYPT_AsnDecodeGeneralizedTime(), CRYPT_AsnDecodeIA5String(), CRYPT_AsnDecodeInhibitMapping(), CRYPT_AsnDecodeInt(), CRYPT_AsnDecodeInteger(), CRYPT_AsnDecodeIntegerInternal(), CRYPT_AsnDecodeIntInternal(), CRYPT_AsnDecodeIssuerSerialNumber(), CRYPT_AsnDecodeIssuingDistPoint(), CRYPT_AsnDecodeMaximum(), CRYPT_AsnDecodeName(), CRYPT_AsnDecodeNameConstraints(), CRYPT_AsnDecodeNameValue(), CRYPT_AsnDecodeNameValueInternal(), CRYPT_AsnDecodeNoticeNumbers(), CRYPT_AsnDecodeNoticeReference(), CRYPT_AsnDecodeObjectIdentifier(), CRYPT_AsnDecodeOctets(), CRYPT_AsnDecodeOctetString(), CRYPT_AsnDecodeOid(), CRYPT_AsnDecodeOidIgnoreTag(), CRYPT_AsnDecodeOidInternal(), CRYPT_AsnDecodePathLenConstraint(), CRYPT_AsnDecodePermittedSubtree(), CRYPT_AsnDecodePKCSAttribute(), CRYPT_AsnDecodePKCSAttributeInternal(), CRYPT_AsnDecodePKCSAttributes(), CRYPT_AsnDecodePKCSAttributesInternal(), CRYPT_AsnDecodePKCSAttributeValue(), CRYPT_AsnDecodePKCSContent(), CRYPT_AsnDecodePKCSContentInfo(), CRYPT_AsnDecodePKCSContentInfoInternal(), CRYPT_AsnDecodePKCSDigestedData(), CRYPT_AsnDecodePKCSEnvelopedData(), CRYPT_AsnDecodePKCSSignerInfo(), CRYPT_AsnDecodePKCSSignerInfoInternal(), CRYPT_AsnDecodePolicyQualifier(), CRYPT_AsnDecodePolicyQualifiers(), CRYPT_AsnDecodePolicyQualifierUserNotice(), CRYPT_AsnDecodePolicyQualifierUserNoticeInternal(), CRYPT_AsnDecodeProgramName(), CRYPT_AsnDecodePubKeyInfo(), CRYPT_AsnDecodePubKeyInfoInternal(), CRYPT_AsnDecodeRdn(), CRYPT_AsnDecodeRdnAttr(), CRYPT_AsnDecodeRecipientInfo(), CRYPT_AsnDecodeRequireExplicit(), CRYPT_AsnDecodeRsaPrivKey(), CRYPT_AsnDecodeRsaPubKey(), CRYPT_AsnDecodeSequence(), CRYPT_AsnDecodeSequenceItems(), CRYPT_AsnDecodeSequenceOfAny(), CRYPT_AsnDecodeSMIMECapabilities(), CRYPT_AsnDecodeSMIMECapability(), CRYPT_AsnDecodeSPCDigest(), CRYPT_AsnDecodeSPCLinkInternal(), CRYPT_AsnDecodeSPCLinkPointer(), CRYPT_AsnDecodeSubtree(), CRYPT_AsnDecodeSubtreeConstraints(), CRYPT_AsnDecodeTimeZone(), CRYPT_AsnDecodeUnicodeName(), CRYPT_AsnDecodeUnicodeNameValue(), CRYPT_AsnDecodeUnicodeNameValueInternal(), CRYPT_AsnDecodeUnicodeRdn(), CRYPT_AsnDecodeUnicodeRdnAttr(), CRYPT_AsnDecodeUnicodeString(), CRYPT_AsnDecodeUnsignedInteger(), CRYPT_AsnDecodeUnsignedIntegerInternal(), CRYPT_AsnDecodeUtcTime(), CRYPT_AsnDecodeUtcTimeInternal(), CRYPT_AsnDecodeValidity(), CRYPT_AsnEncodeAccessDescription(), CRYPT_AsnEncodeAlgorithmId(), CRYPT_AsnEncodeAlgorithmIdWithNullParams(), CRYPT_AsnEncodeAltName(), CRYPT_AsnEncodeAltNameEntry(), CRYPT_AsnEncodeAttributeTypeValue(), CRYPT_AsnEncodeAuthorityInfoAccess(), CRYPT_AsnEncodeAuthorityKeyId(), CRYPT_AsnEncodeAuthorityKeyId2(), CRYPT_AsnEncodeBasicConstraints(), CRYPT_AsnEncodeBasicConstraints2(), CRYPT_AsnEncodeBits(), CRYPT_AsnEncodeBitsSwapBytes(), CRYPT_AsnEncodeBMPString(), CRYPT_AsnEncodeBool(), CRYPT_AsnEncodeCert(), CRYPT_AsnEncodeCertInfo(), CRYPT_AsnEncodeCertPolicies(), CRYPT_AsnEncodeCertPolicy(), CRYPT_AsnEncodeCertPolicyConstraints(), CRYPT_AsnEncodeCertPolicyMapping(), CRYPT_AsnEncodeCertPolicyMappings(), CRYPT_AsnEncodeCertPolicyQualifiers(), CRYPT_AsnEncodeCertVersion(), CRYPT_AsnEncodeChoiceOfTime(), CRYPT_AsnEncodeCMSSignerInfo(), CRYPT_AsnEncodeConstructed(), CRYPT_AsnEncodeCRLDistPoints(), CRYPT_AsnEncodeCRLEntries(), CRYPT_AsnEncodeCRLEntry(), CRYPT_AsnEncodeCRLInfo(), CRYPT_AsnEncodeCRLVersion(), CRYPT_AsnEncodeCTL(), CRYPT_AsnEncodeCTLEntries(), CRYPT_AsnEncodeCTLEntry(), CRYPT_AsnEncodeCTLSubjectAlgorithm(), CRYPT_AsnEncodeCTLVersion(), CRYPT_AsnEncodeDistPoint(), CRYPT_AsnEncodeEncryptedContentInfo(), CRYPT_AsnEncodeEnhancedKeyUsage(), CRYPT_AsnEncodeEnumerated(), CRYPT_AsnEncodeExtension(), CRYPT_AsnEncodeExtensions(), CRYPT_AsnEncodeGeneralizedTime(), CRYPT_AsnEncodeGeneralSubtree(), CRYPT_AsnEncodeIA5String(), CRYPT_AsnEncodeInt(), CRYPT_AsnEncodeInteger(), CRYPT_AsnEncodeIssuerSerialNumber(), CRYPT_AsnEncodeIssuingDistPoint(), CRYPT_AsnEncodeName(), CRYPT_AsnEncodeNameConstraints(), CRYPT_AsnEncodeNameValue(), CRYPT_AsnEncodeNoticeNumbers(), CRYPT_AsnEncodeNoticeReference(), CRYPT_AsnEncodeNumericString(), CRYPT_AsnEncodeOctets(), CRYPT_AsnEncodeOid(), CRYPT_AsnEncodeOrCopyUnicodeNameValue(), CRYPT_AsnEncodePKCSAttribute(), CRYPT_AsnEncodePKCSAttributes(), CRYPT_AsnEncodePKCSContentInfo(), CRYPT_AsnEncodePKCSContentInfoInternal(), CRYPT_AsnEncodePKCSSignerInfo(), CRYPT_AsnEncodePolicyQualifierUserNotice(), CRYPT_AsnEncodePrintableString(), CRYPT_AsnEncodePubKeyInfo(), CRYPT_AsnEncodePubKeyInfoNoNull(), CRYPT_AsnEncodeRdn(), CRYPT_AsnEncodeRdnAttr(), CRYPT_AsnEncodeRecipientInfo(), CRYPT_AsnEncodeRsaPubKey(), CRYPT_AsnEncodeSequence(), CRYPT_AsnEncodeSequenceOfAny(), CRYPT_AsnEncodeSMIMECapabilities(), CRYPT_AsnEncodeSMIMECapability(), CRYPT_AsnEncodeSPCDigest(), CRYPT_AsnEncodeStringCoerce(), CRYPT_AsnEncodeSwapTag(), CRYPT_AsnEncodeUnicodeName(), CRYPT_AsnEncodeUnicodeNameValue(), CRYPT_AsnEncodeUnicodeStringCoerce(), CRYPT_AsnEncodeUniversalString(), CRYPT_AsnEncodeUnsignedInteger(), CRYPT_AsnEncodeUtcTime(), CRYPT_AsnEncodeUTF8String(), CRYPT_AsnEncodeValidity(), CRYPT_CopyEncodedBlob(), CRYPT_DecodeRecipientInfoArray(), CRYPT_DecodeSignerArray(), CRYPT_DEREncodeItemsAsSet(), CRYPT_DEREncodeSet(), CRYPT_EncodeContentLength(), CRYPT_EncodeEnsureSpace(), CRYPT_EncodeLen(), CRYPT_FindEncodedLen(), CRYPT_FormatAltName(), CRYPT_FormatAuthorityInfoAccess(), CRYPT_FormatAuthorityKeyId2(), CRYPT_FormatBasicConstraints2(), CRYPT_FormatCPS(), CRYPT_FormatCRLDistPoints(), CRYPT_FormatEnhancedKeyUsage(), CRYPT_FormatHexString(), CRYPT_FormatKeyUsage(), CRYPT_FormatNetscapeCertType(), CRYPT_FormatSpcFinancialCriteria(), CRYPT_FormatUnicodeString(), CRYPT_FormatUserNotice(), CRYPT_GetLen(), CRYPT_GetLengthIndefinite(), CryptDecodeObject(), CryptDecodeObjectEx(), CryptEncodeObject(), CryptFormatObject(), CryptHashCertificate(), CryptHashToBeSigned(), CryptMsgEncodeAndSignCTL(), CryptMsgSignCTL(), CryptSignAndEncodeCertificate(), CryptVerifyCertificateSignature(), FormatVerisignExtension(), test_format_object(), WVTAsn1CatMemberInfoDecode(), WVTAsn1CatMemberInfoEncode(), WVTAsn1CatNameValueDecode(), WVTAsn1CatNameValueEncode(), WVTAsn1SpcFinancialCriteriaInfoDecode(), WVTAsn1SpcFinancialCriteriaInfoEncode(), WVTAsn1SpcIndirectDataContentDecode(), WVTAsn1SpcIndirectDataContentEncode(), WVTAsn1SpcLinkDecode(), WVTAsn1SpcLinkEncode(), WVTAsn1SpcPeImageDataDecode(), WVTAsn1SpcPeImageDataEncode(), WVTAsn1SpcSpOpusInfoDecode(), and WVTAsn1SpcSpOpusInfoEncode().

◆ pcbEncoded

static LPCWSTR DWORD void BYTE DWORD * pcbEncoded

Definition at line 196 of file str.c.

Referenced by CertStrToNameA(), CertStrToNameW(), CRYPT_AsnEncodeAccessDescription(), CRYPT_AsnEncodeAlgorithmId(), CRYPT_AsnEncodeAlgorithmIdWithNullParams(), CRYPT_AsnEncodeAltName(), CRYPT_AsnEncodeAltNameEntry(), CRYPT_AsnEncodeAttributeTypeValue(), CRYPT_AsnEncodeAuthorityInfoAccess(), CRYPT_AsnEncodeAuthorityKeyId(), CRYPT_AsnEncodeAuthorityKeyId2(), CRYPT_AsnEncodeBasicConstraints(), CRYPT_AsnEncodeBasicConstraints2(), CRYPT_AsnEncodeBits(), CRYPT_AsnEncodeBitsSwapBytes(), CRYPT_AsnEncodeBMPString(), CRYPT_AsnEncodeBool(), CRYPT_AsnEncodeCert(), CRYPT_AsnEncodeCertInfo(), CRYPT_AsnEncodeCertPolicies(), CRYPT_AsnEncodeCertPolicy(), CRYPT_AsnEncodeCertPolicyConstraints(), CRYPT_AsnEncodeCertPolicyMapping(), CRYPT_AsnEncodeCertPolicyMappings(), CRYPT_AsnEncodeCertPolicyQualifiers(), CRYPT_AsnEncodeCertVersion(), CRYPT_AsnEncodeChoiceOfTime(), CRYPT_AsnEncodeCMSSignerInfo(), CRYPT_AsnEncodeConstructed(), CRYPT_AsnEncodeCRLDistPoints(), CRYPT_AsnEncodeCRLEntries(), CRYPT_AsnEncodeCRLEntry(), CRYPT_AsnEncodeCRLInfo(), CRYPT_AsnEncodeCRLVersion(), CRYPT_AsnEncodeCTL(), CRYPT_AsnEncodeCTLEntries(), CRYPT_AsnEncodeCTLEntry(), CRYPT_AsnEncodeCTLSubjectAlgorithm(), CRYPT_AsnEncodeCTLVersion(), CRYPT_AsnEncodeDistPoint(), CRYPT_AsnEncodeEncryptedContentInfo(), CRYPT_AsnEncodeEnhancedKeyUsage(), CRYPT_AsnEncodeEnumerated(), CRYPT_AsnEncodeExtension(), CRYPT_AsnEncodeExtensions(), CRYPT_AsnEncodeGeneralizedTime(), CRYPT_AsnEncodeGeneralSubtree(), CRYPT_AsnEncodeIA5String(), CRYPT_AsnEncodeInt(), CRYPT_AsnEncodeInteger(), CRYPT_AsnEncodeIssuerSerialNumber(), CRYPT_AsnEncodeIssuingDistPoint(), CRYPT_AsnEncodeName(), CRYPT_AsnEncodeNameConstraints(), CRYPT_AsnEncodeNameValue(), CRYPT_AsnEncodeNoticeNumbers(), CRYPT_AsnEncodeNoticeReference(), CRYPT_AsnEncodeNumericString(), CRYPT_AsnEncodeOctets(), CRYPT_AsnEncodeOid(), CRYPT_AsnEncodeOrCopyUnicodeNameValue(), CRYPT_AsnEncodePKCSAttribute(), CRYPT_AsnEncodePKCSAttributes(), CRYPT_AsnEncodePKCSContentInfo(), CRYPT_AsnEncodePKCSContentInfoInternal(), CRYPT_AsnEncodePKCSSignerInfo(), CRYPT_AsnEncodePolicyQualifierUserNotice(), CRYPT_AsnEncodePrintableString(), CRYPT_AsnEncodePubKeyInfo(), CRYPT_AsnEncodePubKeyInfoNoNull(), CRYPT_AsnEncodeRdn(), CRYPT_AsnEncodeRdnAttr(), CRYPT_AsnEncodeRecipientInfo(), CRYPT_AsnEncodeRsaPubKey(), CRYPT_AsnEncodeSequence(), CRYPT_AsnEncodeSequenceOfAny(), CRYPT_AsnEncodeSMIMECapabilities(), CRYPT_AsnEncodeSMIMECapability(), CRYPT_AsnEncodeSPCDigest(), CRYPT_AsnEncodeStringCoerce(), CRYPT_AsnEncodeSwapTag(), CRYPT_AsnEncodeUnicodeName(), CRYPT_AsnEncodeUnicodeNameValue(), CRYPT_AsnEncodeUnicodeStringCoerce(), CRYPT_AsnEncodeUniversalString(), CRYPT_AsnEncodeUnsignedInteger(), CRYPT_AsnEncodeUtcTime(), CRYPT_AsnEncodeUTF8String(), CRYPT_AsnEncodeValidity(), CRYPT_CopyEncodedBlob(), CRYPT_DEREncodeItemsAsSet(), CRYPT_DEREncodeSet(), CRYPT_EncodeContentLength(), CRYPT_EncodeEnsureSpace(), CRYPT_EncodeLen(), CryptEncodeObject(), CryptEncodeObjectEx(), CryptMsgEncodeAndSignCTL(), CryptMsgSignCTL(), CryptSignAndEncodeCertificate(), WVTAsn1CatMemberInfoEncode(), WVTAsn1CatNameValueEncode(), WVTAsn1SpcFinancialCriteriaInfoEncode(), WVTAsn1SpcIndirectDataContentEncode(), WVTAsn1SpcLinkEncode(), WVTAsn1SpcPeImageDataEncode(), and WVTAsn1SpcSpOpusInfoEncode().

◆ PCERT_RDN_VALUE_BLOB

Definition at line 191 of file str.c.

◆ ppszError

◆ pszX500

static LPCWSTR pszX500

Definition at line 196 of file str.c.

Referenced by CertStrToNameA(), and CertStrToNameW().

◆ pvReserved

◆ quotedCN_W

const WCHAR quotedCN_W[] = { 'C','N','=','"','"','"','1','"','"','"',0 }
static

Definition at line 565 of file str.c.

Referenced by test_CertNameToStrW().

◆ semiCN_W

const WCHAR semiCN_W[] = { 'C','N','=','"',';','"',0 }
static

Definition at line 579 of file str.c.

Referenced by test_CertNameToStrW().

◆ simpleCN2_W

const WCHAR simpleCN2_W[] = { 'C','N','=','"','1','"',0 }
static

Definition at line 818 of file str.c.

◆ simpleCN3_W

const WCHAR simpleCN3_W[] = { 'C','N',' ','=',' ','"','1','"',0 }
static

Definition at line 819 of file str.c.

◆ simpleCN_W

const WCHAR simpleCN_W[] = { 'C','N','=','1',0 }
static

Definition at line 560 of file str.c.

Referenced by test_CertNameToStrW(), and test_CertStrToNameW().

◆ simpleCommaCN_W

const WCHAR simpleCommaCN_W[] = { '"','a',',','b','"',0 }
static

Definition at line 570 of file str.c.

Referenced by test_CertNameToStrW().

◆ simpleEqualCN_W

const WCHAR simpleEqualCN_W[] = { '"','a','=','b','"',0 }
static

Definition at line 572 of file str.c.

Referenced by test_CertNameToStrW().

◆ simpleGreaterThanCN_W

const WCHAR simpleGreaterThanCN_W[] = { '"','>','"',0 }
static

Definition at line 576 of file str.c.

Referenced by test_CertNameToStrW().

◆ simpleHashCN_W

const WCHAR simpleHashCN_W[] = { '"','#','"',0 }
static

Definition at line 578 of file str.c.

Referenced by test_CertNameToStrW().

◆ simpleLessThanCN_W

const WCHAR simpleLessThanCN_W[] = { '"','<','"',0 }
static

Definition at line 574 of file str.c.

Referenced by test_CertNameToStrW().

◆ simpleMultipleAttrCN_W

const WCHAR simpleMultipleAttrCN_W[] = { '"','1','+','2','"',0 }
static

Definition at line 568 of file str.c.

Referenced by test_CertNameToStrW().

◆ simpleNewlineCN_W

const WCHAR simpleNewlineCN_W[] = { '"','a','\n','b','"',0 }
static

Definition at line 582 of file str.c.

Referenced by test_CertNameToStrW().

◆ simpleQuotedCN_W

const WCHAR simpleQuotedCN_W[] = { '"','"','"','1','"','"','"',0 }
static

Definition at line 566 of file str.c.

Referenced by test_CertNameToStrW().

◆ simpleSemiCN_W

const WCHAR simpleSemiCN_W[] = { '"',';','"',0 }
static

Definition at line 580 of file str.c.

Referenced by test_CertNameToStrW().

◆ simpleSingleQuotedCN_W

const WCHAR simpleSingleQuotedCN_W[] = { '\'','1','\'',0 }
static

Definition at line 562 of file str.c.

Referenced by test_CertNameToStrW().

◆ simpleSpacedCN_W

const WCHAR simpleSpacedCN_W[] = { '"',' ','1',' ','"',0 }
static

Definition at line 564 of file str.c.

Referenced by test_CertNameToStrW().

◆ singledQuotedCN_W

const WCHAR singledQuotedCN_W[] = { 'C','N','=','\'','1','\'',0 }
static

Definition at line 561 of file str.c.

Referenced by test_CertNameToStrW().

◆ spacedCN_W

const WCHAR spacedCN_W[] = { 'C','N','=','"',' ','1',' ','"',0 }
static

Definition at line 563 of file str.c.

Referenced by test_CertNameToStrW().

◆ str

◆ subjectStr

char subjectStr[]
static
Initial value:
=
"2.5.4.6=US, 2.5.4.8=Minnesota, 2.5.4.7=Minneapolis, 2.5.4.10=CodeWeavers, 2.5.4.11=Wine Development, 2.5.4.3=localhost, 1.2.840.113549.1.9.1=aric@codeweavers.com"

Definition at line 124 of file str.c.

Referenced by test_CertGetNameStringA(), and test_CertNameToStrA().

◆ subjectStrCRLF

char subjectStrCRLF[]
static
Initial value:
=
"2.5.4.6=US\r\n2.5.4.8=Minnesota\r\n2.5.4.7=Minneapolis\r\n2.5.4.10=CodeWeavers\r\n2.5.4.11=Wine Development\r\n2.5.4.3=localhost\r\n1.2.840.113549.1.9.1=aric@codeweavers.com"

Definition at line 128 of file str.c.

Referenced by test_CertNameToStrA().

◆ subjectStrCRLFW

WCHAR subjectStrCRLFW[]
static
Initial value:
= {
'2','.','5','.','4','.','6','=','U','S','\r','\n','2','.','5','.','4','.','8',
'=','M','i','n','n','e','s','o','t','a','\r','\n','2','.','5','.','4','.','7',
'=','M','i','n','n','e','a','p','o','l','i','s','\r','\n','2','.','5','.','4',
'.','1','0','=','C','o','d','e','W','e','a','v','e','r','s','\r','\n','2','.',
'5','.','4','.','1','1','=','W','i','n','e',' ','D','e','v','e','l','o','p',
'm','e','n','t','\r','\n','2','.','5','.','4','.','3','=','l','o','c','a','l',
'h','o','s','t','\r','\n','1','.','2','.','8','4','0','.','1','1','3','5','4',
'9','.','1','.','9','.','1','=','a','r','i','c','@','c','o','d','e','w','e',
'a','v','e','r','s','.','c','o','m',0 }

Definition at line 170 of file str.c.

Referenced by test_CertNameToStrW().

◆ subjectStrSemicolon

char subjectStrSemicolon[]
static
Initial value:
=
"2.5.4.6=US; 2.5.4.8=Minnesota; 2.5.4.7=Minneapolis; 2.5.4.10=CodeWeavers; 2.5.4.11=Wine Development; 2.5.4.3=localhost; 1.2.840.113549.1.9.1=aric@codeweavers.com"

Definition at line 126 of file str.c.

Referenced by test_CertNameToStrA().

◆ subjectStrSemicolonW

WCHAR subjectStrSemicolonW[]
static
Initial value:
= {
'2','.','5','.','4','.','6','=','U','S',';',' ','2','.','5','.','4','.','8',
'=','M','i','n','n','e','s','o','t','a',';',' ','2','.','5','.','4','.','7',
'=','M','i','n','n','e','a','p','o','l','i','s',';',' ','2','.','5','.','4',
'.','1','0','=','C','o','d','e','W','e','a','v','e','r','s',';',' ','2','.',
'5','.','4','.','1','1','=','W','i','n','e',' ','D','e','v','e','l','o','p',
'm','e','n','t',';',' ','2','.','5','.','4','.','3','=','l','o','c','a','l',
'h','o','s','t',';',' ','1','.','2','.','8','4','0','.','1','1','3','5','4',
'9','.','1','.','9','.','1','=','a','r','i','c','@','c','o','d','e','w','e',
'a','v','e','r','s','.','c','o','m',0 }

Definition at line 160 of file str.c.

Referenced by test_CertNameToStrW().

◆ subjectStrW

WCHAR subjectStrW[]
static
Initial value:
= {
'2','.','5','.','4','.','6','=','U','S',',',' ','2','.','5','.','4','.','8',
'=','M','i','n','n','e','s','o','t','a',',',' ','2','.','5','.','4','.','7',
'=','M','i','n','n','e','a','p','o','l','i','s',',',' ','2','.','5','.','4',
'.','1','0','=','C','o','d','e','W','e','a','v','e','r','s',',',' ','2','.',
'5','.','4','.','1','1','=','W','i','n','e',' ','D','e','v','e','l','o','p',
'm','e','n','t',',',' ','2','.','5','.','4','.','3','=','l','o','c','a','l',
'h','o','s','t',',',' ','1','.','2','.','8','4','0','.','1','1','3','5','4',
'9','.','1','.','9','.','1','=','a','r','i','c','@','c','o','d','e','w','e',
'a','v','e','r','s','.','c','o','m',0 }

Definition at line 150 of file str.c.

Referenced by test_CertNameToStrW().

◆ type

Definition at line 201 of file str.c.

Referenced by CRYPT_EncodeValueWithType(), and test_CertGetNameStringA().

◆ typePara

DWORD DWORD void* typePara

Definition at line 201 of file str.c.

◆ x500SubjectStr

char x500SubjectStr[] = "C=US, S=Minnesota, L=Minneapolis, O=CodeWeavers, OU=Wine Development, CN=localhost, E=aric@codeweavers.com"
static

Definition at line 130 of file str.c.

Referenced by test_CertNameToStrA().

◆ x500SubjectStrSemicolonReverse

char x500SubjectStrSemicolonReverse[] = "E=aric@codeweavers.com; CN=localhost; OU=Wine Development; O=CodeWeavers; L=Minneapolis; S=Minnesota; C=US"
static

Definition at line 131 of file str.c.

Referenced by test_CertNameToStrA().

◆ x500SubjectStrSemicolonReverseW

WCHAR x500SubjectStrSemicolonReverseW[]
static
Initial value:
= {
'E','=','a','r','i','c','@','c','o','d','e','w','e','a','v','e','r','s','.','c',
'o','m',';',' ','C','N','=','l','o','c','a','l','h','o','s','t',';',' ','O','U',
'=','W','i','n','e',' ','D','e','v','e','l','o','p','m','e','n','t',';',' ','O',
'=','C','o','d','e','W','e','a','v','e','r','s',';',' ','L','=','M','i','n','n',
'e','a','p','o','l','i','s',';',' ','S','=','M','i','n','n','e','s','o','t','a',
';',' ','C','=','U','S',0 }

Definition at line 180 of file str.c.

Referenced by test_CertNameToStrW().