X-Git-Url: http://Server1/repobrowser/?a=blobdiff_plain;f=source%2FfrmNewAccount.cpp;h=36a1f7165dbdefada6e85700b79e3f2452d24a44;hb=51508462484a87e7c2e448ec3aff643784381a09;hp=bff53e14390aa173dd5ddf07734ff3af5a13e1d8;hpb=3b6b6a7c6b49dd7adda12d7b469a0da356f2a999;p=xestiaab%2F.git diff --git a/source/frmNewAccount.cpp b/source/frmNewAccount.cpp index bff53e1..36a1f71 100644 --- a/source/frmNewAccount.cpp +++ b/source/frmNewAccount.cpp @@ -22,6 +22,11 @@ #include #include +#if defined(__WIN32__) +#include +#include "common/win32ssl.h" +#endif + #include "carddav/carddav.h" #include "common/dirs.h" #include "common/svrblist.h" @@ -180,6 +185,12 @@ void frmNewAccount::ProcessNext( wxCommandEvent& event ) UseSSL); CardDAVConn.SetupResultBools(&ServerResult, &ServerAction); +#if defined(__WIN32__) + + BOOL ModifiedCertificateData = FALSE; + +#endif + // Verify SSL trust first before doing anything. if (UseSSL == TRUE){ @@ -238,7 +249,26 @@ void frmNewAccount::ProcessNext( wxCommandEvent& event ) } } - + +#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); @@ -291,8 +321,12 @@ void frmNewAccount::ProcessNext( wxCommandEvent& event ) std::thread ConnTest(&CardDAV::Connect, &CardDAVConn); ConnTest.join(); - + +#if defined(__WIN32__) + if (ServerResult == FALSE && ModifiedCertificateData == FALSE){ +#else if (ServerResult == FALSE){ +#endif lblServerConnResult->SetLabel(_("Failed")); lblConnectionResultText->SetLabel(_("An error occured whilst connnecting: ") + CardDAVConn.GetErrorMessage()); @@ -303,11 +337,11 @@ void frmNewAccount::ProcessNext( wxCommandEvent& event ) lblServerConnResult->SetLabel(_("Connected")); } - + if (CardDAVConn.CanDoSSL() == TRUE){ - + lblServerSSLResult->SetLabel(_("Used")); - + } else { lblServerSSLResult->SetLabel(_("Not Used")); @@ -331,7 +365,15 @@ void frmNewAccount::ProcessNext( wxCommandEvent& event ) 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){