Module: wine Branch: master Commit: 2fe736d9289224acbf8e697ecf43444e6404bdcd URL: http://source.winehq.org/git/wine.git/?a=commit;h=2fe736d9289224acbf8e697ecf...
Author: Juan Lang juan.lang@gmail.com Date: Tue Sep 8 22:11:40 2009 -0700
crypt32: Implement CertGetNameStringW for CERT_NAME_DNS_TYPE.
---
dlls/crypt32/str.c | 24 ++++++++++++++++++++++++ 1 files changed, 24 insertions(+), 0 deletions(-)
diff --git a/dlls/crypt32/str.c b/dlls/crypt32/str.c index 8de03a8..929274b 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;