GnuTLSClient Class Reference

`#include <tlsgnutlsclient.h>`

Inheritance diagram for GnuTLSClient:
[legend]

## Public Member Functions

| GnuTLSClient (TLSHandler *th, const std::string &server)
virtual | ~GnuTLSClient ()
virtual bool | init (const std::string &clientKey=EmptyString, const std::string &clientCerts=EmptyString, const StringList &cacerts=StringList())
virtual void | setCACerts (const StringList &cacerts)
virtual void | setClientCert (const std::string &clientKey, const std::string &clientCerts)
virtual void | cleanup ()
Public Member Functions inherited from GnuTLSBase
| GnuTLSBase (TLSHandler *th, const std::string &server=EmptyString)
virtual | ~GnuTLSBase ()
virtual bool | encrypt (const std::string &data)
virtual int | decrypt (const std::string &data)
virtual bool | handshake ()
virtual bool | hasChannelBinding () const
virtual const std::string | channelBinding () const
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

## Detailed Description

This class implements a TLS backend using GnuTLS.

You should not need to use this class directly.

Author
  Jakob Schröter js@ca.nosp@m.maya.nosp@m..net

Since
  0.9

Definition at line 38 of file tlsgnutlsclient.h.

## Constructor & Destructor Documentation

## GnuTLSClient()

GnuTLSClient | ( | TLSHandler * | th,
|  | const std::string & | server )

Constructor.

Parameters

  th | The TLSHandler to handle TLS-related events.
  server | The server to use in certificate verification.

Definition at line 24 of file tlsgnutlsclient.cpp.

## ~GnuTLSClient()

~GnuTLSClient | ( |  | ) |

virtual

Virtual destructor.

Definition at line 29 of file tlsgnutlsclient.cpp.

## Member Function Documentation

## cleanup()

void cleanup | ( |  | ) |

virtual

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

Reimplemented from GnuTLSBase.

Definition at line 33 of file tlsgnutlsclient.cpp.

## init()

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

virtual

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

Parameters

  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.

Returns
  False if initialization failed, true otherwise.

Since
  1.0

Implements TLSBase.

Definition at line 41 of file tlsgnutlsclient.cpp.

## setCACerts()

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.

Reimplemented from GnuTLSBase.

Definition at line 89 of file tlsgnutlsclient.cpp.

## setClientCert()

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.

Reimplemented from GnuTLSBase.

Definition at line 98 of file tlsgnutlsclient.cpp.

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

- tlsgnutlsclient.h
- tlsgnutlsclient.cpp