kio Library API Documentation

KSSL Class Reference

KDE SSL Wrapper Class KDE SSL Class. More...

#include <kssl.h>

List of all members.

Public Methods

 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)
KSSLSettingssettings ()
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 ()
KSSLConnectionInfoconnectionInfo ()
KSSLPeerInfopeerInfo ()
const KSSLSessionsession () const
bool reusingSession () const

Static Public Methods

bool doesSSLWork ()


Detailed Description

KDE SSL Wrapper Class KDE SSL Class.

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

Author:
George Staikos <staikos@kde.org>
See also:
KExtendedSocket, TCPSlaveBase

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.

References initialize().

KSSL::~KSSL  
 

Destroy this KSSL object.

Does not close any socket.

Definition at line 97 of file kssl.cc.

References close().


Member Function Documentation

bool KSSL::doesSSLWork   [static]
 

Determine if SSL is available and works.

Returns:
true is SSL is available and usable

Definition at line 547 of file kssl.cc.

Referenced by KIO::TCPSlaveBase::canUseTLS(), KIO::TCPSlaveBase::initializeSSL(), KSSLInfoDlg::KSSLInfoDlg(), KSSLInfoDlg::setSecurityInQuestion(), and KIO::TCPSlaveBase::startTLS().

bool KSSL::initialize  
 

Initialize OpenSSL.

Returns:
true on success
This will do nothing if it is already initialized.
See also:
reInitialize

Definition at line 160 of file kssl.cc.

References QString::ascii(), KSSLSettings::getCipherList(), QString::isEmpty(), KSSLSettings::load(), KSSLPeerInfo::reset(), seedWithEGD(), KSSLSettings::sslv2(), and KSSLSettings::sslv3().

Referenced by KSSL(), and reInitialize().

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.

References QString::ascii(), KSSLSettings::getCipherList(), QString::isEmpty(), KSSLSettings::load(), seedWithEGD(), and KSSLSettings::tlsv1().

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 206 of file kssl.cc.

References KSSLSession::_session.

void KSSL::close  
 

Close the SSL session.

Definition at line 227 of file kssl.cc.

References KSSLSettings::getEGDPath(), QString::isEmpty(), QString::latin1(), and KSSLSettings::useEFile().

Referenced by reInitialize(), and ~KSSL().

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 254 of file kssl.cc.

References close(), and initialize().

Referenced by reconfig().

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 524 of file kssl.cc.

References reInitialize().

Referenced by setSettings().

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 529 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.

References KSSLSettings::getEGDPath(), QString::isEmpty(), QString::latin1(), KSSLSettings::useEFile(), and KSSLSettings::useEGD().

Referenced by initialize(), and TLSInit().

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 534 of file kssl.cc.

References reconfig().

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::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 609 of file kssl.cc.

References KSSLX509V3::certTypeSSLClient(), KSSLCertificate::getCert(), KSSLPKCS12::getCertificate(), KSSLPKCS12::getPrivateKey(), and KSSLCertificate::x509V3Extensions().

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:
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 600 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 595 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 355 of file kssl.cc.

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 274 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 467 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 456 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 498 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 445 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 589 of file kssl.cc.

Referenced by KSSLInfoDlg::setup().

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 604 of file kssl.cc.

Referenced by KSSLInfoDlg::setup().

const KSSLSession * KSSL::session  
 

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 643 of file kssl.cc.

bool KSSL::reusingSession  
 

Determine if we are currently reusing an SSL session ID.

Returns:
true if we are reusing a session ID.

Definition at line 647 of file kssl.cc.


The documentation for this class was generated from the following files:
KDE Logo
This file is part of the documentation for kio Library Version 3.2.0.
Documentation copyright © 1996-2004 the KDE developers.
Generated on Wed Feb 4 12:35:15 2004 by doxygen 1.2.18 written by Dimitri van Heesch, © 1997-2003