QCA::TLSContext

Search for usage in LXR

#include <QtCrypto>

Inheritance diagram for QCA::TLSContext:

Classes

class  SessionInfo
 

Public Types

enum  Result { Success , Error , Continue }
 
- Public Types inherited from QObject
typedef  QObjectList
 

Signals

void dtlsTimeout ()
 
void resultsReady ()
 

Public Member Functions

 TLSContext (Provider *p, const QString &type)
 
virtual bool canCompress () const =0
 
virtual bool canSetHostName () const =0
 
virtual bool certificateRequested () const =0
 
virtual bool clientHelloReceived () const =0
 
virtual int encoded () const =0
 
virtual bool eof () const =0
 
virtual QString hostName () const =0
 
virtual QList< CertificateInfoOrderedissuerList () const =0
 
virtual int maxSSF () const =0
 
virtual CertificateChain peerCertificateChain () const =0
 
virtual Validity peerCertificateValidity () const =0
 
virtual void reset ()=0
 
virtual Result result () const =0
 
virtual bool serverHelloReceived () const =0
 
virtual SessionInfo sessionInfo () const =0
 
virtual void setCertificate (const CertificateChain &cert, const PrivateKey &key)=0
 
virtual void setConstraints (const QStringList &cipherSuiteList)=0
 
virtual void setConstraints (int minSSF, int maxSSF)=0
 
virtual void setIssuerList (const QList< CertificateInfoOrdered > &issuerList)=0
 
virtual void setMTU (int size)
 
virtual void setSessionId (const TLSSessionContext &id)=0
 
virtual void setTrustedCertificates (const CertificateCollection &trusted)=0
 
virtual void setup (bool serverMode, const QString &hostName, bool compress)=0
 
virtual void shutdown ()=0
 
virtual void start ()=0
 
virtual QStringList supportedCipherSuites (const TLS::Version &version) const =0
 
virtual QByteArray to_app ()=0
 
virtual QByteArray to_net ()=0
 
virtual QByteArray unprocessed ()=0
 
virtual void update (const QByteArray &from_net, const QByteArray &from_app)=0
 
virtual bool waitForResultsReady (int msecs)=0
 
- Public Member Functions inherited from QCA::Provider::Context
virtual Contextclone () const =0
 
Providerprovider () const
 
bool sameProvider (const Context *c) const
 
QString type () const
 
- Public Member Functions inherited from QObject
 QObject (QObject *parent)
 
QBindable< QStringbindableObjectName ()
 
bool blockSignals (bool block)
 
const QObjectListchildren () const const
 
QMetaObject::Connection connect (const QObject *sender, const char *signal, const char *method, Qt::ConnectionType type) const const
 
void deleteLater ()
 
void destroyed (QObject *obj)
 
bool disconnect (const char *signal, const QObject *receiver, const char *method) const const
 
bool disconnect (const QObject *receiver, const char *method) const const
 
void dumpObjectInfo () const const
 
void dumpObjectTree () const const
 
QList< QByteArraydynamicPropertyNames () const const
 
virtual bool event (QEvent *e)
 
virtual bool eventFilter (QObject *watched, QEvent *event)
 
findChild (const QString &name, Qt::FindChildOptions options) const const
 
QList< T > findChildren (const QRegularExpression &re, Qt::FindChildOptions options) const const
 
QList< T > findChildren (const QString &name, Qt::FindChildOptions options) const const
 
QList< T > findChildren (Qt::FindChildOptions options) const const
 
bool inherits (const char *className) const const
 
void installEventFilter (QObject *filterObj)
 
bool isQuickItemType () const const
 
bool isWidgetType () const const
 
bool isWindowType () const const
 
void killTimer (int id)
 
virtual const QMetaObjectmetaObject () const const
 
void moveToThread (QThread *targetThread)
 
QString objectName () const const
 
void objectNameChanged (const QString &objectName)
 
QObjectparent () const const
 
