From 2fe736d9289224acbf8e697ecf43444e6404bdcd Mon Sep 17 00:00:00 2001 From: Juan Lang Date: Tue, 8 Sep 2009 22:11:40 -0700 Subject: [PATCH] crypt32: Implement CertGetNameStringW for CERT_NAME_DNS_TYPE. --- dlls/crypt32/str.c | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/dlls/crypt32/str.c b/dlls/crypt32/str.c index 8de03a8d555..929274bcfe4 100644 --- a/dlls/crypt32/str.c +++ b/dlls/crypt32/str.c @@ -1130,6 +1130,30 @@ DWORD WINAPI CertGetNameStringW(PCCERT_CONTEXT pCertContext, DWORD dwType, cchNameString); break; } + case CERT_NAME_DNS_TYPE: + { + CERT_ALT_NAME_INFO *info; + PCERT_ALT_NAME_ENTRY entry = cert_find_alt_name_entry(pCertContext, + altNameOID, CERT_ALT_NAME_DNS_NAME, &info); + + if (entry) + { + if (!pszNameString) + ret = strlenW(entry->pwszDNSName) + 1; + else + { + ret = min(strlenW(entry->pwszDNSName), cchNameString - 1); + memcpy(pszNameString, entry->pwszDNSName, ret * sizeof(WCHAR)); + pszNameString[ret++] = 0; + } + } + if (info) + LocalFree(info); + if (!ret) + ret = cert_get_name_from_rdn_attr(pCertContext->dwCertEncodingType, + name, szOID_COMMON_NAME, pszNameString, cchNameString); + break; + } default: FIXME("unimplemented for type %d\n", dwType); ret = 0;