Juan Lang : crypt32: Implement CertGetNameStringW for CERT_NAME_DNS_TYPE.

Alexandre Julliard julliard at winehq.org
Wed Sep 9 09:58:15 CDT 2009


Module: wine
Branch: master
Commit: 2fe736d9289224acbf8e697ecf43444e6404bdcd
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=2fe736d9289224acbf8e697ecf43444e6404bdcd

Author: Juan Lang <juan.lang at 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;




More information about the wine-cvs mailing list