Juan Lang : cryptui: Remove code duplication in formatting an enhanced key usage value.
Alexandre Julliard
julliard at winehq.org
Fri Dec 19 11:19:19 CST 2008
Module: wine
Branch: master
Commit: 93f4c49ea5c2b1fa5fbf8eecfb7f6b0f9cb0384a
URL: http://source.winehq.org/git/wine.git/?a=commit;h=93f4c49ea5c2b1fa5fbf8eecfb7f6b0f9cb0384a
Author: Juan Lang <juan.lang at gmail.com>
Date: Thu Dec 18 13:50:46 2008 -0800
cryptui: Remove code duplication in formatting an enhanced key usage value.
---
dlls/cryptui/main.c | 67 ++++----------------------------------------------
1 files changed, 6 insertions(+), 61 deletions(-)
diff --git a/dlls/cryptui/main.c b/dlls/cryptui/main.c
index 8a251b4..011d531 100644
--- a/dlls/cryptui/main.c
+++ b/dlls/cryptui/main.c
@@ -1418,68 +1418,13 @@ struct prop_id_to_string_id
static WCHAR *format_enhanced_key_usage_value(void *pb, DWORD cb)
{
- static const WCHAR sep[] = { ',',' ',0 };
- const CERT_ENHKEY_USAGE *usage = (const CERT_ENHKEY_USAGE *)pb;
- static WCHAR *str = NULL;
- DWORD i, chars = 0;
+ CERT_EXTENSION ext;
- for (i = 0; i < usage->cUsageIdentifier; i++)
- {
- PCCRYPT_OID_INFO info = CryptFindOIDInfo(CRYPT_OID_INFO_OID_KEY,
- usage->rgpszUsageIdentifier[i], CRYPT_ENHKEY_USAGE_OID_GROUP_ID);
-
- if (info)
- {
- chars += strlenW(info->pwszName);
- if (i < usage->cUsageIdentifier - 1)
- chars += strlenW(sep);
- if (!str)
- {
- str = HeapAlloc(GetProcessHeap(), 0,
- (chars + 1) * sizeof(WCHAR));
- if (str)
- *str = '\0';
- }
- else
- str = HeapReAlloc(GetProcessHeap(), 0, str,
- (chars + 1) * sizeof(WCHAR));
- if (str)
- {
- if (i < usage->cUsageIdentifier - 1)
- strcatW(str, sep);
- strcatW(str, info->pwszName);
- }
- }
- else
- {
- chars += strlen(usage->rgpszUsageIdentifier[i]);
- if (i < usage->cUsageIdentifier - 1)
- chars += strlenW(sep);
- if (!str)
- {
- str = HeapAlloc(GetProcessHeap(), 0,
- (chars + 1) * sizeof(WCHAR));
- if (str)
- *str = '\0';
- }
- else
- str = HeapReAlloc(GetProcessHeap(), 0, str,
- (chars + 1) * sizeof(WCHAR));
- if (str)
- {
- WCHAR *dst;
- const char *src;
-
- if (i < usage->cUsageIdentifier - 1)
- strcatW(str, sep);
- for (src = usage->rgpszUsageIdentifier[i],
- dst = str + strlenW(str); *src; src++, dst++)
- *dst = *src;
- *dst = '\0';
- }
- }
- }
- return str;
+ ext.pszObjId = (LPSTR)X509_ENHANCED_KEY_USAGE;
+ ext.fCritical = FALSE;
+ ext.Value.pbData = pb;
+ ext.Value.cbData = cb;
+ return crypt_format_extension(&ext, 0);
}
/* Logically the access state should also be checked, and IDC_EDITPROPERTIES
More information about the wine-cvs
mailing list