KSSL Class Reference

`#include <kssl.h>`

## Public Member Functions

| KSSL (bool init=true)
| ~KSSL ()
bool | initialize ()
bool | TLSInit ()
bool | setSession (const KSSLSession *session)
void | close ()
bool | reInitialize ()
bool | reconfig ()
void | setAutoReconfig (bool ar)
int | seedWithEGD ()
bool | setSettings (KSSLSettings *settings)
KSSLSettings * | settings ()
bool | setClientCertificate (KSSLPKCS12 *pkcs)
void | setProxyUse (bool active, QString realIP=QString::null, int realPort=0, QString proxy=QString::null) KDE_DEPRECATED
void | setPeerHost (QString realHost=QString::null)
int | connect (int sock)
int | accept (int sock)
int | read (void *buf, int len)
int | peek (void *buf, int len)
int | write (const void *buf, int len)
int | pending ()
KSSLConnectionInfo & | connectionInfo ()
KSSLPeerInfo & | peerInfo ()
const KSSLSession * | session () const
bool | reusingSession () const

## Static Public Member Functions

static bool | doesSSLWork ()

## Detailed Description

KDE SSL Wrapper Class.

This class implements KDE's SSL support by wrapping OpenSSL.

Author
  George Staikos staik.nosp@m.os@k.nosp@m.de.or.nosp@m.g

See also
  KExtendedSocket, TCPSlaveBase KDE SSL Class

Definition at line 42 of file kssl.h.

## Constructor & Destructor Documentation

KSSL::KSSL | ( | bool | init = `true` | ) |

Construct a KSSL object.

Parameters

  init | Set this to false if you do not want this class to immediately initialize OpenSSL.

Definition at line 83 of file kssl.cc.

KSSL::~KSSL | ( |  | ) |

Destroy this KSSL object.

Does not close any socket.

Definition at line 97 of file kssl.cc.

## Member Function Documentation

int KSSL::accept | ( | int | sock | ) |

Connect the SSL session to the remote host using the provided socket descriptor.

This is for use with an SSL server application.

Parameters

  sock | the socket descriptor to connect with. This must be an already connected socket.

Returns
  1 on success, 0 on error setting the file descriptor, -1 on other error.

Definition at line 276 of file kssl.cc.

void KSSL::close | ( |  | ) |

Close the SSL session.

Definition at line 231 of file kssl.cc.

int KSSL::connect | ( | int | sock | ) |

Connect the SSL session to the remote host using the provided socket descriptor.

Parameters

  sock | the socket descriptor to connect with. This must be an already connected socket.

Returns
  1 on success, 0 on error setting the file descriptor, -1 on other error.

Definition at line 367 of file kssl.cc.

KSSLConnectionInfo & KSSL::connectionInfo | ( |  | ) |

Obtain a reference to the connection information.

Returns
  a reference to the connection information, valid after connected

See also
  KSSLConnectionInfo

Definition at line 622 of file kssl.cc.

bool KSSL::doesSSLWork | ( |  | ) |

static

Determine if SSL is available and works.

Returns
  true is SSL is available and usable

Definition at line 580 of file kssl.cc.

bool KSSL::initialize | ( |  | ) |

Initialize OpenSSL.

Returns
  true on success

This will do nothing if it is already initialized.

See also
  reInitialize

Definition at line 162 of file kssl.cc.

int KSSL::peek | ( | void * | buf,
|  | int | len
| ) |  |

Peek at available data from the remote host via SSL.

Parameters

  buf | the buffer to read the data into.
  len | the maximum length of data to read.

Returns
  the number of bytes read, 0 on an exception, or -1 on error.

Definition at line 478 of file kssl.cc.

KSSLPeerInfo & KSSL::peerInfo | ( |  | ) |

Obtain a reference to the information about the peer.

Returns
  a reference to the peer information, valid after connected

See also
  KSSLPeerInfo

Definition at line 637 of file kssl.cc.

int KSSL::pending | ( |  | ) |

Determine if data is waiting to be read.

Returns
  -1 on error, 0 if no data is waiting, > 0 if data is waiting.

Definition at line 467 of file kssl.cc.

int KSSL::read | ( | void * | buf,
|  | int | len
| ) |  |

Read data from the remote host via SSL.

Parameters

  buf | the buffer to read the data into.
  len | the maximum length of data to read.

Returns
  the number of bytes read, 0 on an exception, or -1 on error.

Definition at line 490 of file kssl.cc.

