gloox
1.0.28
|
#include <tlsschannel.h>
Public Member Functions | |
SChannel (TLSHandler *th, const std::string &server) | |
virtual | ~SChannel () |
virtual bool | init (const std::string &=EmptyString, const std::string &=EmptyString, const StringList &=StringList()) |
virtual bool | encrypt (const std::string &data) |
virtual int | decrypt (const std::string &data) |
virtual void | cleanup () |
virtual bool | handshake () |
virtual bool | hasChannelBinding () const |
virtual const std::string | channelBinding () const |
virtual void | setCACerts (const StringList &cacerts) |
virtual void | setClientCert (const std::string &clientKey, const std::string &clientCerts) |
Public Member Functions inherited from TLSBase | |
TLSBase (TLSHandler *th, const std::string server) | |
virtual | ~TLSBase () |
void | setInitLib (bool init) |
virtual bool | isSecure () const |
virtual const std::string | channelBindingType () const |
virtual const CertInfo & | fetchTLSInfo () const |
This class implements a TLS backend using SChannel.
Definition at line 38 of file tlsschannel.h.
SChannel | ( | TLSHandler * | th, |
const std::string & | server | ||
) |
Constructor.
th | The TLSHandler to handle TLS-related events. |
server | The server to use in certificate verification. |
Definition at line 21 of file tlsschannel.cpp.
|
virtual |
Virtual destructor.
Definition at line 27 of file tlsschannel.cpp.
|
virtual |
Returns the channel binding data for the established connection.
Reimplemented from TLSBase.
Definition at line 490 of file tlsschannel.cpp.
|
virtual |
This function performs internal cleanup and will be called after a failed handshake attempt.
Implements TLSBase.
Definition at line 247 of file tlsschannel.cpp.
|
virtual |
Use this function to feed encrypted data or received handshake data to the encryption implementation. Handshake data will be eaten, unencrypted data will be pushed to the TLSHandler's handleDecryptedData() function.
data | The data to decrypt. |
Implements TLSBase.
Definition at line 110 of file tlsschannel.cpp.
|
virtual |
Use this function to feed unencrypted data to the encryption implementation. The encrypted result will be pushed to the TLSHandler's handleEncryptedData() function.
data | The data to encrypt. |
Implements TLSBase.
Definition at line 34 of file tlsschannel.cpp.
|
virtual |
This functiopn performs the TLS handshake. Handshake data from the server side should be fed in using decrypt(). Handshake data that is to be sent to the other side is pushed through TLSBase's handleEncryptedData().
Implements TLSBase.
Definition at line 265 of file tlsschannel.cpp.
|
virtual |
This function indicates whether the underlying TLS implementation supports channel binding (used in e.g. SASL SCRAM-SHA-1-PLUS).
Reimplemented from TLSBase.
Definition at line 481 of file tlsschannel.cpp.
|
inlinevirtual |
Initializes the TLS module. This function must be called (and execute successfully) before the module can be used.
clientKey | The absolute path to the user's private key in PEM format. |
clientCerts | A path to a certificate bundle in PEM format. |
cacerts | A list of absolute paths to CA root certificate files in PEM format. |
Implements TLSBase.
Definition at line 54 of file tlsschannel.h.
|
virtual |
Use this function to set a number of trusted root CA certificates which shall be used to verify a servers certificate.
cacerts | A list of absolute paths to CA root certificate files in PEM format. |
Implements TLSBase.
Definition at line 502 of file tlsschannel.cpp.
|
virtual |
Use this function to set the user's certificate and private key. The certificate will be presented to the server upon request and can be used for SASL EXTERNAL authentication. The user's certificate file should be a bundle of more than one certificate in PEM format. The first one in the file should be the user's certificate, each cert following that one should have signed the previous one.
clientKey | The absolute path to the user's private key in PEM format. |
clientCerts | A path to a certificate bundle in PEM format. |
Implements TLSBase.
Definition at line 504 of file tlsschannel.cpp.