diff options
Diffstat (limited to 'Swiften/TLS/Schannel')
-rw-r--r-- | Swiften/TLS/Schannel/SchannelCertificate.cpp | 12 | ||||
-rw-r--r-- | Swiften/TLS/Schannel/SchannelCertificate.h | 4 | ||||
-rw-r--r-- | Swiften/TLS/Schannel/SchannelContext.cpp | 32 | ||||
-rw-r--r-- | Swiften/TLS/Schannel/SchannelContext.h | 10 | ||||
-rw-r--r-- | Swiften/TLS/Schannel/SchannelUtil.h | 14 |
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; }; } |