#include <wx/filefn.h>
#include <wx/fileconf.h>
+#if defined(__WIN32__)
+#include <cryptuiapi.h>
+#endif
+
#include "carddav/carddav.h"
#include "common/dirs.h"
#include "common/svrblist.h"
+#include "common/win32ssl.h"
#include "frmInvalidSSLCertificate.h"
frmNewAccount::frmNewAccount( wxWindow* parent )
UseSSL);
CardDAVConn.SetupResultBools(&ServerResult, &ServerAction);
+#if defined(__WIN32__)
+
+ BOOL ModifiedCertificateData = FALSE;
+
+#endif
+
// Verify SSL trust first before doing anything.
if (UseSSL == TRUE){
}
}
-
+
+#elif defined(__WIN32__)
+
+ CRYPTUI_VIEWCERTIFICATE_STRUCTW CertificateData = BuildCertificateData(&CardDAVConn, (HWND)this->GetHandle());
+
+ if (!CryptUIDlgViewCertificate(&CertificateData, &ModifiedCertificateData)){
+ wxMessageBox(_("An error occured while trying to open the certificate dialog."), _("Error opening Certificate Information dialog"));
+ }
+
+ if (ModifiedCertificateData == FALSE){
+
+ lblServerConnResult->SetLabel(_("Failed"));
+ lblServerResponse->SetLabel(_("Not applicable"));
+ lblServerSSLResult->SetLabel(_("Used"));
+ lblServerSSLValid->SetLabel(_("No"));
+ lblConnectionResultText->SetLabel(_("An error occured whilst connnecting: ") + CardDAVConn.GetErrorMessage() + wxString::Format(wxT(" (%i)\n%s"), sslcode, CardDAVConn.GetErrorBuffer().mb_str()));
+ return;
+
+ }
+
#else
frmInvalidSSLCertificate *frmICPtr = new frmInvalidSSLCertificate(this);
ConnTest.join();
- if (ServerResult == FALSE){
+ if (ServerResult == FALSE && ModifiedCertificateData == FALSE){
lblServerConnResult->SetLabel(_("Failed"));
lblConnectionResultText->SetLabel(_("An error occured whilst connnecting: ") + CardDAVConn.GetErrorMessage());
lblServerConnResult->SetLabel(_("Connected"));
}
-
+
if (CardDAVConn.CanDoSSL() == TRUE){
-
+
lblServerSSLResult->SetLabel(_("Used"));
-
+
} else {
lblServerSSLResult->SetLabel(_("Not Used"));
default:
lblServerSSLValid->SetLabel(_("Unable to verify"));
}
-
+
+#elif defined(__WIN32__)
+
+ if (ModifiedCertificateData == TRUE){
+ lblServerSSLValid->SetLabel(_("Verified (user)"));
+ } else {
+ lblServerSSLValid->SetLabel(_("Verified"));
+ }
+
#else
if (CardDAVConn.SSLVerify() == TRUE && CardDAVConn.CanDoSSL() == TRUE){