gloox  1.1-svn
Public Types | Public Member Functions | Static Public Member Functions | List of all members
TLSDefault Class Reference

#include <tlsdefault.h>

Inheritance diagram for TLSDefault:
Inheritance graph

Public Types

enum  Type { VerifyingClient = 1, AnonymousClient = 2, VerifyingServer = 4, AnonymousServer = 8 }

Public Member Functions

 TLSDefault (TLSHandler *th, const std::string server, Type type=VerifyingClient)
virtual ~TLSDefault ()
virtual bool init (const std::string &clientKey=EmptyString, const std::string &clientCerts=EmptyString, const StringList &cacerts=StringList())
virtual bool encrypt (const std::string &data)
virtual int decrypt (const std::string &data)
virtual void cleanup ()
virtual bool handshake ()
virtual bool isSecure () const
virtual const CertInfofetchTLSInfo () const
- Public Member Functions inherited from TLSBase
 TLSBase (TLSHandler *th, const std::string server)
virtual ~TLSBase ()
void setInitLib (bool init)
virtual void setSubject (const std::string &subject)

Static Public Member Functions

static int types ()

Detailed Description

This is an abstraction of the various TLS backends.

You should use an instance of this class should you whish to use TLS encryption. TLS support for the main XMPP connection is managed by Client/ClientBase directly.

Jakob Schroeter

Definition at line 33 of file tlsdefault.h.

Member Enumeration Documentation

enum Type

Supported TLS types.


TLS client, verifying, available for all TLS implementations.


Anonymous TLS client (non-verifying), available with GnuTLS.


TLS server, verifying, available for GnuTLS and OpenSSL.


Anonymous TLS server (non-verifying), available with GnuTLS.

Definition at line 40 of file tlsdefault.h.

Constructor & Destructor Documentation

TLSDefault ( TLSHandler th,
const std::string  server,
Type  type = VerifyingClient 

Constructs a new TLS wrapper.

thThe TLSHandler to handle TLS-related events.
serverThe server to use in certificate verification.
typeWhat you want to use this TLS object for.

Definition at line 40 of file tlsdefault.cpp.

~TLSDefault ( )

Virtual Destructor.

Definition at line 80 of file tlsdefault.cpp.

Member Function Documentation

void cleanup ( )

This function performs internal cleanup and will be called after a failed handshake attempt.

Implements TLSBase.

Definition at line 119 of file tlsdefault.cpp.

int decrypt ( const std::string &  data)

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.

dataThe data to decrypt.
The number of bytes used from the input.

Implements TLSBase.

Definition at line 114 of file tlsdefault.cpp.

bool encrypt ( const std::string &  data)

Use this function to feed unencrypted data to the encryption implementation. The encrypted result will be pushed to the TLSHandler's handleEncryptedData() function.

dataThe data to encrypt.
Whether or not the data was used successfully.

Implements TLSBase.

Definition at line 109 of file tlsdefault.cpp.

const CertInfo & fetchTLSInfo ( ) const

This function is used to retrieve certificate and connection info of a encrypted connection.

Certificate information.

Reimplemented from TLSBase.

Definition at line 135 of file tlsdefault.cpp.

bool handshake ( )

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().

True if the handshake was successful or if more input is needed, false if the handshake failed.

Implements TLSBase.

Definition at line 125 of file tlsdefault.cpp.

bool init ( const std::string &  clientKey = EmptyString,
const std::string &  clientCerts = EmptyString,
const StringList cacerts = StringList() 

Initializes the TLS module. This function must be called (and execute successfully) before the module can be used.

clientKeyThe absolute path to the user's private key in PEM format.
clientCertsA path to a certificate bundle in PEM format.
cacertsA list of absolute paths to CA root certificate files in PEM format.
False if initialization failed, true otherwise.
The arguments are not used in the SChannel (native on Windows) implementation, init() needs to be called nonetheless. Use setSubject() to set client/server key/certificate.

Implements TLSBase.

Definition at line 85 of file tlsdefault.cpp.

bool isSecure ( ) const

Returns the state of the encryption.

The state of the encryption.

Reimplemented from TLSBase.

Definition at line 130 of file tlsdefault.cpp.

int types ( )

Returns an ORed list of supported TLS types.

ORed TLSDefault::type members.

Definition at line 93 of file tlsdefault.cpp.

The documentation for this class was generated from the following files: