Juan Lang : wininet: Implement ShowX509EncodedCertificate.
Alexandre Julliard
julliard at winehq.org
Tue Nov 1 13:23:19 CDT 2011
Module: wine
Branch: master
Commit: 044f645477f2721cb5c9192b905a8353427702b0
URL: http://source.winehq.org/git/wine.git/?a=commit;h=044f645477f2721cb5c9192b905a8353427702b0
Author: Juan Lang <juan.lang at gmail.com>
Date: Mon Oct 31 12:55:15 2011 -0700
wininet: Implement ShowX509EncodedCertificate.
---
dlls/wininet/Makefile.in | 2 +-
dlls/wininet/http.c | 24 ++++++++++++++++++++++--
2 files changed, 23 insertions(+), 3 deletions(-)
diff --git a/dlls/wininet/Makefile.in b/dlls/wininet/Makefile.in
index 1e705a3..f3710f3 100644
--- a/dlls/wininet/Makefile.in
+++ b/dlls/wininet/Makefile.in
@@ -2,7 +2,7 @@ EXTRADEFS = -D_WINX32_
MODULE = wininet.dll
IMPORTLIB = wininet
IMPORTS = mpr shlwapi shell32 user32 advapi32
-DELAYIMPORTS = secur32 crypt32
+DELAYIMPORTS = secur32 crypt32 cryptui
EXTRALIBS = @SOCKETLIBS@ @ZLIB@
C_SRCS = \
diff --git a/dlls/wininet/http.c b/dlls/wininet/http.c
index 70d5f2e..1847820 100644
--- a/dlls/wininet/http.c
+++ b/dlls/wininet/http.c
@@ -65,6 +65,8 @@
#include "shlwapi.h"
#include "sspi.h"
#include "wincrypt.h"
+#include "winuser.h"
+#include "cryptuiapi.h"
#include "internet.h"
#include "wine/debug.h"
@@ -6077,6 +6079,24 @@ BOOL WINAPI InternetShowSecurityInfoByURLW(LPCWSTR url, HWND window)
*/
DWORD WINAPI ShowX509EncodedCertificate(HWND parent, LPBYTE cert, DWORD len)
{
- FIXME("stub: %p %p %u\n", parent, cert, len);
- return ERROR_CALL_NOT_IMPLEMENTED;
+ PCCERT_CONTEXT certContext = CertCreateCertificateContext(X509_ASN_ENCODING,
+ cert, len);
+ DWORD ret;
+
+ if (certContext)
+ {
+ CRYPTUI_VIEWCERTIFICATE_STRUCTW view;
+
+ memset(&view, 0, sizeof(view));
+ view.hwndParent = parent;
+ view.pCertContext = certContext;
+ if (CryptUIDlgViewCertificateW(&view, NULL))
+ ret = ERROR_SUCCESS;
+ else
+ ret = GetLastError();
+ CertFreeCertificateContext(certContext);
+ }
+ else
+ ret = GetLastError();
+ return ret;
}
More information about the wine-cvs
mailing list