gloox  0.9.9.12
Public Member Functions | List of all members
OpenSSL Class Reference

#include <tlsopenssl.h>

Inheritance diagram for OpenSSL:
Inheritance graph
[legend]
Collaboration diagram for OpenSSL:
Collaboration graph
[legend]

Public Member Functions

 OpenSSL (TLSHandler *th, const std::string &server)
virtual ~OpenSSL ()
virtual bool encrypt (const std::string &data)
virtual int decrypt (const std::string &data)
virtual void cleanup ()
virtual bool handshake ()
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 ()
virtual bool isSecure () const
virtual const CertInfofetchTLSInfo () const

Detailed Description

This class implements a TLS backend using OpenSSL.

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

Definition at line 41 of file tlsopenssl.h.

Constructor & Destructor Documentation

OpenSSL ( TLSHandler th,
const std::string &  server 
)

Constructor.

Parameters
thThe TLSHandler to handle TLS-related events.
serverThe server to use in certificate verification.

Definition at line 27 of file tlsopenssl.cpp.

~OpenSSL ( )
virtual

Virtual destructor.

Definition at line 54 of file tlsopenssl.cpp.

Member Function Documentation

void cleanup ( )
virtual

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

Implements TLSBase.

Definition at line 114 of file tlsopenssl.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
dataThe data to decrypt.
Returns
The number of bytes used from the input.

Implements TLSBase.

Definition at line 79 of file tlsopenssl.cpp.

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
dataThe data to encrypt.
Returns
Whether or not the data was used successfully.

Implements TLSBase.

Definition at line 65 of file tlsopenssl.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 201 of file tlsopenssl.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
cacertsA list of absolute paths to CA root certificate files in PEM format.

Implements TLSBase.

Definition at line 93 of file tlsopenssl.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
clientKeyThe absolute path to the user's private key in PEM format.
clientCertsA path to a certificate bundle in PEM format.

Implements TLSBase.

Definition at line 102 of file tlsopenssl.cpp.


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