summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'Swiften/TLS/Schannel')
-rw-r--r--Swiften/TLS/Schannel/SchannelCertificate.cpp12
-rw-r--r--Swiften/TLS/Schannel/SchannelCertificate.h4
-rw-r--r--Swiften/TLS/Schannel/SchannelContext.cpp32
-rw-r--r--Swiften/TLS/Schannel/SchannelContext.h10
-rw-r--r--Swiften/TLS/Schannel/SchannelUtil.h14
5 files changed, 42 insertions, 30 deletions
diff --git a/Swiften/TLS/Schannel/SchannelCertificate.cpp b/Swiften/TLS/Schannel/SchannelCertificate.cpp
index 68dd0cf..23c2479 100644
--- a/Swiften/TLS/Schannel/SchannelCertificate.cpp
+++ b/Swiften/TLS/Schannel/SchannelCertificate.cpp
@@ -4,6 +4,12 @@
* See Documentation/Licenses/BSD-simplified.txt for more information.
*/
+/*
+ * Copyright (c) 2016 Isode Limited.
+ * All rights reserved.
+ * See the COPYING file for more information.
+ */
+
#include "Swiften/TLS/Schannel/SchannelCertificate.h"
#include "Swiften/Base/ByteArray.h"
@@ -160,9 +166,9 @@ void SchannelCertificate::parse()
// int subjectAltNameLoc = X509_get_ext_by_NID(cert.get(), NID_subject_alt_name, -1);
// if(subjectAltNameLoc != -1) {
// X509_EXTENSION* extension = X509_get_ext(cert.get(), subjectAltNameLoc);
- // boost::shared_ptr<GENERAL_NAMES> generalNames(reinterpret_cast<GENERAL_NAMES*>(X509V3_EXT_d2i(extension)), GENERAL_NAMES_free);
- // boost::shared_ptr<ASN1_OBJECT> xmppAddrObject(OBJ_txt2obj(ID_ON_XMPPADDR_OID, 1), ASN1_OBJECT_free);
- // boost::shared_ptr<ASN1_OBJECT> dnsSRVObject(OBJ_txt2obj(ID_ON_DNSSRV_OID, 1), ASN1_OBJECT_free);
+ // std::shared_ptr<GENERAL_NAMES> generalNames(reinterpret_cast<GENERAL_NAMES*>(X509V3_EXT_d2i(extension)), GENERAL_NAMES_free);
+ // std::shared_ptr<ASN1_OBJECT> xmppAddrObject(OBJ_txt2obj(ID_ON_XMPPADDR_OID, 1), ASN1_OBJECT_free);
+ // std::shared_ptr<ASN1_OBJECT> dnsSRVObject(OBJ_txt2obj(ID_ON_DNSSRV_OID, 1), ASN1_OBJECT_free);
// for (int i = 0; i < sk_GENERAL_NAME_num(generalNames.get()); ++i) {
// GENERAL_NAME* generalName = sk_GENERAL_NAME_value(generalNames.get(), i);
// if (generalName->type == GEN_OTHERNAME) {
diff --git a/Swiften/TLS/Schannel/SchannelCertificate.h b/Swiften/TLS/Schannel/SchannelCertificate.h
index 814f344..d3bd66c 100644
--- a/Swiften/TLS/Schannel/SchannelCertificate.h
+++ b/Swiften/TLS/Schannel/SchannelCertificate.h
@@ -12,7 +12,7 @@
#pragma once
-#include <boost/shared_ptr.hpp>
+#include <memory>
#include <Swiften/Base/String.h>
#include <Swiften/TLS/Certificate.h>
@@ -23,7 +23,7 @@ namespace Swift
class SchannelCertificate : public Certificate
{
public:
- typedef boost::shared_ptr<SchannelCertificate> ref;
+ typedef std::shared_ptr<SchannelCertificate> ref;
public:
SchannelCertificate(const ScopedCertContext& certCtxt);
diff --git a/Swiften/TLS/Schannel/SchannelContext.cpp b/Swiften/TLS/Schannel/SchannelContext.cpp
index 7b67f4c..5799157 100644
--- a/Swiften/TLS/Schannel/SchannelContext.cpp
+++ b/Swiften/TLS/Schannel/SchannelContext.cpp
@@ -61,14 +61,14 @@ void SchannelContext::connect() {
if (myCertStore_ == NULL) {
myCertStore_ = CertOpenSystemStore(0, certStoreName_.c_str());
if (!myCertStore_) {
- indicateError(boost::make_shared<TLSError>(TLSError::UnknownError));
+ indicateError(std::make_shared<TLSError>(TLSError::UnknownError));
return;
}
}
pCertContext = findCertificateInStore( myCertStore_, certName_ );
if (pCertContext == NULL) {
- indicateError(boost::make_shared<TLSError>(TLSError::UnknownError));
+ indicateError(std::make_shared<TLSError>(TLSError::UnknownError));
return;
}
}
@@ -115,7 +115,7 @@ void SchannelContext::connect() {
if (status != SEC_E_OK) {
// We failed to obtain the credentials handle
- indicateError(boost::make_shared<TLSError>(TLSError::UnknownError));
+ indicateError(std::make_shared<TLSError>(TLSError::UnknownError));
return;
}
@@ -158,7 +158,7 @@ void SchannelContext::connect() {
if (status != SEC_E_OK && status != SEC_I_CONTINUE_NEEDED) {
// We failed to initialize the security context
handleCertError(status);
- indicateError(boost::make_shared<TLSError>(TLSError::UnknownError));
+ indicateError(std::make_shared<TLSError>(TLSError::UnknownError));
return;
}
@@ -181,7 +181,7 @@ void SchannelContext::connect() {
//------------------------------------------------------------------------
SECURITY_STATUS SchannelContext::validateServerCertificate() {
- SchannelCertificate::ref pServerCert = boost::dynamic_pointer_cast<SchannelCertificate>( getPeerCertificate() );
+ SchannelCertificate::ref pServerCert = std::dynamic_pointer_cast<SchannelCertificate>( getPeerCertificate() );
if (!pServerCert) {
return SEC_E_WRONG_PRINCIPAL;
}
@@ -359,7 +359,7 @@ void SchannelContext::continueHandshake(const SafeByteArray& data) {
else {
// We failed to initialize the security context
handleCertError(status);
- indicateError(boost::make_shared<TLSError>(TLSError::UnknownError));
+ indicateError(std::make_shared<TLSError>(TLSError::UnknownError));
return;
}
}
@@ -459,7 +459,7 @@ void SchannelContext::handleDataFromNetwork(const SafeByteArray& data) {
//------------------------------------------------------------------------
-void SchannelContext::indicateError(boost::shared_ptr<TLSError> error) {
+void SchannelContext::indicateError(std::shared_ptr<TLSError> error) {
state_ = Error;
receivedData_.clear();
onError(error);
@@ -505,15 +505,15 @@ void SchannelContext::decryptAndProcessData(const SafeByteArray& data) {
}
else if (status == SEC_I_RENEGOTIATE) {
// TODO: Handle renegotiation scenarios
- indicateError(boost::make_shared<TLSError>(TLSError::UnknownError));
+ indicateError(std::make_shared<TLSError>(TLSError::UnknownError));
break;
}
else if (status == SEC_I_CONTEXT_EXPIRED) {
- indicateError(boost::make_shared<TLSError>(TLSError::UnknownError));
+ indicateError(std::make_shared<TLSError>(TLSError::UnknownError));
break;
}
else if (status != SEC_E_OK) {
- indicateError(boost::make_shared<TLSError>(TLSError::UnknownError));
+ indicateError(std::make_shared<TLSError>(TLSError::UnknownError));
break;
}
@@ -596,7 +596,7 @@ void SchannelContext::encryptAndSendData(const SafeByteArray& data) {
SECURITY_STATUS status = EncryptMessage(contextHandle_, 0, &outBufferDesc, 0);
if (status != SEC_E_OK) {
- indicateError(boost::make_shared<TLSError>(TLSError::UnknownError));
+ indicateError(std::make_shared<TLSError>(TLSError::UnknownError));
return;
}
@@ -609,7 +609,7 @@ void SchannelContext::encryptAndSendData(const SafeByteArray& data) {
//------------------------------------------------------------------------
bool SchannelContext::setClientCertificate(CertificateWithKey::ref certificate) {
- boost::shared_ptr<CAPICertificate> capiCertificate = boost::dynamic_pointer_cast<CAPICertificate>(certificate);
+ std::shared_ptr<CAPICertificate> capiCertificate = std::dynamic_pointer_cast<CAPICertificate>(certificate);
if (!capiCertificate || capiCertificate->isNull()) {
return false;
}
@@ -631,7 +631,7 @@ bool SchannelContext::setClientCertificate(CertificateWithKey::ref certificate)
//------------------------------------------------------------------------
void SchannelContext::handleCertificateCardRemoved() {
if (disconnectOnCardRemoval_) {
- indicateError(boost::make_shared<TLSError>(TLSError::CertificateCardRemoved));
+ indicateError(std::make_shared<TLSError>(TLSError::CertificateCardRemoved));
}
}
@@ -647,7 +647,7 @@ std::vector<Certificate::ref> SchannelContext::getPeerCertificateChain() const {
if (status != SEC_E_OK) {
return certificateChain;
}
- certificateChain.push_back(boost::make_shared<SchannelCertificate>(pServerCert));
+ certificateChain.push_back(std::make_shared<SchannelCertificate>(pServerCert));
pCurrentCert = pServerCert;
while(pCurrentCert.GetPointer()) {
@@ -656,7 +656,7 @@ std::vector<Certificate::ref> SchannelContext::getPeerCertificateChain() const {
if (!(*pIssuerCert.GetPointer())) {
break;
}
- certificateChain.push_back(boost::make_shared<SchannelCertificate>(pIssuerCert));
+ certificateChain.push_back(std::make_shared<SchannelCertificate>(pIssuerCert));
pCurrentCert = pIssuerCert;
pIssuerCert = NULL;
@@ -667,7 +667,7 @@ std::vector<Certificate::ref> SchannelContext::getPeerCertificateChain() const {
//------------------------------------------------------------------------
CertificateVerificationError::ref SchannelContext::getPeerCertificateVerificationError() const {
- return verificationError_ ? boost::make_shared<CertificateVerificationError>(*verificationError_) : CertificateVerificationError::ref();
+ return verificationError_ ? std::make_shared<CertificateVerificationError>(*verificationError_) : CertificateVerificationError::ref();
}
//------------------------------------------------------------------------
diff --git a/Swiften/TLS/Schannel/SchannelContext.h b/Swiften/TLS/Schannel/SchannelContext.h
index 2c6a3ff..4cb086e 100644
--- a/Swiften/TLS/Schannel/SchannelContext.h
+++ b/Swiften/TLS/Schannel/SchannelContext.h
@@ -5,7 +5,7 @@
*/
/*
- * Copyright (c) 2012-2015 Isode Limited.
+ * Copyright (c) 2012-2016 Isode Limited.
* All rights reserved.
* See the COPYING file for more information.
*/
@@ -34,7 +34,7 @@ namespace Swift
class SchannelContext : public TLSContext, boost::noncopyable
{
public:
- typedef boost::shared_ptr<SchannelContext> sp_t;
+ typedef std::shared_ptr<SchannelContext> sp_t;
public:
SchannelContext(bool tls1_0Workaround);
@@ -62,9 +62,9 @@ namespace Swift
private:
void determineStreamSizes();
void continueHandshake(const SafeByteArray& data);
- void indicateError(boost::shared_ptr<TLSError> error);
+ void indicateError(std::shared_ptr<TLSError> error);
//FIXME: Remove
- void indicateError() {indicateError(boost::make_shared<TLSError>());}
+ void indicateError() {indicateError(std::make_shared<TLSError>());}
void handleCertError(SECURITY_STATUS status) ;
void sendDataOnNetwork(const void* pData, size_t dataSize);
@@ -104,7 +104,7 @@ namespace Swift
std::string certName_;
////Not needed, most likely
std::string smartCardReader_; //Can be empty string for non SmartCard certificates
- boost::shared_ptr<CAPICertificate> userCertificate_;
+ std::shared_ptr<CAPICertificate> userCertificate_;
bool checkCertificateRevocation_;
bool tls1_0Workaround_;
bool disconnectOnCardRemoval_;
diff --git a/Swiften/TLS/Schannel/SchannelUtil.h b/Swiften/TLS/Schannel/SchannelUtil.h
index 194ec35..ec71d9d 100644
--- a/Swiften/TLS/Schannel/SchannelUtil.h
+++ b/Swiften/TLS/Schannel/SchannelUtil.h
@@ -4,6 +4,12 @@
* See Documentation/Licenses/BSD-simplified.txt for more information.
*/
+/*
+ * Copyright (c) 2016 Isode Limited.
+ * All rights reserved.
+ * See the COPYING file for more information.
+ */
+
#pragma once
#define SECURITY_WIN32
@@ -92,7 +98,7 @@ namespace Swift
}
private:
- boost::shared_ptr<HandleContext> m_pHandle;
+ std::shared_ptr<HandleContext> m_pHandle;
};
//------------------------------------------------------------------------
@@ -168,7 +174,7 @@ namespace Swift
}
private:
- boost::shared_ptr<HandleContext> m_pHandle;
+ std::shared_ptr<HandleContext> m_pHandle;
};
//------------------------------------------------------------------------
@@ -303,7 +309,7 @@ namespace Swift
}
private:
- boost::shared_ptr<HandleContext> m_pHandle;
+ std::shared_ptr<HandleContext> m_pHandle;
};
//------------------------------------------------------------------------
@@ -420,6 +426,6 @@ namespace Swift
}
private:
- boost::shared_ptr<HandleContext> m_pHandle;
+ std::shared_ptr<HandleContext> m_pHandle;
};
}