bool KSSL::reconfig | ( |  | ) |

Trigger a reread of KSSL configuration and reInitialize() KSSL.

Returns
  true on successful reinitalizations

If you setAutoReconfig() to false, then this will simply reInitialize() and not read in the new configuration.

See also
  setAutoReconfig

Definition at line 557 of file kssl.cc.

bool KSSL::reInitialize | ( |  | ) |

Reinitialize OpenSSL.

Returns
  true on success

This is not generally needed unless you are reusing the KSSL object for a new session.

See also
  initialize

Definition at line 256 of file kssl.cc.

bool KSSL::reusingSession | ( |  | ) | const

Determine if we are currently reusing an SSL session ID.

Returns
  true if we are reusing a session ID.

Definition at line 680 of file kssl.cc.

int KSSL::seedWithEGD | ( |  | ) |

This will reseed the pseudo-random number generator with the EGD (entropy gathering daemon) if the EGD is configured and enabled.

You don't need to call this yourself normally.

Returns
  0 on success

Definition at line 104 of file kssl.cc.

const KSSLSession * KSSL::session | ( |  | ) | const

Obtain a pointer to the session information.

Returns
  a pointer to the session information. This is valid after connected, while connected. It is deleted by the KSSL object which returns it. May return 0L if no valid session exists.

See also
  KSSLSession

Definition at line 676 of file kssl.cc.

void KSSL::setAutoReconfig | ( | bool | ar | ) |

Enable or disable automatic reconfiguration on initialize().

Parameters

  ar | Set to false in order to disable auto-reloading of the KSSL configuration during initialize().

By default, KSSL will read its configuration on initialize(). You might want to disable this for performance reasons.

Definition at line 562 of file kssl.cc.

bool KSSL::setClientCertificate | ( | KSSLPKCS12 * | pkcs | ) |

Use this to set the certificate to send to the server.

Do NOT delete the KSSLPKCS12 object until you are done with the session. It is not defined when KSSL will be done with this.

Parameters

  pkcs | the valid PKCS#12 object to send.

Returns
  true if the certificate was properly set to the session.

Definition at line 642 of file kssl.cc.

void KSSL::setPeerHost | ( | QString | realHost = `QString::null` | ) |

Set the peer hostname to be used for certificate verification.

Parameters

  realHost | the remote hostname as the user believes to be connecting to

Definition at line 628 of file kssl.cc.

void KSSL::setProxyUse | ( | bool | active,
|  | QString | realIP = `QString::null`,
|  | int | realPort = `0`,
|  | QString | proxy = `QString::null`
| ) |  |

Set the status of the connection with respect to proxies.

Parameters

  active | is not used
  realIP | is the IP address of the host you're connecting to
  realPort | is the port of the host you're connecting to
  proxy | is the IP or hostname of the proxy server

Deprecated:

Definition at line 633 of file kssl.cc.

bool KSSL::setSession | ( | const KSSLSession * | session | ) |

Set an SSL session to use.

This deep copies the session so it doesn't have to remain valid. You need to call it after calling initialize or reInitialize. The ID is cleared in close().

Parameters

  session | A valid session to reuse. If 0L, it will clear the session ID in memory.

Returns
  true on success

Definition at line 210 of file kssl.cc.

bool KSSL::setSettings | ( | KSSLSettings * | settings | ) |

Set a new KSSLSettings instance as the settings.

This deletes the current instance of KSSLSettings.

Parameters

  settings | A new, valid settings object.

Returns
  true on success

Definition at line 567 of file kssl.cc.

KSSLSettings* KSSL::settings | ( |  | ) |

inline

One is built by the constructor, so this will only return a NULL pointer if you set one with setSettings().

Returns
  the current settings instance

Definition at line 159 of file kssl.h.

bool KSSL::TLSInit | ( |  | ) |

This is used for applicationss which do STARTTLS or something similar.

It creates a TLS method regardless of the user's settings.

Returns
  true if TLS is successfully initialized

Definition at line 125 of file kssl.cc.

int KSSL::write | ( | const void * | buf,
|  | int | len
| ) |  |

Write data to the remote host via SSL.

Parameters

  buf | the buffer to read the data from.
  len | the length of data to send from the buffer.

Returns
  the number of bytes written, 0 on an exception, or -1 on error.

Definition at line 529 of file kssl.cc.

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

- kssl.h
- kssl.cc

KDE Home | KDE Accessibility Home | Description of Access Keys