QVariant property (const char *name) const const
 
 Q_CLASSINFO (Name, Value)
 
 Q_EMIT Q_EMIT
 
 Q_ENUM (...)
 
 Q_ENUM_NS (...)
 
 Q_ENUMS (...)
 
 Q_FLAG (...)
 
 Q_FLAG_NS (...)
 
 Q_FLAGS (...)
 
 Q_GADGET Q_GADGET
 
 Q_GADGET_EXPORT (EXPORT_MACRO)
 
 Q_INTERFACES (...)
 
 Q_INVOKABLE Q_INVOKABLE
 
 Q_MOC_INCLUDE Q_MOC_INCLUDE
 
 Q_NAMESPACE Q_NAMESPACE
 
 Q_NAMESPACE_EXPORT (EXPORT_MACRO)
 
 Q_OBJECT Q_OBJECT
 
 Q_PROPERTY (...)
 
 Q_REVISION Q_REVISION
 
 Q_SET_OBJECT_NAME (Object)
 
 Q_SIGNAL Q_SIGNAL
 
 Q_SIGNALS Q_SIGNALS
 
 Q_SLOT Q_SLOT
 
 Q_SLOTS Q_SLOTS
 
qobject_cast (const QObject *object)
 
qobject_cast (QObject *object)
 
 QT_NO_NARROWING_CONVERSIONS_IN_CONNECT QT_NO_NARROWING_CONVERSIONS_IN_CONNECT
 
void removeEventFilter (QObject *obj)
 
void setObjectName (const QString &name)
 
void setObjectName (QAnyStringView name)
 
void setParent (QObject *parent)
 
bool setProperty (const char *name, const QVariant &value)
 
bool setProperty (const char *name, QVariant &&value)
 
bool signalsBlocked () const const
 
int startTimer (int interval, Qt::TimerType timerType)
 
int startTimer (std::chrono::milliseconds interval, Qt::TimerType timerType)
 
QThreadthread () const const
 

Additional Inherited Members

- Properties inherited from QObject
 objectName
 
- Static Public Member Functions inherited from QObject
QMetaObject::Connection connect (const QObject *sender, const char *signal, const QObject *receiver, const char *method, Qt::ConnectionType type)
 
QMetaObject::Connection connect (const QObject *sender, const QMetaMethod &signal, const QObject *receiver, const QMetaMethod &method, Qt::ConnectionType type)
 
QMetaObject::Connection connect (const QObject *sender, PointerToMemberFunction signal, const QObject *context, Functor functor, Qt::ConnectionType type)
 
QMetaObject::Connection connect (const QObject *sender, PointerToMemberFunction signal, const QObject *receiver, PointerToMemberFunction method, Qt::ConnectionType type)
 
QMetaObject::Connection connect (const QObject *sender, PointerToMemberFunction signal, Functor functor)
 
bool disconnect (const QMetaObject::Connection &connection)
 
bool disconnect (const QObject *sender, const char *signal, const QObject *receiver, const char *method)
 
bool disconnect (const QObject *sender, const QMetaMethod &signal, const QObject *receiver, const QMetaMethod &method)
 
bool disconnect (const QObject *sender, PointerToMemberFunction signal, const QObject *receiver, PointerToMemberFunction method)
 
QString tr (const char *sourceText, const char *disambiguation, int n)
 
- Protected Member Functions inherited from QCA::Provider::Context
 Context (const Context &from)
 
 Context (Provider *parent, const QString &type)
 
- Protected Member Functions inherited from QObject
virtual void childEvent (QChildEvent *event)
 
virtual void connectNotify (const QMetaMethod &signal)
 
virtual void customEvent (QEvent *event)
 
virtual void disconnectNotify (const QMetaMethod &signal)
 
bool isSignalConnected (const QMetaMethod &signal) const const
 
int receivers (const char *signal) const const
 
QObjectsender () const const
 
int senderSignalIndex () const const
 
virtual void timerEvent (QTimerEvent *event)
 

Detailed Description

TLS provider.

Note
This class is part of the provider plugin interface and should not be used directly by applications. You probably want TLS instead.

Definition at line 2239 of file qcaprovider.h.

Member Enumeration Documentation

◆ Result

Result of a TLS operation.

Enumerator
Success 

Operation completed.

Error 

Operation failed.

Continue 

More data needed to complete operation.

Definition at line 2293 of file qcaprovider.h.

Constructor & Destructor Documentation

◆ TLSContext()

