TLSDefault Class Reference

This is an abstraction of the various TLS implementations. More...

#include <tlsdefault.h>

Inheritance diagram for TLSDefault:

Inheritance graph
[legend]
Collaboration diagram for TLSDefault:

Collaboration graph
[legend]

List of all members.

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 encrypt (const std::string &data)
virtual int decrypt (const std::string &data)
virtual void cleanup ()
virtual bool handshake ()
virtual bool isSecure () const
virtual void setCACerts (const StringList &cacerts)
virtual const CertInfofetchTLSInfo () const
virtual void setClientCert (const std::string &clientKey, const std::string &clientCerts)

Static Public Member Functions

static int types ()


Detailed Description

This is an abstraction of the various TLS implementations.

Author:
Jakob Schroeter <js@camaya.net>
Since:
0.9

Definition at line 30 of file tlsdefault.h.


Member Enumeration Documentation

enum Type

Supported TLS types.

Enumerator:
VerifyingClient  TLS client, verifying, available for all TLS implementations.
AnonymousClient  Anonymous TLS client (non-verifying), available with GnuTLS.
VerifyingServer  TLS server, verifying, currently not available.
AnonymousServer  Anonymous TLS server (non-verifying), available with GnuTLS.

Definition at line 37 of file tlsdefault.h.


Constructor & Destructor Documentation

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

Constructs a new TLS wrapper.

Parameters:
th The TLSHandler to handle TLS-related events.
server The server to use in certificate verification.
type What you want to use this TLS object for.

Definition at line 41 of file tlsdefault.cpp.

~TLSDefault (  )  [virtual]

Virtual Destructor.

Definition at line 72 of file tlsdefault.cpp.


Member Function Documentation

bool encrypt ( const std::string &  data  )  [virtual]

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

Parameters:
data The data to encrypt.
Returns:
Whether or not the data was used successfully.

Implements TLSBase.

Definition at line 92 of file tlsdefault.cpp.

int decrypt ( const std::string &  data  )  [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.

Parameters:
data The data to decrypt.
Returns:
The number of bytes used from the input.

Implements TLSBase.

Definition at line 100 of file tlsdefault.cpp.

void cleanup (  )  [virtual]

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

Implements TLSBase.

Definition at line 108 of file tlsdefault.cpp.

bool handshake (  )  [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().

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

Implements TLSBase.

Definition at line 114 of file tlsdefault.cpp.

bool isSecure (  )  const [virtual]

Returns the state of the encryption.

Returns:
The state of the encryption.

Reimplemented from TLSBase.

Definition at line 122 of file tlsdefault.cpp.

void setCACerts ( const StringList cacerts  )  [virtual]

Use this function to set a number of trusted root CA certificates which shall be used to verify a servers certificate.

Parameters:
cacerts A list of absolute paths to CA root certificate files in PEM format.

Implements TLSBase.

Definition at line 130 of file tlsdefault.cpp.

const CertInfo & fetchTLSInfo (  )  const [virtual]

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

Returns:
Certificate information.

Reimplemented from TLSBase.

Definition at line 136 of file tlsdefault.cpp.

void setClientCert ( const std::string &  clientKey,
const std::string &  clientCerts 
) [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.

Note:
These certificates are not necessarily the same as those used to verify the server's certificate.
Parameters:
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 144 of file tlsdefault.cpp.

int types (  )  [static]

Returns an ORed list of supported TLS types.

Returns:
ORed TLSDefault::type members.

Definition at line 77 of file tlsdefault.cpp.


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

Generated on Fri Oct 10 15:26:25 2008 for gloox by  doxygen 1.5.6