diff options
Diffstat (limited to 'src/HTTP/SslHTTPServerConnection.h')
-rw-r--r-- | src/HTTP/SslHTTPServerConnection.h | 47 |
1 files changed, 47 insertions, 0 deletions
diff --git a/src/HTTP/SslHTTPServerConnection.h b/src/HTTP/SslHTTPServerConnection.h new file mode 100644 index 000000000..eceb80fb7 --- /dev/null +++ b/src/HTTP/SslHTTPServerConnection.h @@ -0,0 +1,47 @@ + +// SslHTTPServerConnection.h + +// Declares the cSslHTTPServerConnection class representing a HTTP connection made over an SSL link + + + + + +#pragma once + +#include "HTTPServerConnection.h" +#include "PolarSSL++/BufferedSslContext.h" + + + + + +class cSslHTTPServerConnection : + public cHTTPServerConnection +{ + typedef cHTTPServerConnection super; + +public: + /** Creates a new connection on the specified server. + Sends the specified cert as the server certificate, uses the private key for decryption. */ + cSslHTTPServerConnection(cHTTPServer & a_HTTPServer, const cX509CertPtr & a_Cert, const cCryptoKeyPtr & a_PrivateKey); + + ~cSslHTTPServerConnection(); + +protected: + cBufferedSslContext m_Ssl; + + /** The certificate to send to the client */ + cX509CertPtr m_Cert; + + /** The private key used for the certificate */ + cCryptoKeyPtr m_PrivateKey; + + // cHTTPConnection overrides: + virtual void OnReceivedData(const char * a_Data, size_t a_Size) override; // Data is received from the client + virtual void SendData(const void * a_Data, size_t a_Size) override; // Data is to be sent to client +} ; + + + + |