Module: wine Branch: master Commit: 6dfe7bc3a6a7f8e2f616fdb795db20f5eb35fe65 URL: http://source.winehq.org/git/wine.git/?a=commit;h=6dfe7bc3a6a7f8e2f616fdb795...
Author: Juan Lang juan.lang@gmail.com Date: Tue Sep 8 22:11:27 2009 -0700
crypt32: Implement CertGetNameStringW for CERT_NAME_EMAIL_TYPE.
---
dlls/crypt32/str.c | 25 +++++++++++++++++++++++++ 1 files changed, 25 insertions(+), 0 deletions(-)
diff --git a/dlls/crypt32/str.c b/dlls/crypt32/str.c index 2486862..8de03a8 100644 --- a/dlls/crypt32/str.c +++ b/dlls/crypt32/str.c @@ -1008,6 +1008,31 @@ DWORD WINAPI CertGetNameStringW(PCCERT_CONTEXT pCertContext, DWORD dwType,
switch (dwType) { + case CERT_NAME_EMAIL_TYPE: + { + CERT_ALT_NAME_INFO *info; + PCERT_ALT_NAME_ENTRY entry = cert_find_alt_name_entry(pCertContext, + altNameOID, CERT_ALT_NAME_RFC822_NAME, &info); + + if (entry) + { + if (!pszNameString) + ret = strlenW(entry->pwszRfc822Name) + 1; + else + { + ret = min(strlenW(entry->pwszRfc822Name), cchNameString - 1); + memcpy(pszNameString, entry->pwszRfc822Name, + ret * sizeof(WCHAR)); + pszNameString[ret++] = 0; + } + } + if (info) + LocalFree(info); + if (!ret) + ret = cert_get_name_from_rdn_attr(pCertContext->dwCertEncodingType, + name, szOID_RSA_emailAddr, pszNameString, cchNameString); + break; + } case CERT_NAME_RDN_TYPE: if (name->cbData) ret = CertNameToStrW(pCertContext->dwCertEncodingType, name,