summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTobias Markmann <tm@ayena.de>2016-02-08 16:08:16 (GMT)
committerTobias Markmann <tm@ayena.de>2016-02-08 16:08:16 (GMT)
commit915c0875428e73e9e41a5da05f9d80671da9533c (patch)
tree0df94c4bf3bc9cd0789121433385fa125e79879f /Swiften/TLS/Schannel
parent27211ac2ca11c6ac259bc09bb81a7ed297a9d07d (diff)
downloadswift-915c0875428e73e9e41a5da05f9d80671da9533c.zip
swift-915c0875428e73e9e41a5da05f9d80671da9533c.tar.bz2
Fix and adjust TLSTest to Windows SChannel backend
Test-Information: ./scons test=system Swiften/QA/TLSTest passes on Windows 8. Change-Id: I688ec5d0022c02879ff56029d724e6dd30b89a99
Diffstat (limited to 'Swiften/TLS/Schannel')
-rw-r--r--Swiften/TLS/Schannel/SchannelContext.cpp13
1 files changed, 9 insertions, 4 deletions
diff --git a/Swiften/TLS/Schannel/SchannelContext.cpp b/Swiften/TLS/Schannel/SchannelContext.cpp
index 70ff7dd..62aa137 100644
--- a/Swiften/TLS/Schannel/SchannelContext.cpp
+++ b/Swiften/TLS/Schannel/SchannelContext.cpp
@@ -5,18 +5,20 @@
*/
/*
- * Copyright (c) 2012-2015 Isode Limited.
+ * Copyright (c) 2012-2016 Isode Limited.
* All rights reserved.
* See the COPYING file for more information.
*/
+#include <Swiften/TLS/Schannel/SchannelContext.h>
+
#include <boost/bind.hpp>
-#include <Swiften/TLS/Schannel/SchannelContext.h>
-#include <Swiften/TLS/Schannel/SchannelCertificate.h>
-#include <Swiften/TLS/CAPICertificate.h>
#include <WinHTTP.h> /* For SECURITY_FLAG_IGNORE_CERT_CN_INVALID */
+#include <Swiften/TLS/CAPICertificate.h>
+#include <Swiften/TLS/Schannel/SchannelCertificate.h>
+
namespace Swift {
//------------------------------------------------------------------------
@@ -392,6 +394,9 @@ void SchannelContext::handleCertError(SECURITY_STATUS status)
status == CRYPT_E_REVOCATION_OFFLINE) {
verificationError_ = CertificateVerificationError::RevocationCheckFailed;
}
+ else if (status == CERT_E_WRONG_USAGE) {
+ verificationError_ = CertificateVerificationError::InvalidPurpose;
+ }
else {
verificationError_ = CertificateVerificationError::UnknownError;
}