QCA::TLSContext::TLSContext ( Provider * p,
const QString & type )
inline

Standard constructor.

Parameters
pthe Provider associated with this context
typethe name of the type of feature that supported by this context

Definition at line 2306 of file qcaprovider.h.

Member Function Documentation

◆ canCompress()

virtual bool QCA::TLSContext::canCompress ( ) const
pure virtual

Returns true if the provider supports compression.

◆ canSetHostName()

virtual bool QCA::TLSContext::canSetHostName ( ) const
pure virtual

Returns true if the provider supports server name indication.

◆ certificateRequested()

virtual bool QCA::TLSContext::certificateRequested ( ) const
pure virtual

Returns true if the peer is requesting a certificate.

This is only valid if a handshake is in progress or completed.

◆ clientHelloReceived()

virtual bool QCA::TLSContext::clientHelloReceived ( ) const
pure virtual

Returns true if the TLS client hello has been received.

This is only valid if a handshake is in progress or completed.

◆ dtlsTimeout

void QCA::TLSContext::dtlsTimeout ( )
signal

Emit this to force the application to call update(), even with empty arguments.

◆ encoded()

virtual int QCA::TLSContext::encoded ( ) const
pure virtual

Returns the number of bytes of plaintext data that is encoded inside of to_net()

◆ eof()

virtual bool QCA::TLSContext::eof ( ) const
pure virtual

Returns true if the peer has closed the stream.

◆ hostName()

virtual QString QCA::TLSContext::hostName ( ) const
pure virtual

Returns the host name sent by the client using server name indication (server mode only)

This is only valid if a handshake is in progress or completed.

◆ issuerList()

virtual QList< CertificateInfoOrdered > QCA::TLSContext::issuerList ( ) const
pure virtual

Returns the issuer list sent by the server (client mode only)

This is only valid if a handshake is in progress or completed.

◆ maxSSF()

virtual int QCA::TLSContext::maxSSF ( ) const
pure virtual

Returns the maximum SSF supported by this provider.

◆ peerCertificateChain()

virtual CertificateChain QCA::TLSContext::peerCertificateChain ( ) const
pure virtual

Returns the peer certificate chain.

This is only valid if a handshake is completed.

◆ peerCertificateValidity()

virtual Validity QCA::TLSContext::peerCertificateValidity ( ) const
pure virtual

Returns the QCA::Validity of the peer certificate.

This is only valid if a handshake is completed.

◆ reset()

virtual void QCA::TLSContext::reset ( )
pure virtual

Reset the object to its initial state.

◆ result()

virtual Result QCA::TLSContext::result ( ) const
pure virtual

Returns the result code of an operation.

◆ resultsReady

void QCA::TLSContext::resultsReady ( )
signal

Emit this when a start() or update() operation has completed.

◆ serverHelloReceived()

virtual bool QCA::TLSContext::serverHelloReceived ( ) const
pure virtual

Returns true if the TLS server hello has been received.

This is only valid if a handshake is in progress or completed.

◆ sessionInfo()

virtual SessionInfo QCA::TLSContext::sessionInfo ( ) const
pure virtual

Returns information about the active TLS session.

This is only valid if a handshake is completed.

◆ setCertificate()

virtual void QCA::TLSContext::setCertificate ( const CertificateChain & cert,
const PrivateKey & key )
pure virtual

Set the local certificate.

This function may be called at any time.

Parameters
certthe certificate and associated trust chain
keythe private key for the local certificate

◆ setConstraints() [1/2]

virtual void QCA::TLSContext::setConstraints ( const QStringList & cipherSuiteList)
pure virtual

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.Set the constraints of the session using a cipher suite list.

This function will be called before start().

Parameters
cipherSuiteListthe list of cipher suites that may be used for this session.
See also
supportedCipherSuites

◆ setConstraints() [2/2]

virtual void QCA::TLSContext::setConstraints ( int minSSF,
int maxSSF )
pure virtual

Set the constraints of the session using SSF values.

This function will be called before start().

Parameters
minSSFthe minimum strength factor that is acceptable
maxSSFthe maximum strength factor that is acceptable

◆ setIssuerList()

virtual void QCA::TLSContext::setIssuerList ( const QList< CertificateInfoOrdered > & issuerList)
pure virtual

