SSLCopyPeerTrust((SSLContext*)TLSInfo->internals, &SecTrustObject);\r
}\r
\r
+#elif defined(__WIN32__)\r
+\r
+ const struct curl_tlssessioninfo *TLSInfo;\r
+ CURLcode TLSCode;\r
+ CURL *Connection = GetConnectionObject();\r
+ TLSCode = curl_easy_getinfo(Connection, CURLINFO_TLS_SSL_PTR, &TLSInfo);\r
+\r
+ std::string CertName;\r
+\r
+ if (TLSInfo->internals != nullptr && TLSCode == CURLE_OK){\r
+\r
+ // Free the previous certificate data.\r
+\r
+ CertFreeCertificateContext(CertificateData);\r
+\r
+ PCtxtHandle SSLHandle = (PCtxtHandle)TLSInfo->internals;\r
+ SECURITY_STATUS GetData = QueryContextAttributes(SSLHandle, SECPKG_ATTR_REMOTE_CERT_CONTEXT, &CertificateData);\r
+\r
+ }\r
+\r
#endif\r
\r
return size * nmemb;\r
wxString CardDAV::ErrorMessage;\r
SSLCertCollection CardDAV::VerifyCertCollection;\r
bool CardDAV::AllowSelfSign;\r
+#if defined(__APPLE__)\r
SSLContext *CardDAV::SSLContextPointer;\r
SecTrustRef CardDAV::SecTrustObject;\r
+#endif\r
+#if defined(__WIN32__)\r
+PCCERT_CONTEXT CardDAV::CertificateData;\r
+#endif\r
+#if defined(__APPLE__) || defined(__WIN32__)\r
CURL *CardDAV::ConnectionObject;\r
+#endif\r
\r
CardDAV::CardDAV(){\r
\r
\r
}\r
\r
+#if defined(__APPLE__) || defined(__WIN32__)\r
+\r
CURL* CardDAV::GetConnectionObject(){\r
\r
// Get the CardDAV connection object.\r
\r
ConnectionObject = ConnectionObjectIn;\r
\r
-}
\ No newline at end of file
+}\r
+\r
+#endif\r
+\r
+#if defined(__WIN32__)\r
+\r
+PCCERT_CONTEXT CardDAV::GetCertificateContextPointer(){\r
+\r
+ // Check that the PCCERT_CONTEXT has an address\r
+ // other than NULL. Return nullptr if this is the\r
+ // case.\r
+\r
+ if (CertificateData == NULL){\r
+ return NULL;\r
+ }\r
+\r
+ // Get the certificate data.\r
+\r
+ return CertificateData;\r
+\r
+}\r
+\r
+CERT_CONTEXT CardDAV::GetCertificateContext(){\r
+\r
+ // Check that the PCCERT_CONTEXT has an address\r
+ // other than NULL. Return nullptr if this is the\r
+ // case.\r
+\r
+ if (CertificateData == NULL){\r
+ CERT_CONTEXT EmptyCertificateData = { 0 };\r
+ return EmptyCertificateData;\r
+ }\r
+\r
+ // Get the certificate data.\r
+\r
+ return *CertificateData;\r
+\r
+}\r
+\r
+#endif
\ No newline at end of file