Qt 4.8
|
The QSslSocket class provides an SSL encrypted socket for both clients and servers. More...
#include <qsslsocket.h>
Public Slots | |
void | ignoreSslErrors () |
This slot tells QSslSocket to ignore errors during QSslSocket's handshake phase and continue connecting. More... | |
void | startClientEncryption () |
Starts a delayed SSL handshake for a client connection. More... | |
void | startServerEncryption () |
Starts a delayed SSL handshake for a server connection. More... | |
Public Slots inherited from QObject | |
void | deleteLater () |
Schedules this object for deletion. More... | |
Signals | |
void | encrypted () |
This signal is emitted when QSslSocket enters encrypted mode. More... | |
void | encryptedBytesWritten (qint64 totalBytes) |
This signal is emitted when QSslSocket writes its encrypted data to the network. More... | |
void | modeChanged (QSslSocket::SslMode newMode) |
This signal is emitted when QSslSocket changes from QSslSocket::UnencryptedMode to either QSslSocket::SslClientMode or QSslSocket::SslServerMode . More... | |
void | peerVerifyError (const QSslError &error) |
QSslSocket can emit this signal several times during the SSL handshake, before encryption has been established, to indicate that an error has occurred while establishing the identity of the peer. More... | |
void | sslErrors (const QList< QSslError > &errors) |
QSslSocket emits this signal after the SSL handshake to indicate that one or more errors have occurred while establishing the identity of the peer. More... | |
Signals inherited from QAbstractSocket | |
void | connected () |
This signal is emitted after connectToHost() has been called and a connection has been successfully established. More... | |
void | disconnected () |
This signal is emitted when the socket has been disconnected. More... | |
void | error (QAbstractSocket::SocketError) |
This signal is emitted after an error occurred. More... | |
void | hostFound () |
This signal is emitted after connectToHost() has been called and the host lookup has succeeded. More... | |
void | proxyAuthenticationRequired (const QNetworkProxy &proxy, QAuthenticator *authenticator) |
void | stateChanged (QAbstractSocket::SocketState) |
This signal is emitted whenever QAbstractSocket's state changes. More... | |
Signals inherited from QIODevice | |
void | aboutToClose () |
This signal is emitted when the device is about to close. More... | |
void | bytesWritten (qint64 bytes) |
This signal is emitted every time a payload of data has been written to the device. More... | |
void | readChannelFinished () |
This signal is emitted when the input (reading) stream is closed in this device. More... | |
void | readyRead () |
This signal is emitted once every time new data is available for reading from the device. More... | |
Signals inherited from QObject | |
void | destroyed (QObject *=0) |
This signal is emitted immediately before the object obj is destroyed, and can not be blocked. More... | |
Public Functions | |
void | abort () |
Aborts the current connection and resets the socket. More... | |
void | addCaCertificate (const QSslCertificate &certificate) |
Adds the certificate to this socket's CA certificate database. More... | |
bool | addCaCertificates (const QString &path, QSsl::EncodingFormat format=QSsl::Pem, QRegExp::PatternSyntax syntax=QRegExp::FixedString) |
Searches all files in the path for certificates encoded in the specified format and adds them to this socket's CA certificate database. More... | |
void | addCaCertificates (const QList< QSslCertificate > &certificates) |
Adds the certificates to this socket's CA certificate database. More... | |
bool | atEnd () const |
Reimplemented Function More... | |
qint64 | bytesAvailable () const |
Returns the number of decrypted bytes that are immediately available for reading. More... | |
qint64 | bytesToWrite () const |
Returns the number of unencrypted bytes that are waiting to be encrypted and written to the network. More... | |
QList< QSslCertificate > | caCertificates () const |
Returns this socket's CA certificate database. More... | |
bool | canReadLine () const |
Returns true if you can read one while line (terminated by a single ASCII ' ' character) of decrypted characters; otherwise, false is returned. More... | |
QList< QSslCipher > | ciphers () const |
Returns this socket's current cryptographic cipher suite. More... | |
void | close () |
Reimplemented Function More... | |
void | connectToHostEncrypted (const QString &hostName, quint16 port, OpenMode mode=ReadWrite) |
Starts an encrypted connection to the device hostName on port, using mode as the OpenMode . More... | |
void | connectToHostEncrypted (const QString &hostName, quint16 port, const QString &sslPeerName, OpenMode mode=ReadWrite) |
In addition to the original behaviour of connectToHostEncrypted, this overloaded method enables the usage of a different hostname (sslPeerName) for the certificate validation instead of the one used for the TCP connection (hostName). More... | |
qint64 | encryptedBytesAvailable () const |
Returns the number of encrypted bytes that are awaiting decryption. More... | |
qint64 | encryptedBytesToWrite () const |
Returns the number of encrypted bytes that are waiting to be written to the network. More... | |
bool | flush () |
This function writes as much as possible from the internal write buffer to the underlying network socket, without blocking. More... | |
void | ignoreSslErrors (const QList< QSslError > &errors) |
This method tells QSslSocket to ignore only the errors given in errors. More... | |
bool | isEncrypted () const |
Returns true if the socket is encrypted; otherwise, false is returned. More... | |
QSslCertificate | localCertificate () const |
Returns the socket's local QSslCertificate {certificate}, or an empty certificate if no local certificate has been assigned. More... | |
SslMode | mode () const |
Returns the current mode for the socket; either UnencryptedMode, where QSslSocket behaves identially to QTcpSocket, or one of SslClientMode or SslServerMode, where the client is either negotiating or in encrypted mode. More... | |
QSslCertificate | peerCertificate () const |
Returns the peer's digital certificate (i.e., the immediate certificate of the host you are connected to), or a null certificate, if the peer has not assigned a certificate. More... | |
QList< QSslCertificate > | peerCertificateChain () const |
Returns the peer's chain of digital certificates, or an empty list of certificates. More... | |
int | peerVerifyDepth () const |
Returns the maximum number of certificates in the peer's certificate chain to be checked during the SSL handshake phase, or 0 (the default) if no maximum depth has been set, indicating that the whole certificate chain should be checked. More... | |
QSslSocket::PeerVerifyMode | peerVerifyMode () const |
Returns the socket's verify mode. More... | |
QString | peerVerifyName () const |
Returns the different hostname for the certificate validation, as set by setPeerVerifyName or by connectToHostEncrypted. More... | |
QSslKey | privateKey () const |
Returns this socket's private key. More... | |
QSsl::SslProtocol | protocol () const |
Returns the socket's SSL protocol. More... | |
QSslSocket (QObject *parent=0) | |
Constructs a QSslSocket object. More... | |
QSslCipher | sessionCipher () const |
Returns the socket's cryptographic QSslCipher {cipher}, or a null cipher if the connection isn't encrypted. More... | |
void | setCaCertificates (const QList< QSslCertificate > &certificates) |
Sets this socket's CA certificate database to be certificates. More... | |
void | setCiphers (const QList< QSslCipher > &ciphers) |
Sets the cryptographic cipher suite for this socket to ciphers, which must contain a subset of the ciphers in the list returned by supportedCiphers(). More... | |
void | setCiphers (const QString &ciphers) |
Sets the cryptographic cipher suite for this socket to ciphers, which is a colon-separated list of cipher suite names. More... | |
void | setLocalCertificate (const QSslCertificate &certificate) |
Sets the socket's local certificate to certificate. More... | |
void | setLocalCertificate (const QString &fileName, QSsl::EncodingFormat format=QSsl::Pem) |
Sets the socket's local QSslCertificate {certificate} to the first one found in file path, which is parsed according to the specified format. More... | |
void | setPeerVerifyDepth (int depth) |
Sets the maximum number of certificates in the peer's certificate chain to be checked during the SSL handshake phase, to depth. More... | |
void | setPeerVerifyMode (QSslSocket::PeerVerifyMode mode) |
Sets the socket's verify mode to mode. More... | |
void | setPeerVerifyName (const QString &hostName) |
Sets a different host name, given by hostName, for the certificate validation instead of the one used for the TCP connection. More... | |
void | setPrivateKey (const QSslKey &key) |
Sets the socket's private QSslKey {key} to key. More... | |
void | setPrivateKey (const QString &fileName, QSsl::KeyAlgorithm algorithm=QSsl::Rsa, QSsl::EncodingFormat format=QSsl::Pem, const QByteArray &passPhrase=QByteArray()) |
Reads the string in file fileName and decodes it using a specified algorithm and encoding format to construct an QSslKey {SSL key}. More... | |
void | setProtocol (QSsl::SslProtocol protocol) |
Sets the socket's SSL protocol to protocol. More... | |
void | setReadBufferSize (qint64 size) |
Sets the size of QSslSocket's internal read buffer to be size bytes. More... | |
bool | setSocketDescriptor (int socketDescriptor, SocketState state=ConnectedState, OpenMode openMode=ReadWrite) |
Initializes QSslSocket with the native socket descriptor socketDescriptor. More... | |
void | setSocketOption (QAbstractSocket::SocketOption option, const QVariant &value) |
Sets the given option to the value described by value. More... | |
void | setSslConfiguration (const QSslConfiguration &config) |
Sets the socket's SSL configuration to be the contents of configuration. More... | |
QVariant | socketOption (QAbstractSocket::SocketOption option) |
Returns the value of the option option. More... | |
QSslConfiguration | sslConfiguration () const |
Returns the socket's SSL configuration state. More... | |
QList< QSslError > | sslErrors () const |
Returns a list of the last SSL errors that occurred. More... | |
bool | waitForBytesWritten (int msecs=30000) |
Reimplemented Function More... | |
bool | waitForConnected (int msecs=30000) |
Waits until the socket is connected, or msecs milliseconds, whichever happens first. More... | |
bool | waitForDisconnected (int msecs=30000) |
Waits until the socket has disconnected or msecs milliseconds, whichever comes first. More... | |
bool | waitForEncrypted (int msecs=30000) |
Waits until the socket has completed the SSL handshake and has emitted encrypted(), or msecs milliseconds, whichever comes first. More... | |
bool | waitForReadyRead (int msecs=30000) |
Reimplemented Function More... | |
~QSslSocket () | |
Destroys the QSslSocket. More... | |
Public Functions inherited from QTcpSocket | |
QTcpSocket (QObject *parent=0) | |
Creates a QTcpSocket object in state UnconnectedState . More... | |
virtual | ~QTcpSocket () |
Destroys the socket, closing the connection if necessary. More... | |
Public Functions inherited from QAbstractSocket | |
void | abort () |
Aborts the current connection and resets the socket. More... | |
void | connectToHost (const QString &hostName, quint16 port, OpenMode mode=ReadWrite) |
Attempts to make a connection to hostName on the given port. More... | |
void | connectToHost (const QHostAddress &address, quint16 port, OpenMode mode=ReadWrite) |
Attempts to make a connection to address on port port. More... | |
void | disconnectFromHost () |
Attempts to close the socket. More... | |
SocketError | error () const |
Returns the type of error that last occurred. More... | |
bool | flush () |
This function writes as much as possible from the internal write buffer to the underlying network socket, without blocking. More... | |
bool | isSequential () const |
Reimplemented Function More... | |
bool | isValid () const |
Returns true if the socket is valid and ready for use; otherwise returns false. More... | |
QHostAddress | localAddress () const |
Returns the host address of the local socket if available; otherwise returns QHostAddress::Null. More... | |
quint16 | localPort () const |
Returns the host port number (in native byte order) of the local socket if available; otherwise returns 0. More... | |
QHostAddress | peerAddress () const |
Returns the address of the connected peer if the socket is in ConnectedState; otherwise returns QHostAddress::Null. More... | |
QString | peerName () const |
Returns the name of the peer as specified by connectToHost(), or an empty QString if connectToHost() has not been called. More... | |
quint16 | peerPort () const |
Returns the port of the connected peer if the socket is in ConnectedState; otherwise returns 0. More... | |
QNetworkProxy | proxy () const |
Returns the network proxy for this socket. More... | |
QAbstractSocket (SocketType socketType, QObject *parent) | |
Creates a new abstract socket of type socketType. More... | |
qint64 | readBufferSize () const |
Returns the size of the internal read buffer. More... | |
void | setProxy (const QNetworkProxy &networkProxy) |
Sets the explicit network proxy for this socket to networkProxy. More... | |
void | setReadBufferSize (qint64 size) |
Sets the size of QAbstractSocket's internal read buffer to be size bytes. More... | |
bool | setSocketDescriptor (int socketDescriptor, SocketState state=ConnectedState, OpenMode openMode=ReadWrite) |
Initializes QAbstractSocket with the native socket descriptor socketDescriptor. More... | |
void | setSocketOption (QAbstractSocket::SocketOption option, const QVariant &value) |
Sets the given option to the value described by value. More... | |
int | socketDescriptor () const |
Returns the native socket descriptor of the QAbstractSocket object if this is available; otherwise returns -1. More... | |
QVariant | socketOption (QAbstractSocket::SocketOption option) |
Returns the value of the option option. More... | |
SocketType | socketType () const |
Returns the socket type (TCP, UDP, or other). More... | |
SocketState | state () const |
Returns the state of the socket. More... | |
bool | waitForConnected (int msecs=30000) |
Waits until the socket is connected, up to msecs milliseconds. More... | |
bool | waitForDisconnected (int msecs=30000) |
Waits until the socket has disconnected, up to msecs milliseconds. More... | |
virtual | ~QAbstractSocket () |
Destroys the socket. More... | |
Public Functions inherited from QIODevice | |
QString | errorString () const |
Returns a human-readable description of the last device error that occurred. More... | |
bool | getChar (char *c) |
Reads one character from the device and stores it in c. More... | |
bool | isOpen () const |
Returns true if the device is open; otherwise returns false. More... | |
bool | isReadable () const |
Returns true if data can be read from the device; otherwise returns false. More... | |
bool | isTextModeEnabled () const |
Returns true if the Text flag is enabled; otherwise returns false. More... | |
bool | isWritable () const |
Returns true if data can be written to the device; otherwise returns false. More... | |
virtual bool | open (OpenMode mode) |
Opens the device and sets its OpenMode to mode. More... | |
OpenMode | openMode () const |
Returns the mode in which the device has been opened; i.e. More... | |
qint64 | peek (char *data, qint64 maxlen) |
Reads at most maxSize bytes from the device into data, without side effects (i. More... | |
QByteArray | peek (qint64 maxlen) |
Peeks at most maxSize bytes from the device, returning the data peeked as a QByteArray. More... | |
virtual qint64 | pos () const |
For random-access devices, this function returns the position that data is written to or read from. More... | |
bool | putChar (char c) |
Writes the character c to the device. More... | |
QIODevice () | |
Constructs a QIODevice object. More... | |
QIODevice (QObject *parent) | |
Constructs a QIODevice object with the given parent. More... | |
qint64 | read (char *data, qint64 maxlen) |
Reads at most maxSize bytes from the device into data, and returns the number of bytes read. More... | |
QByteArray | read (qint64 maxlen) |
Reads at most maxSize bytes from the device, and returns the data read as a QByteArray. More... | |
QByteArray | readAll () |
Reads all available data from the device, and returns it as a QByteArray. More... | |
qint64 | readLine (char *data, qint64 maxlen) |
This function reads a line of ASCII characters from the device, up to a maximum of maxSize - 1 bytes, stores the characters in data, and returns the number of bytes read. More... | |
QByteArray | readLine (qint64 maxlen=0) |
Reads a line from the device, but no more than maxSize characters, and returns the result as a QByteArray. More... | |
virtual bool | reset () |
Seeks to the start of input for random-access devices. More... | |
virtual bool | seek (qint64 pos) |
For random-access devices, this function sets the current position to pos, returning true on success, or false if an error occurred. More... | |
void | setTextModeEnabled (bool enabled) |
If enabled is true, this function sets the Text flag on the device; otherwise the Text flag is removed. More... | |
virtual qint64 | size () const |
For open random-access devices, this function returns the size of the device. More... | |
void | ungetChar (char c) |
Puts the character c back into the device, and decrements the current position unless the position is 0. More... | |
qint64 | write (const char *data, qint64 len) |
Writes at most maxSize bytes of data from data to the device. More... | |
qint64 | write (const char *data) |
Writes data from a zero-terminated string of 8-bit characters to the device. More... | |
qint64 | write (const QByteArray &data) |
Writes the content of byteArray to the device. More... | |
virtual | ~QIODevice () |
The destructor is virtual, and QIODevice is an abstract base class. More... | |
Public Functions inherited from QObject | |
bool | blockSignals (bool b) |
If block is true, signals emitted by this object are blocked (i.e., emitting a signal will not invoke anything connected to it). More... | |
const QObjectList & | children () const |
Returns a list of child objects. More... | |
bool | connect (const QObject *sender, const char *signal, const char *member, Qt::ConnectionType type=Qt::AutoConnection) const |
bool | disconnect (const char *signal=0, const QObject *receiver=0, const char *member=0) |
bool | disconnect (const QObject *receiver, const char *member=0) |
void | dumpObjectInfo () |
Dumps information about signal connections, etc. More... | |
void | dumpObjectTree () |
Dumps a tree of children to the debug output. More... | |
QList< QByteArray > | dynamicPropertyNames () const |
Returns the names of all properties that were dynamically added to the object using setProperty(). More... | |
virtual bool | event (QEvent *) |
This virtual function receives events to an object and should return true if the event e was recognized and processed. More... | |
virtual bool | eventFilter (QObject *, QEvent *) |
Filters events if this object has been installed as an event filter for the watched object. More... | |
template<typename T > | |
T | findChild (const QString &aName=QString()) const |
Returns the child of this object that can be cast into type T and that is called name, or 0 if there is no such object. More... | |
template<typename T > | |
QList< T > | findChildren (const QString &aName=QString()) const |
Returns all children of this object with the given name that can be cast to type T, or an empty list if there are no such objects. More... | |
template<typename T > | |
QList< T > | findChildren (const QRegExp &re) const |
bool | inherits (const char *classname) const |
Returns true if this object is an instance of a class that inherits className or a QObject subclass that inherits className; otherwise returns false. More... | |
void | installEventFilter (QObject *) |
Installs an event filter filterObj on this object. More... | |
bool | isWidgetType () const |
Returns true if the object is a widget; otherwise returns false. More... | |
void | killTimer (int id) |
Kills the timer with timer identifier, id. More... | |
virtual const QMetaObject * | metaObject () const |
Returns a pointer to the meta-object of this object. More... | |
void | moveToThread (QThread *thread) |
Changes the thread affinity for this object and its children. More... | |
QString | objectName () const |
QObject * | parent () const |
Returns a pointer to the parent object. More... | |
QVariant | property (const char *name) const |
Returns the value of the object's name property. More... | |
Q_INVOKABLE | QObject (QObject *parent=0) |
Constructs an object with parent object parent. More... | |
void | removeEventFilter (QObject *) |
Removes an event filter object obj from this object. More... | |
void | setObjectName (const QString &name) |
void | setParent (QObject *) |
Makes the object a child of parent. More... | |
bool | setProperty (const char *name, const QVariant &value) |
Sets the value of the object's name property to value. More... | |
void | setUserData (uint id, QObjectUserData *data) |
bool | signalsBlocked () const |
Returns true if signals are blocked; otherwise returns false. More... | |
int | startTimer (int interval) |
Starts a timer and returns a timer identifier, or returns zero if it could not start a timer. More... | |
QThread * | thread () const |
Returns the thread in which the object lives. More... | |
QObjectUserData * | userData (uint id) const |
virtual | ~QObject () |
Destroys the object, deleting all its child objects. More... | |
Static Public Functions | |
static void | addDefaultCaCertificate (const QSslCertificate &certificate) |
Adds certificate to the default CA certificate database. More... | |
static bool | addDefaultCaCertificates (const QString &path, QSsl::EncodingFormat format=QSsl::Pem, QRegExp::PatternSyntax syntax=QRegExp::FixedString) |
Searches all files in the path for certificates with the specified encoding and adds them to the default CA certificate database. More... | |
static void | addDefaultCaCertificates (const QList< QSslCertificate > &certificates) |
Adds certificates to the default CA certificate database. More... | |
static QList< QSslCertificate > | defaultCaCertificates () |
Returns the current default CA certificate database. More... | |
static QList< QSslCipher > | defaultCiphers () |
Returns the default cryptographic cipher suite for all sockets in this application. More... | |
static void | setDefaultCaCertificates (const QList< QSslCertificate > &certificates) |
Sets the default CA certificate database to certificates. More... | |
static void | setDefaultCiphers (const QList< QSslCipher > &ciphers) |
Sets the default cryptographic cipher suite for all sockets in this application to ciphers, which must contain a subset of the ciphers in the list returned by supportedCiphers(). More... | |
static QList< QSslCipher > | supportedCiphers () |
Returns the list of cryptographic ciphers supported by this system. More... | |
static bool | supportsSsl () |
Returns true if this platform supports SSL; otherwise, returns false. More... | |
static QList< QSslCertificate > | systemCaCertificates () |
This function provides the CA certificate database provided by the operating system. More... | |
Static Public Functions inherited from QObject | |
static bool | connect (const QObject *sender, const char *signal, const QObject *receiver, const char *member, Qt::ConnectionType=Qt::AutoConnection) |
Creates a connection of the given type from the signal in the sender object to the method in the receiver object. More... | |
static bool | connect (const QObject *sender, const QMetaMethod &signal, const QObject *receiver, const QMetaMethod &method, Qt::ConnectionType type=Qt::AutoConnection) |
static bool | disconnect (const QObject *sender, const char *signal, const QObject *receiver, const char *member) |
Disconnects signal in object sender from method in object receiver. More... | |
static bool | disconnect (const QObject *sender, const QMetaMethod &signal, const QObject *receiver, const QMetaMethod &member) |
static uint | registerUserData () |
static QString | tr (const char *sourceText, const char *comment=0, int n=-1) |
static QString | trUtf8 (const char *sourceText, const char *comment=0, int n=-1) |
Protected Slots | |
void | connectToHostImplementation (const QString &hostName, quint16 port, OpenMode openMode) |
void | disconnectFromHostImplementation () |
Protected Slots inherited from QAbstractSocket | |
void | connectToHostImplementation (const QString &hostName, quint16 port, OpenMode mode=ReadWrite) |
Contains the implementation of connectToHost(). More... | |
void | disconnectFromHostImplementation () |
Contains the implementation of disconnectFromHost(). More... | |
Protected Functions | |
qint64 | readData (char *data, qint64 maxlen) |
Reimplemented Function More... | |
qint64 | writeData (const char *data, qint64 len) |
Reimplemented Function More... | |
Protected Functions inherited from QTcpSocket | |
QTcpSocket (QTcpSocketPrivate &dd, QObject *parent=0) | |
Protected Functions inherited from QAbstractSocket | |
QAbstractSocket (SocketType socketType, QAbstractSocketPrivate &dd, QObject *parent=0) | |
Constructs a new abstract socket of type socketType. More... | |
qint64 | readLineData (char *data, qint64 maxlen) |
Reimplemented Function More... | |
void | setLocalAddress (const QHostAddress &address) |
Sets the address on the local side of a connection to address. More... | |
void | setLocalPort (quint16 port) |
Sets the port on the local side of a connection to port. More... | |
void | setPeerAddress (const QHostAddress &address) |
Sets the address of the remote side of the connection to address. More... | |
void | setPeerName (const QString &name) |
Sets the host name of the remote peer to name. More... | |
void | setPeerPort (quint16 port) |
Sets the port of the remote side of the connection to port. More... | |
void | setSocketError (SocketError socketError) |
Sets the type of error that last occurred to socketError. More... | |
void | setSocketState (SocketState state) |
Sets the state of the socket to state. More... | |
Protected Functions inherited from QIODevice | |
QIODevice (QIODevicePrivate &dd, QObject *parent=0) | |
void | setErrorString (const QString &errorString) |
Sets the human readable description of the last device error that occurred to str. More... | |
void | setOpenMode (OpenMode openMode) |
Sets the OpenMode of the device to openMode. More... | |
Protected Functions inherited from QObject | |
virtual void | childEvent (QChildEvent *) |
This event handler can be reimplemented in a subclass to receive child events. More... | |
virtual void | connectNotify (const char *signal) |
This virtual function is called when something has been connected to signal in this object. More... | |
virtual void | customEvent (QEvent *) |
This event handler can be reimplemented in a subclass to receive custom events. More... | |
virtual void | disconnectNotify (const char *signal) |
This virtual function is called when something has been disconnected from signal in this object. More... | |
QObject (QObjectPrivate &dd, QObject *parent=0) | |
int | receivers (const char *signal) const |
Returns the number of receivers connected to the signal. More... | |
QObject * | sender () const |
Returns a pointer to the object that sent the signal, if called in a slot activated by a signal; otherwise it returns 0. More... | |
int | senderSignalIndex () const |
virtual void | timerEvent (QTimerEvent *) |
This event handler can be reimplemented in a subclass to receive timer events for the object. More... | |
Friends | |
class | QSslSocketBackendPrivate |
Additional Inherited Members | |
Static Public Variables inherited from QObject | |
static const QMetaObject | staticMetaObject |
This variable stores the meta-object for the class. More... | |
Protected Variables inherited from QObject | |
QScopedPointer< QObjectData > | d_ptr |
Static Protected Variables inherited from QObject | |
static const QMetaObject | staticQtMetaObject |
Related Functions inherited from QObject | |
T | qFindChildqFindChildren (const QObject *obj, const QString &name)() |
QList< T > | qFindChildrenqFindChildren (const QObject *obj, const QString &name)() |
QList< T > | qFindChildrenqFindChildren (const QObject *obj, const QRegExp ®Exp)() |
T * | qobject_cast (QObject *object) |
QObjectList | |
void * | qt_find_obj_child (QObject *parent, const char *type, const QString &name) |
Returns a pointer to the object named name that inherits type and with a given parent. More... | |
The QSslSocket class provides an SSL encrypted socket for both clients and servers.
QSslSocket establishes a secure, encrypted TCP connection you can use for transmitting encrypted data. It can operate in both client and server mode, and it supports modern SSL protocols, including SSLv3 and TLSv1. By default, QSslSocket uses TLSv1, but you can change the SSL protocol by calling setProtocol() as long as you do it before the handshake has started.
SSL encryption operates on top of the existing TCP stream after the socket enters the ConnectedState. There are two simple ways to establish a secure connection using QSslSocket: With an immediate SSL handshake, or with a delayed SSL handshake occurring after the connection has been established in unencrypted mode.
The most common way to use QSslSocket is to construct an object and start a secure connection by calling connectToHostEncrypted(). This method starts an immediate SSL handshake once the connection has been established.
As with a plain QTcpSocket, QSslSocket enters the HostLookupState, ConnectingState, and finally the ConnectedState, if the connection is successful. The handshake then starts automatically, and if it succeeds, the encrypted() signal is emitted to indicate the socket has entered the encrypted state and is ready for use.
Note that data can be written to the socket immediately after the return from connectToHostEncrypted() (i.e., before the encrypted() signal is emitted). The data is queued in QSslSocket until after the encrypted() signal is emitted.
An example of using the delayed SSL handshake to secure an existing connection is the case where an SSL server secures an incoming connection. Suppose you create an SSL server class as a subclass of QTcpServer. You would override QTcpServer::incomingConnection() with something like the example below, which first constructs an instance of QSslSocket and then calls setSocketDescriptor() to set the new socket's descriptor to the existing one passed in. It then initiates the SSL handshake by calling startServerEncryption().
If an error occurs, QSslSocket emits the sslErrors() signal. In this case, if no action is taken to ignore the error(s), the connection is dropped. To continue, despite the occurrence of an error, you can call ignoreSslErrors(), either from within this slot after the error occurs, or any time after construction of the QSslSocket and before the connection is attempted. This will allow QSslSocket to ignore the errors it encounters when establishing the identity of the peer. Ignoring errors during an SSL handshake should be used with caution, since a fundamental characteristic of secure connections is that they should be established with a successful handshake.
Once encrypted, you use QSslSocket as a regular QTcpSocket. When readyRead() is emitted, you can call read(), canReadLine() and readLine(), or getChar() to read decrypted data from QSslSocket's internal buffer, and you can call write() or putChar() to write data back to the peer. QSslSocket will automatically encrypt the written data for you, and emit encryptedBytesWritten() once the data has been written to the peer.
As a convenience, QSslSocket supports QTcpSocket's blocking functions waitForConnected(), waitForReadyRead(), waitForBytesWritten(), and waitForDisconnected(). It also provides waitForEncrypted(), which will block the calling thread until an encrypted connection has been established.
QSslSocket provides an extensive, easy-to-use API for handling cryptographic ciphers, private keys, and local, peer, and Certification Authority (CA) certificates. It also provides an API for handling errors that occur during the handshake phase.
The following features can also be customized:
For more information about ciphers and certificates, refer to QSslCipher and QSslCertificate.
This product includes software developed by the OpenSSL Project for use in the OpenSSL Toolkit (qmake-variable-reference.html#target-capability{TARGET.CAPABILITY} qmake variable.
Definition at line 67 of file qsslsocket.h.
Describes the peer verification modes for QSslSocket.
The default mode is AutoVerifyPeer, which selects an appropriate mode depending on the socket's QSocket::SslMode.
Enumerator | |
---|---|
VerifyNone | |
QueryPeer | |
VerifyPeer | |
AutoVerifyPeer |
Definition at line 77 of file qsslsocket.h.
enum QSslSocket::SslMode |
Describes the connection modes available for QSslSocket.
Enumerator | |
---|---|
UnencryptedMode | |
SslClientMode | |
SslServerMode |
Definition at line 71 of file qsslsocket.h.
QSslSocket::QSslSocket | ( | QObject * | parent = 0 | ) |
Constructs a QSslSocket object.
parent is passed to QObject's constructor. The new socket's QSslCipher {cipher} suite is set to the one returned by the static method defaultCiphers().
Definition at line 350 of file qsslsocket.cpp.
QSslSocket::~QSslSocket | ( | ) |
Destroys the QSslSocket.
Definition at line 364 of file qsslsocket.cpp.
void QSslSocket::abort | ( | ) |
Aborts the current connection and resets the socket.
Unlike disconnectFromHost(), this function immediately closes the socket, clearing any pending data in the write buffer.
Definition at line 893 of file qsslsocket.cpp.
void QSslSocket::addCaCertificate | ( | const QSslCertificate & | certificate | ) |
Adds the certificate to this socket's CA certificate database.
The CA certificate database is used by the socket during the handshake phase to validate the peer's certificate.
To add multiple certificates, use addCaCertificates().
Definition at line 1316 of file qsslsocket.cpp.
bool QSslSocket::addCaCertificates | ( | const QString & | path, |
QSsl::EncodingFormat | format = QSsl::Pem , |
||
QRegExp::PatternSyntax | syntax = QRegExp::FixedString |
||
) |
Searches all files in the path for certificates encoded in the specified format and adds them to this socket's CA certificate database.
path can be explicit, or it can contain wildcards in the format specified by syntax. Returns true if one or more certificates are added to the socket's CA certificate database; otherwise returns false.
The CA certificate database is used by the socket during the handshake phase to validate the peer's certificate.
For more precise control, use addCaCertificate().
Definition at line 1295 of file qsslsocket.cpp.
void QSslSocket::addCaCertificates | ( | const QList< QSslCertificate > & | certificates | ) |
Adds the certificates to this socket's CA certificate database.
The CA certificate database is used by the socket during the handshake phase to validate the peer's certificate.
For more precise control, use addCaCertificate().
Definition at line 1331 of file qsslsocket.cpp.
|
static |
Adds certificate to the default CA certificate database.
Each SSL socket's CA certificate database is initialized to the default CA certificate database.
Definition at line 1399 of file qsslsocket.cpp.
|
static |
Searches all files in the path for certificates with the specified encoding and adds them to the default CA certificate database.
path can be an explicit file, or it can contain wildcards in the format specified by syntax. Returns true if any CA certificates are added to the default database.
Each SSL socket's CA certificate database is initialized to the default CA certificate database.
Definition at line 1386 of file qsslsocket.cpp.
|
static |
Adds certificates to the default CA certificate database.
Each SSL socket's CA certificate database is initialized to the default CA certificate database.
Definition at line 1411 of file qsslsocket.cpp.
|
virtual |
Reimplemented Function
Reimplemented from QAbstractSocket.
Definition at line 833 of file qsslsocket.cpp.
|
virtual |
Returns the number of decrypted bytes that are immediately available for reading.
Reimplemented Function
Reimplemented from QAbstractSocket.
Definition at line 731 of file qsslsocket.cpp.
|
virtual |
Returns the number of unencrypted bytes that are waiting to be encrypted and written to the network.
Reimplemented Function
Reimplemented from QAbstractSocket.
Definition at line 748 of file qsslsocket.cpp.
QList< QSslCertificate > QSslSocket::caCertificates | ( | ) | const |
Returns this socket's CA certificate database.
The CA certificate database is used by the socket during the handshake phase to validate the peer's certificate. It can be moodified prior to the handshake with addCaCertificate(), addCaCertificates(), and setCaCertificates().
Definition at line 1368 of file qsslsocket.cpp.
|
virtual |
Returns true if you can read one while line (terminated by a single ASCII '
' character) of decrypted characters; otherwise, false is returned.
Reimplemented Function
Reimplemented from QAbstractSocket.
Definition at line 800 of file qsslsocket.cpp.
QList< QSslCipher > QSslSocket::ciphers | ( | ) | const |
Returns this socket's current cryptographic cipher suite.
This list is used during the socket's handshake phase for choosing a session cipher. The returned list of ciphers is ordered by descending preference. (i.e., the first cipher in the list is the most preferred cipher). The session cipher will be the first one in the list that is also supported by the peer.
By default, the handshake phase can choose any of the ciphers supported by this system's SSL libraries, which may vary from system to system. The list of ciphers supported by this system's SSL libraries is returned by supportedCiphers(). You can restrict the list of ciphers used for choosing the session cipher for this socket by calling setCiphers() with a subset of the supported ciphers. You can revert to using the entire set by calling setCiphers() with the list returned by supportedCiphers().
You can restrict the list of ciphers used for choosing the session cipher for all sockets by calling setDefaultCiphers() with a subset of the supported ciphers. You can revert to using the entire set by calling setCiphers() with the list returned by supportedCiphers().
Definition at line 1183 of file qsslsocket.cpp.
|
virtual |
Reimplemented Function
Reimplemented from QAbstractSocket.
Definition at line 811 of file qsslsocket.cpp.
void QSslSocket::connectToHostEncrypted | ( | const QString & | hostName, |
quint16 | port, | ||
OpenMode | mode = ReadWrite |
||
) |
Starts an encrypted connection to the device hostName on port, using mode as the OpenMode .
This is equivalent to calling connectToHost() to establish the connection, followed by a call to startClientEncryption().
QSslSocket first enters the HostLookupState. Then, after entering either the event loop or one of the waitFor...() functions, it enters the ConnectingState, emits connected(), and then initiates the SSL client handshake. At each state change, QSslSocket emits signal stateChanged().
After initiating the SSL client handshake, if the identity of the peer can't be established, signal sslErrors() is emitted. If you want to ignore the errors and continue connecting, you must call ignoreSslErrors(), either from inside a slot function connected to the sslErrors() signal, or prior to entering encrypted mode. If ignoreSslErrors() is not called, the connection is dropped, signal disconnected() is emitted, and QSslSocket returns to the UnconnectedState.
If the SSL handshake is successful, QSslSocket emits encrypted().
Note: The example above shows that text can be written to the socket immediately after requesting the encrypted connection, before the encrypted() signal has been emitted. In such cases, the text is queued in the object and written to the socket after the connection is established and the encrypted() signal has been emitted.
The default for mode is ReadWrite .
If you want to create a QSslSocket on the server side of a connection, you should instead call startServerEncryption() upon receiving the incoming connection through QTcpServer.
Definition at line 414 of file qsslsocket.cpp.
Referenced by QHttpPrivate::_q_slotSendRequest(), and QHttpNetworkConnectionChannel::ensureConnection().
void QSslSocket::connectToHostEncrypted | ( | const QString & | hostName, |
quint16 | port, | ||
const QString & | sslPeerName, | ||
OpenMode | mode = ReadWrite |
||
) |
In addition to the original behaviour of connectToHostEncrypted, this overloaded method enables the usage of a different hostname (sslPeerName) for the certificate validation instead of the one used for the TCP connection (hostName).
Definition at line 445 of file qsslsocket.cpp.
|
protectedslot |
Definition at line 1795 of file qsslsocket.cpp.
|
static |
Returns the current default CA certificate database.
This database is originally set to your system's default CA certificate database. If no system default database is found, an empty database will be returned. You can override the default CA certificate database with your own CA certificate database using setDefaultCaCertificates().
Each SSL socket's CA certificate database is initialized to the default CA certificate database.
Definition at line 1448 of file qsslsocket.cpp.
|
static |
Returns the default cryptographic cipher suite for all sockets in this application.
This list is used during the socket's handshake phase when negotiating with the peer to choose a session cipher. The list is ordered by preference (i.e., the first cipher in the list is the most preferred cipher).
By default, the handshake phase can choose any of the ciphers supported by this system's SSL libraries, which may vary from system to system. The list of ciphers supported by this system's SSL libraries is returned by supportedCiphers().
Definition at line 1263 of file qsslsocket.cpp.
|
protectedslot |
Definition at line 1826 of file qsslsocket.cpp.
|
signal |
This signal is emitted when QSslSocket enters encrypted mode.
After this signal has been emitted, QSslSocket::isEncrypted() will return true, and all further transmissions on the socket will be encrypted.
qint64 QSslSocket::encryptedBytesAvailable | ( | ) | const |
Returns the number of encrypted bytes that are awaiting decryption.
Normally, this function will return 0 because QSslSocket decrypts its incoming data as soon as it can.
Definition at line 766 of file qsslsocket.cpp.
Referenced by QHttpNetworkConnectionChannel::_q_error().
qint64 QSslSocket::encryptedBytesToWrite | ( | ) | const |
Returns the number of encrypted bytes that are waiting to be written to the network.
Definition at line 783 of file qsslsocket.cpp.
Referenced by QHttpPrivate::postMoreData(), and QHttpNetworkConnectionChannel::sendRequest().
|
signal |
This signal is emitted when QSslSocket writes its encrypted data to the network.
The written parameter contains the number of bytes that were successfully written.
bool QSslSocket::flush | ( | ) |
This function writes as much as possible from the internal write buffer to the underlying network socket, without blocking.
If any data was written, this function returns true; otherwise false is returned.
Call this function if you need QSslSocket to start sending buffered data immediately. The number of bytes successfully written depends on the operating system. In most cases, you do not need to call this function, because QAbstractSocket will start sending data automatically once control goes back to the event loop. In the absence of an event loop, call waitForBytesWritten() instead.
Definition at line 856 of file qsslsocket.cpp.
Referenced by QHttpNetworkConnectionChannel::_q_error().
This method tells QSslSocket to ignore only the errors given in errors.
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
Note that you can set the expected certificate in the SSL error: If, for instance, you want to connect to a server that uses a self-signed certificate, consider the following snippet:
Multiple calls to this function will replace the list of errors that were passed in previous calls. You can clear the list of errors you want to ignore by calling this function with an empty list.
Definition at line 1786 of file qsslsocket.cpp.
Referenced by QHttpNetworkConnectionChannel::ensureConnection(), and QHttp::ignoreSslErrors().
|
slot |
This slot tells QSslSocket to ignore errors during QSslSocket's handshake phase and continue connecting.
If you want to continue with the connection even if errors occur during the handshake phase, then you must call this slot, either from a slot connected to sslErrors(), or before the handshake phase. If you don't call this slot, either in response to errors or before the handshake, the connection will be dropped after the sslErrors() signal has been emitted.
If there are no errors during the SSL handshake phase (i.e., the identity of the peer is established with no problems), QSslSocket will not emit the sslErrors() signal, and it is unnecessary to call this function.
Definition at line 1757 of file qsslsocket.cpp.
bool QSslSocket::isEncrypted | ( | ) | const |
Returns true if the socket is encrypted; otherwise, false is returned.
An encrypted socket encrypts all data that is written by calling write() or putChar() before the data is written to the network, and decrypts all incoming data as the data is received from the network, before you call read(), readLine() or getChar().
QSslSocket emits encrypted() when it enters encrypted mode.
You can call sessionCipher() to find which cryptographic cipher is used to encrypt and decrypt your data.
Definition at line 563 of file qsslsocket.cpp.
Referenced by QHttpPrivate::_q_slotSendRequest().
QSslCertificate QSslSocket::localCertificate | ( | ) | const |
Returns the socket's local QSslCertificate {certificate}, or an empty certificate if no local certificate has been assigned.
Definition at line 1008 of file qsslsocket.cpp.
QSslSocket::SslMode QSslSocket::mode | ( | ) | const |
Returns the current mode for the socket; either UnencryptedMode, where QSslSocket behaves identially to QTcpSocket, or one of SslClientMode or SslServerMode, where the client is either negotiating or in encrypted mode.
When the mode changes, QSslSocket emits modeChanged()
Definition at line 542 of file qsslsocket.cpp.
|
signal |
This signal is emitted when QSslSocket changes from QSslSocket::UnencryptedMode to either QSslSocket::SslClientMode or QSslSocket::SslServerMode .
mode is the new mode.
QSslCertificate QSslSocket::peerCertificate | ( | ) | const |
Returns the peer's digital certificate (i.e., the immediate certificate of the host you are connected to), or a null certificate, if the peer has not assigned a certificate.
The peer certificate is checked automatically during the handshake phase, so this function is normally used to fetch the certificate for display or for connection diagnostic purposes. It contains information about the peer, including its host name, the certificate issuer, and the peer's public key.
Because the peer certificate is set during the handshake phase, it is safe to access the peer certificate from a slot connected to the sslErrors() signal or the encrypted() signal.
If a null certificate is returned, it can mean the SSL handshake failed, or it can mean the host you are connected to doesn't have a certificate, or it can mean there is no connection.
If you want to check the peer's complete chain of certificates, use peerCertificateChain() to get them all at once.
Definition at line 1039 of file qsslsocket.cpp.
QList< QSslCertificate > QSslSocket::peerCertificateChain | ( | ) | const |
Returns the peer's chain of digital certificates, or an empty list of certificates.
Peer certificates are checked automatically during the handshake phase. This function is normally used to fetch certificates for display, or for performing connection diagnostics. Certificates contain information about the peer and the certificate issuers, including host name, issuer names, and issuer public keys.
The peer certificates are set in QSslSocket during the handshake phase, so it is safe to call this function from a slot connected to the sslErrors() signal or the encrypted() signal.
If an empty list is returned, it can mean the SSL handshake failed, or it can mean the host you are connected to doesn't have a certificate, or it can mean there is no connection.
If you want to get only the peer's immediate certificate, use peerCertificate().
Definition at line 1068 of file qsslsocket.cpp.
int QSslSocket::peerVerifyDepth | ( | ) | const |
Returns the maximum number of certificates in the peer's certificate chain to be checked during the SSL handshake phase, or 0 (the default) if no maximum depth has been set, indicating that the whole certificate chain should be checked.
The certificates are checked in issuing order, starting with the peer's own certificate, then its issuer's certificate, and so on.
Definition at line 656 of file qsslsocket.cpp.
|
signal |
QSslSocket can emit this signal several times during the SSL handshake, before encryption has been established, to indicate that an error has occurred while establishing the identity of the peer.
The error is usually an indication that QSslSocket is unable to securely identify the peer.
This signal provides you with an early indication when something's wrong. By connecting to this signal, you can manually choose to tear down the connection from inside the connected slot before the handshake has completed. If no action is taken, QSslSocket will proceed to emitting QSslSocket::sslErrors().
QSslSocket::PeerVerifyMode QSslSocket::peerVerifyMode | ( | ) | const |
Returns the socket's verify mode.
This mode mode decides whether QSslSocket should request a certificate from the peer (i.e., the client requests a certificate from the server, or a server requesting a certificate from the client), and whether it should require that this certificate is valid.
The default mode is AutoVerifyPeer, which tells QSslSocket to use VerifyPeer for clients and QueryPeer for servers.
Definition at line 608 of file qsslsocket.cpp.
QString QSslSocket::peerVerifyName | ( | ) | const |
Returns the different hostname for the certificate validation, as set by setPeerVerifyName or by connectToHostEncrypted.
Definition at line 699 of file qsslsocket.cpp.
QSslKey QSslSocket::privateKey | ( | ) | const |
Returns this socket's private key.
Definition at line 1152 of file qsslsocket.cpp.
QSsl::SslProtocol QSslSocket::protocol | ( | ) | const |
Returns the socket's SSL protocol.
By default, QSsl::SecureProtocols is used.
Definition at line 574 of file qsslsocket.cpp.
Reimplemented Function
Reimplemented from QAbstractSocket.
Definition at line 1864 of file qsslsocket.cpp.
QSslCipher QSslSocket::sessionCipher | ( | ) | const |
Returns the socket's cryptographic QSslCipher {cipher}, or a null cipher if the connection isn't encrypted.
The socket's cipher for the session is set during the handshake phase. The cipher is used to encrypt and decrypt data transmitted through the socket.
QSslSocket also provides functions for setting the ordered list of ciphers from which the handshake phase will eventually select the session cipher. This ordered list must be in place before the handshake phase begins.
Definition at line 1088 of file qsslsocket.cpp.
void QSslSocket::setCaCertificates | ( | const QList< QSslCertificate > & | certificates | ) |
Sets this socket's CA certificate database to be certificates.
The certificate database must be set prior to the SSL handshake. The CA certificate database is used by the socket during the handshake phase to validate the peer's certificate.
The CA certificate database can be reset to the current default CA certificate database by calling this function with the list of CA certificates returned by defaultCaCertificates().
Definition at line 1349 of file qsslsocket.cpp.
void QSslSocket::setCiphers | ( | const QList< QSslCipher > & | ciphers | ) |
Sets the cryptographic cipher suite for this socket to ciphers, which must contain a subset of the ciphers in the list returned by supportedCiphers().
Restricting the cipher suite must be done before the handshake phase, where the session cipher is chosen.
Definition at line 1199 of file qsslsocket.cpp.
void QSslSocket::setCiphers | ( | const QString & | ciphers | ) |
Sets the cryptographic cipher suite for this socket to ciphers, which is a colon-separated list of cipher suite names.
The ciphers are listed in order of preference, starting with the most preferred cipher. For example:
Each cipher name in ciphers must be the name of a cipher in the list returned by supportedCiphers(). Restricting the cipher suite must be done before the handshake phase, where the session cipher is chosen.
Definition at line 1219 of file qsslsocket.cpp.
|
static |
Sets the default CA certificate database to certificates.
The default CA certificate database is originally set to your system's default CA certificate database. You can override the default CA certificate database with your own CA certificate database using this function.
Each SSL socket's CA certificate database is initialized to the default CA certificate database.
Definition at line 1428 of file qsslsocket.cpp.
|
static |
Sets the default cryptographic cipher suite for all sockets in this application to ciphers, which must contain a subset of the ciphers in the list returned by supportedCiphers().
Restricting the default cipher suite only affects SSL sockets that perform their handshake phase after the default cipher suite has been changed.
Definition at line 1244 of file qsslsocket.cpp.
void QSslSocket::setLocalCertificate | ( | const QSslCertificate & | certificate | ) |
Sets the socket's local certificate to certificate.
The local certificate is necessary if you need to confirm your identity to the peer. It is used together with the private key; if you set the local certificate, you must also set the private key.
The local certificate and private key are always necessary for server sockets, but are also rarely used by client sockets if the server requires the client to authenticate.
Definition at line 977 of file qsslsocket.cpp.
void QSslSocket::setLocalCertificate | ( | const QString & | path, |
QSsl::EncodingFormat | format = QSsl::Pem |
||
) |
Sets the socket's local QSslCertificate {certificate} to the first one found in file path, which is parsed according to the specified format.
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
Definition at line 993 of file qsslsocket.cpp.
void QSslSocket::setPeerVerifyDepth | ( | int | depth | ) |
Sets the maximum number of certificates in the peer's certificate chain to be checked during the SSL handshake phase, to depth.
Setting a depth of 0 means that no maximum depth is set, indicating that the whole certificate chain should be checked.
The certificates are checked in issuing order, starting with the peer's own certificate, then its issuer's certificate, and so on.
Definition at line 678 of file qsslsocket.cpp.
void QSslSocket::setPeerVerifyMode | ( | QSslSocket::PeerVerifyMode | mode | ) |
Sets the socket's verify mode to mode.
This mode decides whether QSslSocket should request a certificate from the peer (i.e., the client requests a certificate from the server, or a server requesting a certificate from the client), and whether it should require that this certificate is valid.
The default mode is AutoVerifyPeer, which tells QSslSocket to use VerifyPeer for clients and QueryPeer for servers.
Setting this mode after encryption has started has no effect on the current connection.
Definition at line 634 of file qsslsocket.cpp.
void QSslSocket::setPeerVerifyName | ( | const QString & | hostName | ) |
Sets a different host name, given by hostName, for the certificate validation instead of the one used for the TCP connection.
Definition at line 716 of file qsslsocket.cpp.
void QSslSocket::setPrivateKey | ( | const QSslKey & | key | ) |
Sets the socket's private QSslKey {key} to key.
The private key and the local QSslCertificate {certificate} are used by clients and servers that must prove their identity to SSL peers.
Both the key and the local certificate are required if you are creating an SSL server socket. If you are creating an SSL client socket, the key and local certificate are required if your client must identify itself to an SSL server.
Definition at line 1107 of file qsslsocket.cpp.
void QSslSocket::setPrivateKey | ( | const QString & | fileName, |
QSsl::KeyAlgorithm | algorithm = QSsl::Rsa , |
||
QSsl::EncodingFormat | format = QSsl::Pem , |
||
const QByteArray & | passPhrase = QByteArray() |
||
) |
Reads the string in file fileName and decodes it using a specified algorithm and encoding format to construct an QSslKey {SSL key}.
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
If the encoded key is encrypted, passPhrase is used to decrypt it.
The socket's private key is set to the constructed key. The private key and the local QSslCertificate {certificate} are used by clients and servers that must prove their identity to SSL peers.
Both the key and the local certificate are required if you are creating an SSL server socket. If you are creating an SSL client socket, the key and local certificate are required if your client must identify itself to an SSL server.
Definition at line 1136 of file qsslsocket.cpp.
void QSslSocket::setProtocol | ( | QSsl::SslProtocol | protocol | ) |
Sets the socket's SSL protocol to protocol.
This will affect the next initiated handshake; calling this function on an already-encrypted socket will not affect the socket's protocol.
Definition at line 585 of file qsslsocket.cpp.
void QSslSocket::setReadBufferSize | ( | qint64 | size | ) |
Sets the size of QSslSocket's internal read buffer to be size bytes.
Definition at line 877 of file qsslsocket.cpp.
bool QSslSocket::setSocketDescriptor | ( | int | socketDescriptor, |
SocketState | state = ConnectedState , |
||
OpenMode | openMode = ReadWrite |
||
) |
Initializes QSslSocket with the native socket descriptor socketDescriptor.
Returns true if socketDescriptor is accepted as a valid socket descriptor; otherwise returns false. The socket is opened in the mode specified by openMode, and enters the socket state specified by state.
Note: It is not possible to initialize two sockets with the same native socket descriptor.
Definition at line 476 of file qsslsocket.cpp.
void QSslSocket::setSocketOption | ( | QAbstractSocket::SocketOption | option, |
const QVariant & | value | ||
) |
Sets the given option to the value described by value.
Definition at line 507 of file qsslsocket.cpp.
void QSslSocket::setSslConfiguration | ( | const QSslConfiguration & | configuration | ) |
Sets the socket's SSL configuration to be the contents of configuration.
This function sets the local certificate, the ciphers, the private key and the CA certificates to those stored in configuration.
It is not possible to set the SSL-state related fields.
Definition at line 946 of file qsslsocket.cpp.
QVariant QSslSocket::socketOption | ( | QAbstractSocket::SocketOption | option | ) |
Returns the value of the option option.
Definition at line 523 of file qsslsocket.cpp.
QSslConfiguration QSslSocket::sslConfiguration | ( | ) | const |
Returns the socket's SSL configuration state.
The default SSL configuration of a socket is to use the default ciphers, default CA certificates, no local private key or certificate.
The SSL configuration also contains fields that can change with time without notice.
Definition at line 920 of file qsslsocket.cpp.
Referenced by QHttpNetworkReply::sslConfiguration().
Returns a list of the last SSL errors that occurred.
This is the same list as QSslSocket passes via the sslErrors() signal. If the connection has been encrypted with no errors, this function will return an empty list.
Definition at line 1653 of file qsslsocket.cpp.
QSslSocket emits this signal after the SSL handshake to indicate that one or more errors have occurred while establishing the identity of the peer.
The errors are usually an indication that QSslSocket is unable to securely identify the peer. Unless any action is taken, the connection will be dropped after this signal has been emitted.
If you want to continue connecting despite the errors that have occurred, you must call QSslSocket::ignoreSslErrors() from inside a slot connected to this signal. If you need to access the error list at a later point, you can call sslErrors() (without arguments).
errors contains one or more errors that prevent QSslSocket from verifying the identity of the peer.
Note: You cannot use Qt::QueuedConnection when connecting to this signal, or calling QSslSocket::ignoreSslErrors() will have no effect.
|
slot |
Starts a delayed SSL handshake for a client connection.
This function can be called when the socket is in the ConnectedState but still in the UnencryptedMode . If it is not yet connected, or if it is already encrypted, this function has no effect.
Clients that implement STARTTLS functionality often make use of delayed SSL handshakes. Most other clients can avoid calling this function directly by using connectToHostEncrypted() instead, which automatically performs the handshake.
Definition at line 1682 of file qsslsocket.cpp.
|
slot |
Starts a delayed SSL handshake for a server connection.
This function can be called when the socket is in the ConnectedState but still in UnencryptedMode . If it is not connected or it is already encrypted, the function has no effect.
For server sockets, calling this function is the only way to initiate the SSL handshake. Most servers will call this function immediately upon receiving a connection, or as a result of having received a protocol-specific command to enter SSL mode (e.g, the server may respond to receiving the string "STARTTLS\r\n" by calling this function).
The most common way to implement an SSL server is to create a subclass of QTcpServer and reimplement QTcpServer::incomingConnection(). The returned socket descriptor is then passed to QSslSocket::setSocketDescriptor().
Definition at line 1717 of file qsslsocket.cpp.
|
static |
Returns the list of cryptographic ciphers supported by this system.
This list is set by the system's SSL libraries and may vary from system to system.
Definition at line 1275 of file qsslsocket.cpp.
Referenced by QSslCipher::QSslCipher().
|
static |
Returns true if this platform supports SSL; otherwise, returns false.
If the platform doesn't support SSL, the socket will fail in the connection phase.
Definition at line 1664 of file qsslsocket.cpp.
Referenced by QSslKeyPrivate::clear(), QSslKeyPrivate::decodePem(), QSslCertificatePrivate::QSslCertificate_from_X509(), QHttpPrivate::setSock(), and QSslKey::toPem().
|
static |
This function provides the CA certificate database provided by the operating system.
The CA certificate database returned by this function is used to initialize the database returned by defaultCaCertificates(). You can replace that database with your own with setDefaultCaCertificates().
Definition at line 1462 of file qsslsocket.cpp.
|
virtual |
Reimplemented Function
Reimplemented from QAbstractSocket.
Definition at line 1582 of file qsslsocket.cpp.
bool QSslSocket::waitForConnected | ( | int | msecs = 30000 | ) |
Waits until the socket is connected, or msecs milliseconds, whichever happens first.
If the connection has been established, this function returns true; otherwise it returns false.
Definition at line 1475 of file qsslsocket.cpp.
bool QSslSocket::waitForDisconnected | ( | int | msecs = 30000 | ) |
Waits until the socket has disconnected or msecs milliseconds, whichever comes first.
If the connection has been disconnected, this function returns true; otherwise it returns false.
Definition at line 1613 of file qsslsocket.cpp.
bool QSslSocket::waitForEncrypted | ( | int | msecs = 30000 | ) |
Waits until the socket has completed the SSL handshake and has emitted encrypted(), or msecs milliseconds, whichever comes first.
If encrypted() has been emitted, this function returns true; otherwise (e.g., the socket is disconnected, or the SSL handshake fails), false is returned.
The following example waits up to one second for the socket to be encrypted:
If msecs is -1, this function will not time out.
Definition at line 1505 of file qsslsocket.cpp.
|
virtual |
Reimplemented Function
Reimplemented from QAbstractSocket.
Definition at line 1537 of file qsslsocket.cpp.
Reimplemented Function
Reimplemented from QAbstractSocket.
Definition at line 1894 of file qsslsocket.cpp.
|
friend |
Definition at line 214 of file qsslsocket.h.