Set the list of acceptable issuers.

This function may be called at any time.

This function is for server mode only.

Parameters
issuerListthe list of issuers that may be used

◆ setMTU()

virtual void QCA::TLSContext::setMTU ( int size)
virtual

Set the maximum transmission unit size.

This function is for DTLS only.

Parameters
sizethe maximum number of bytes in a datagram

◆ setSessionId()

virtual void QCA::TLSContext::setSessionId ( const TLSSessionContext & id)
pure virtual

Set the TLS session id, for session resuming.

This function will be called before start().

Parameters
idthe session identification

◆ setTrustedCertificates()

virtual void QCA::TLSContext::setTrustedCertificates ( const CertificateCollection & trusted)
pure virtual

Set the list of trusted certificates.

This function may be called at any time.

Parameters
trustedthe trusted certificates and CRLs to be used.

◆ setup()

virtual void QCA::TLSContext::setup ( bool serverMode,
const QString & hostName,
bool compress )
pure virtual

Configure a new session.

This function will be called before any other configuration functions.

Parameters
serverModewhether to operate as a server (true) or client (false)
hostNamethe hostname to use
compresswhether to compress (true) or not (false)

◆ shutdown()

virtual void QCA::TLSContext::shutdown ( )
pure virtual

Sets the session to the shutdown state.

The actual shutdown operation will happen at a future call to update().

This function is for normal TLS only (not DTLS).

◆ start()

virtual void QCA::TLSContext::start ( )
pure virtual

Begins the session, starting with the handshake.

This function returns immediately, and completion is signaled with the resultsReady() signal.

On completion, the result() function will return Success if the TLS session is able to begin, or Error if there is a failure to initialize the TLS subsystem. If successful, the session is now in the handshake state, and update() will be called repeatedly until the session ends.

◆ supportedCipherSuites()

virtual QStringList QCA::TLSContext::supportedCipherSuites ( const TLS::Version & version) const
pure virtual

Returns a list of supported cipher suites for the specified SSL/TLS version.

The cipher suites are specified as strings, for example: "TLS_DHE_RSA_WITH_3DES_EDE_CBC_SHA" (without quotes).

Parameters
versionthe version of TLS to search for

◆ to_app()

virtual QByteArray QCA::TLSContext::to_app ( )
pure virtual

Returns data that is decoded from the network and should be processed by the application.

◆ to_net()

virtual QByteArray QCA::TLSContext::to_net ( )
pure virtual

Returns data that should be sent across the network.

◆ unprocessed()

virtual QByteArray QCA::TLSContext::unprocessed ( )
pure virtual

Returns any unprocessed network input data.

This is only valid after a successful shutdown.

◆ update()

virtual void QCA::TLSContext::update ( const QByteArray & from_net,
const QByteArray & from_app )
pure virtual

Performs one iteration of the TLS session processing.

This function returns immediately, and completion is signaled with the resultsReady() signal.

If the session is in a handshake state, result() and to_net() will be valid. If result() is Success, then the session is now in the connected state.

If the session is in a shutdown state, result() and to_net() will be valid. If result() is Success, then the session has ended.

If the session is in a connected state, result(), to_net(), encoded(), to_app(), and eof() are valid. The result() function will return Success or Error. Note that eof() does not apply to DTLS.

For DTLS, this function operates with single packets. Many update() operations must be performed repeatedly to exchange multiple packets.

Parameters
from_netthe data from the "other side" of the connection
from_appthe data from the application of the protocol

◆ waitForResultsReady()

virtual bool QCA::TLSContext::waitForResultsReady ( int msecs)
pure virtual

Waits for a start() or update() operation to complete.

In this case, the resultsReady() signal is not emitted. Returns true if the operation completed or false if this function times out.

This function is blocking.

Parameters
msecsnumber of milliseconds to wait (-1 to wait forever)

The documentation for this class was generated from the following file:
This file is part of the KDE documentation.
Documentation copyright © 1996-2024 The KDE developers.
Generated on Fri Nov 8 2024 11:53:14 by doxygen 1.12.0 written by Dimitri van Heesch, © 1997-2006

KDE's Doxygen guidelines are available online.