| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225 |
- // qsslsocket.sip generated by MetaSIP
- //
- // This file is part of the QtNetwork Python extension module.
- //
- // Copyright (c) 2026 Riverbank Computing Limited <info@riverbankcomputing.com>
- //
- // This file is part of PyQt6.
- //
- // This file may be used under the terms of the GNU General Public License
- // version 3.0 as published by the Free Software Foundation and appearing in
- // the file LICENSE included in the packaging of this file. Please review the
- // following information to ensure the GNU General Public License version 3.0
- // requirements will be met: http://www.gnu.org/copyleft/gpl.html.
- //
- // If you do not wish to use this file under the terms of the GPL version 3.0
- // then you may purchase a commercial license. For more information contact
- // info@riverbankcomputing.com.
- //
- // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
- // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
- %If (PyQt_SSL)
- class QSslSocket : public QTcpSocket
- {
- %TypeHeaderCode
- #include <qsslsocket.h>
- %End
- public:
- enum SslMode
- {
- UnencryptedMode,
- SslClientMode,
- SslServerMode,
- };
- explicit QSslSocket(QObject *parent /TransferThis/ = 0);
- virtual ~QSslSocket();
- void connectToHostEncrypted(const QString &hostName, quint16 port, QIODeviceBase::OpenMode mode = QIODeviceBase::ReadWrite, QAbstractSocket::NetworkLayerProtocol protocol = QAbstractSocket::AnyIPProtocol) /ReleaseGIL/;
- void connectToHostEncrypted(const QString &hostName, quint16 port, const QString &sslPeerName, QIODeviceBase::OpenMode mode = QIODeviceBase::ReadWrite, QAbstractSocket::NetworkLayerProtocol protocol = QAbstractSocket::AnyIPProtocol) /ReleaseGIL/;
- virtual bool setSocketDescriptor(qintptr socketDescriptor, QAbstractSocket::SocketState state = QAbstractSocket::ConnectedState, QIODeviceBase::OpenMode mode = QIODeviceBase::ReadWrite);
- QSslSocket::SslMode mode() const;
- bool isEncrypted() const;
- QSsl::SslProtocol protocol() const;
- void setProtocol(QSsl::SslProtocol protocol);
- virtual qint64 bytesAvailable() const;
- virtual qint64 bytesToWrite() const;
- virtual bool canReadLine() const;
- virtual void close();
- virtual bool atEnd() const;
- void setLocalCertificate(const QSslCertificate &certificate);
- void setLocalCertificate(const QString &path, QSsl::EncodingFormat format = QSsl::Pem);
- QSslCertificate localCertificate() const;
- QSslCertificate peerCertificate() const;
- QList<QSslCertificate> peerCertificateChain() const;
- QSslCipher sessionCipher() const;
- void setPrivateKey(const QSslKey &key);
- void setPrivateKey(const QString &fileName, QSsl::KeyAlgorithm algorithm = QSsl::Rsa, QSsl::EncodingFormat format = QSsl::Pem, const QByteArray &passPhrase = QByteArray());
- QSslKey privateKey() const;
- virtual bool waitForConnected(int msecs = 30000) /ReleaseGIL/;
- bool waitForEncrypted(int msecs = 30000) /ReleaseGIL/;
- virtual bool waitForReadyRead(int msecs = 30000) /ReleaseGIL/;
- virtual bool waitForBytesWritten(int msecs = 30000) /ReleaseGIL/;
- virtual bool waitForDisconnected(int msecs = 30000) /ReleaseGIL/;
- static bool supportsSsl();
- public slots:
- void startClientEncryption();
- void startServerEncryption();
- void ignoreSslErrors();
- signals:
- void encrypted();
- void sslErrors(const QList<QSslError> &errors);
- void modeChanged(QSslSocket::SslMode newMode);
- void preSharedKeyAuthenticationRequired(QSslPreSharedKeyAuthenticator *authenticator);
- protected:
- virtual SIP_PYOBJECT readData(qint64 maxlen) /TypeHint="bytes",ReleaseGIL/ [qint64 (char *data, qint64 maxlen)];
- %MethodCode
- // Return the data read or None if there was an error.
- if (a0 < 0)
- {
- PyErr_SetString(PyExc_ValueError, "maximum length of data to be read cannot be negative");
- sipIsErr = 1;
- }
- else
- {
- char *s = new char[a0];
- qint64 len;
-
- Py_BEGIN_ALLOW_THREADS
- #if defined(SIP_PROTECTED_IS_PUBLIC)
- len = sipSelfWasArg ? sipCpp->QSslSocket::readData(s, a0) : sipCpp->readData(s, a0);
- #else
- len = sipCpp->sipProtectVirt_readData(sipSelfWasArg, s, a0);
- #endif
- Py_END_ALLOW_THREADS
-
- if (len < 0)
- {
- Py_INCREF(Py_None);
- sipRes = Py_None;
- }
- else
- {
- sipRes = PyBytes_FromStringAndSize(s, len);
-
- if (!sipRes)
- sipIsErr = 1;
- }
-
- delete[] s;
- }
- %End
- virtual qint64 writeData(SIP_PYBUFFER) /ReleaseGIL/ [qint64 (const char *data, qint64 len)];
- %MethodCode
- sipBufferInfoDef bi;
-
- if (sipGetBufferInfo(a0, &bi) > 0)
- {
- Py_BEGIN_ALLOW_THREADS
- #if defined(SIP_PROTECTED_IS_PUBLIC)
- sipRes = sipSelfWasArg ?
- sipCpp->QSslSocket::writeData(reinterpret_cast<char *>(bi.bi_buf), bi.bi_len) :
- sipCpp->writeData(reinterpret_cast<char *>(bi.bi_buf), bi.bi_len);
- #else
- sipRes = sipCpp->sipProtectVirt_writeData(sipSelfWasArg, reinterpret_cast<char *>(bi.bi_buf),
- bi.bi_len);
- #endif
- Py_END_ALLOW_THREADS
-
- sipReleaseBufferInfo(&bi);
- }
- else
- {
- sipIsErr = 1;
- }
- %End
- virtual qint64 skipData(qint64 maxSize) /ReleaseGIL/;
- public:
- enum PeerVerifyMode
- {
- VerifyNone,
- QueryPeer,
- VerifyPeer,
- AutoVerifyPeer,
- };
- QSslSocket::PeerVerifyMode peerVerifyMode() const;
- void setPeerVerifyMode(QSslSocket::PeerVerifyMode mode);
- int peerVerifyDepth() const;
- void setPeerVerifyDepth(int depth);
- virtual void setReadBufferSize(qint64 size);
- qint64 encryptedBytesAvailable() const;
- qint64 encryptedBytesToWrite() const;
- QSslConfiguration sslConfiguration() const;
- void setSslConfiguration(const QSslConfiguration &config);
- signals:
- void peerVerifyError(const QSslError &error);
- void encryptedBytesWritten(qint64 totalBytes);
- void newSessionTicketReceived();
- public:
- virtual void setSocketOption(QAbstractSocket::SocketOption option, const QVariant &value);
- virtual QVariant socketOption(QAbstractSocket::SocketOption option);
- void ignoreSslErrors(const QList<QSslError> &errors);
- QString peerVerifyName() const;
- void setPeerVerifyName(const QString &hostName);
- virtual void resume() /ReleaseGIL/;
- virtual void connectToHost(const QString &hostName, quint16 port, QIODeviceBase::OpenMode mode = QIODeviceBase::ReadWrite, QAbstractSocket::NetworkLayerProtocol protocol = QAbstractSocket::AnyIPProtocol) /ReleaseGIL/;
- virtual void disconnectFromHost() /ReleaseGIL/;
- static long sslLibraryVersionNumber();
- static QString sslLibraryVersionString();
- void setLocalCertificateChain(const QList<QSslCertificate> &localChain);
- QList<QSslCertificate> localCertificateChain() const;
- QSsl::SslProtocol sessionProtocol() const;
- static long sslLibraryBuildVersionNumber();
- static QString sslLibraryBuildVersionString();
- QList<QOcspResponse> ocspResponses() const;
- QList<QSslError> sslHandshakeErrors() const;
- void continueInterruptedHandshake();
- signals:
- void alertSent(QSsl::AlertLevel level, QSsl::AlertType type, const QString &description);
- void alertReceived(QSsl::AlertLevel level, QSsl::AlertType type, const QString &description);
- void handshakeInterruptedOnError(const QSslError &error);
- public:
- %If (Qt_6_1_0 -)
- static QList<QString> availableBackends();
- %End
- %If (Qt_6_1_0 -)
- static QString activeBackend();
- %End
- %If (Qt_6_1_0 -)
- static bool setActiveBackend(const QString &backendName);
- %End
- %If (Qt_6_1_0 -)
- static QList<QSsl::SslProtocol> supportedProtocols(const QString &backendName = {});
- %End
- %If (Qt_6_1_0 -)
- static bool isProtocolSupported(QSsl::SslProtocol protocol, const QString &backendName = {});
- %End
- %If (Qt_6_1_0 -)
- static QList<QSsl::ImplementedClass> implementedClasses(const QString &backendName = {});
- %End
- %If (Qt_6_1_0 -)
- static bool isClassImplemented(QSsl::ImplementedClass cl, const QString &backendName = {});
- %End
- %If (Qt_6_1_0 -)
- static QList<QSsl::SupportedFeature> supportedFeatures(const QString &backendName = {});
- %End
- %If (Qt_6_1_0 -)
- static bool isFeatureSupported(QSsl::SupportedFeature feat, const QString &backendName = {});
- %End
- };
- %End
|