Module: wine Branch: master Commit: 044f645477f2721cb5c9192b905a8353427702b0 URL: http://source.winehq.org/git/wine.git/?a=commit;h=044f645477f2721cb5c9192b90...
Author: Juan Lang juan.lang@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; }