diff --git a/include/Swiften/TLS/TLSServerContext.h b/include/Swiften/TLS/TLSServerContext.h new file mode 100644 index 0000000000000000000000000000000000000000..a6a0403986e637027392b738e8dc4353872cc96e --- /dev/null +++ b/include/Swiften/TLS/TLSServerContext.h @@ -0,0 +1,41 @@ +/* + * Copyright (c) 2010 Remko Tronçon + * Licensed under the GNU General Public License v3. + * See Documentation/Licenses/GPLv3.txt for more information. + */ + +#pragma once + +#include "Swiften/Base/boost_bsignals.h" +#include + +#include "Swiften/Base/SafeByteArray.h" +#include "Swiften/TLS/Certificate.h" +#include "Swiften/TLS/CertificateVerificationError.h" + +namespace Swift { + class PKCS12Certificate; + + class TLSServerContext { + public: + virtual ~TLSServerContext(); + + virtual void connect() = 0; + + virtual bool setServerCertificate(const PKCS12Certificate& cert) = 0; + + virtual void handleDataFromNetwork(const SafeByteArray&) = 0; + virtual void handleDataFromApplication(const SafeByteArray&) = 0; + + virtual Certificate::ref getPeerCertificate() const = 0; + virtual CertificateVerificationError::ref getPeerCertificateVerificationError() const = 0; + + virtual ByteArray getFinishMessage() const = 0; + + public: + boost::signal onDataForNetwork; + boost::signal onDataForApplication; + boost::signal onError; + boost::signal onConnected; + }; +}