Juan Lang : crypt32: Implement CertGetNameStringW for CERT_NAME_EMAIL_TYPE.
Alexandre Julliard
julliard at winehq.org
Wed Sep 9 09:58:09 CDT 2009
Module: wine
Branch: master
Commit: 6dfe7bc3a6a7f8e2f616fdb795db20f5eb35fe65
URL: http://source.winehq.org/git/wine.git/?a=commit;h=6dfe7bc3a6a7f8e2f616fdb795db20f5eb35fe65
Author: Juan Lang <juan.lang at 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,
More information about the wine-cvs
mailing list