Juan Lang : cryptui: Implement CryptUIWizExport for CRYPTUI_WIZ_EXPORT_CERT_STORE_CERTIFICATES_ONLY .
Alexandre Julliard
julliard at winehq.org
Tue Jan 27 09:06:54 CST 2009
Module: wine
Branch: master
Commit: 15a8ea6a51ceb9bce131f1af9c1535cb4aa92b3d
URL: http://source.winehq.org/git/wine.git/?a=commit;h=15a8ea6a51ceb9bce131f1af9c1535cb4aa92b3d
Author: Juan Lang <juan.lang at gmail.com>
Date: Sat Jan 24 13:58:46 2009 -0800
cryptui: Implement CryptUIWizExport for CRYPTUI_WIZ_EXPORT_CERT_STORE_CERTIFICATES_ONLY.
---
dlls/cryptui/main.c | 18 ++++++++++++++----
1 files changed, 14 insertions(+), 4 deletions(-)
diff --git a/dlls/cryptui/main.c b/dlls/cryptui/main.c
index 3108c6a..18d809f 100644
--- a/dlls/cryptui/main.c
+++ b/dlls/cryptui/main.c
@@ -5978,6 +5978,7 @@ static void show_export_details(HWND lv, struct ExportWizData *data)
case CRYPTUI_WIZ_EXPORT_CRL_CONTEXT:
case CRYPTUI_WIZ_EXPORT_CTL_CONTEXT:
case CRYPTUI_WIZ_EXPORT_CERT_STORE:
+ case CRYPTUI_WIZ_EXPORT_CERT_STORE_CERTIFICATES_ONLY:
/* do nothing */
break;
default:
@@ -6076,7 +6077,13 @@ static BOOL save_base64(HANDLE file, const BYTE *pb, DWORD cb)
return ret;
}
-static BOOL save_cms(HANDLE file, PCCRYPTUI_WIZ_EXPORT_INFO pExportInfo,
+static inline BOOL save_store_as_cms(HANDLE file, HCERTSTORE store)
+{
+ return CertSaveStore(store, PKCS_7_ASN_ENCODING | X509_ASN_ENCODING,
+ CERT_STORE_SAVE_AS_PKCS7, CERT_STORE_SAVE_TO_FILE, file, 0);
+}
+
+static BOOL save_cert_as_cms(HANDLE file, PCCRYPTUI_WIZ_EXPORT_INFO pExportInfo,
BOOL includeChain)
{
BOOL ret;
@@ -6136,8 +6143,7 @@ static BOOL save_cms(HANDLE file, PCCRYPTUI_WIZ_EXPORT_INFO pExportInfo,
ret = CertAddCertificateContextToStore(store,
pExportInfo->u.pCertContext, CERT_STORE_ADD_ALWAYS, NULL);
if (ret)
- ret = CertSaveStore(store, PKCS_7_ASN_ENCODING | X509_ASN_ENCODING,
- CERT_STORE_SAVE_AS_PKCS7, CERT_STORE_SAVE_TO_FILE, file, 0);
+ ret = save_store_as_cms(file, store);
CertCloseStore(store, 0);
}
else
@@ -6176,6 +6182,9 @@ static BOOL do_export(HANDLE file, PCCRYPTUI_WIZ_EXPORT_INFO pExportInfo,
case CRYPTUI_WIZ_EXPORT_CERT_STORE:
ret = save_serialized_store(file, pExportInfo->u.hCertStore);
break;
+ case CRYPTUI_WIZ_EXPORT_CERT_STORE_CERTIFICATES_ONLY:
+ ret = save_store_as_cms(file, pExportInfo->u.hCertStore);
+ break;
default:
switch (pContextInfo->dwExportFormat)
{
@@ -6189,7 +6198,8 @@ static BOOL do_export(HANDLE file, PCCRYPTUI_WIZ_EXPORT_INFO pExportInfo,
pExportInfo->u.pCertContext->cbCertEncoded);
break;
case CRYPTUI_WIZ_EXPORT_FORMAT_PKCS7:
- ret = save_cms(file, pExportInfo, pContextInfo->fExportChain);
+ ret = save_cert_as_cms(file, pExportInfo,
+ pContextInfo->fExportChain);
break;
case CRYPTUI_WIZ_EXPORT_FORMAT_PFX:
FIXME("unimplemented for PFX\n");
More information about the wine-cvs
mailing list