32 #ifndef QCA_SECURELAYER_H
33 #define QCA_SECURELAYER_H
119 virtual bool isClosable()
const;
125 virtual int bytesAvailable()
const = 0;
131 virtual int bytesOutgoingAvailable()
const = 0;
140 virtual void close();
149 virtual void write(
const QByteArray &a) = 0;
157 virtual QByteArray read() = 0;
168 virtual void writeIncoming(
const QByteArray &a) = 0;
179 virtual QByteArray readOutgoing(
int *plainBytes = 0) = 0;
188 virtual QByteArray readUnprocessed();
195 virtual int convertBytesWritten(qint64 encryptedBytes) = 0;
212 void readyReadOutgoing();
348 explicit TLS(
QObject *parent = 0,
const QString &provider = QString());
361 explicit TLS(Mode mode,
QObject *parent = 0,
const QString &provider = QString());
387 QStringList supportedCipherSuites(
const Version &version = TLS_v1)
const;
412 void setCertificate(
const KeyBundle &kb);
447 void setConstraints(
int minSSF,
int maxSSF);
459 void setConstraints(
const QStringList &cipherSuiteList);
505 bool canCompress()
const;
513 bool canSetHostName()
const;
522 bool compressionEnabled()
const;
530 void setCompressionEnabled(
bool b);
536 QString hostName()
const;
557 void startClient(
const QString &host = QString());
573 void continueAfterStep();
582 bool isHandshaken()
const;
589 bool isCompressed()
const;
594 Version version()
const;
602 QString cipherSuite()
const;
613 int cipherBits()
const;
621 int cipherMaxBits()
const;
634 Error errorCode()
const;
653 IdentityResult peerIdentityResult()
const;
663 Validity peerCertificateValidity()
const;
684 virtual bool isClosable()
const;
685 virtual int bytesAvailable()
const;
686 virtual int bytesOutgoingAvailable()
const;
687 virtual void close();
688 virtual void write(
const QByteArray &a);
689 virtual QByteArray read();
690 virtual void writeIncoming(
const QByteArray &a);
691 virtual QByteArray readOutgoing(
int *plainBytes = 0);
692 virtual QByteArray readUnprocessed();
693 virtual int convertBytesWritten(qint64 encryptedBytes);
701 int packetsAvailable()
const;
709 int packetsOutgoingAvailable()
const;
716 int packetMTU()
const;
725 void setPacketMTU(
int size)
const;
739 void hostNameReceived();
752 void certificateRequested();
764 void peerCertificateAvailable();
786 #if QT_VERSION >= 0x050000
787 void connectNotify(
const QMetaMethod &signal);
789 void connectNotify(
const char *signal);
798 #if QT_VERSION >= 0x050000
799 void disconnectNotify(
const QMetaMethod &signal);
801 void disconnectNotify(
const char *signal);
808 friend class Private;
877 AuthFlagsNone = 0x00,
879 AllowAnonymous = 0x02,
880 RequireForwardSecrecy = 0x04,
881 RequirePassCredentials = 0x08,
882 RequireMutualAuth = 0x10,
883 RequireAuthzidSupport = 0x20
891 AllowClientSendFirst,
892 DisableClientSendFirst
901 DisableServerSendLast
930 Params(
bool user,
bool authzid,
bool pass,
bool realm);
950 bool needUsername()
const;
955 bool canSendAuthzid()
const;
960 bool needPassword()
const;
965 bool canSendRealm()
const;
980 explicit SASL(
QObject *parent = 0,
const QString &provider = QString());
1018 void setConstraints(
AuthFlags f,
int minSSF,
int maxSSF);
1026 void setLocalAddress(
const QString &addr, quint16 port);
1034 void setRemoteAddress(
const QString &addr, quint16 port);
1041 void setExternalAuthId(
const QString &authid);
1049 void setExternalSSF(
int strength);
1062 void startClient(
const QString &service,
const QString &host,
const QStringList &mechlist,
ClientSendMode mode = AllowClientSendFirst);
1075 void startServer(
const QString &service,
const QString &host,
const QString &realm,
ServerSendMode mode = DisableServerSendLast);
1086 void putServerFirstStep(
const QString &mech);
1098 void putServerFirstStep(
const QString &mech,
const QByteArray &clientInit);
1109 void putStep(
const QByteArray &stepData);
1114 QString mechanism()
const;
1119 QStringList mechanismList()
const;
1124 QStringList realmList()
const;
1134 Error errorCode()
const;
1146 void setUsername(
const QString &user);
1153 void setAuthzid(
const QString &auth);
1167 void setRealm(
const QString &realm);
1172 void continueAfterParams();
1177 void continueAfterAuthCheck();
1180 virtual int bytesAvailable()
const;
1181 virtual int bytesOutgoingAvailable()
const;
1182 virtual void write(
const QByteArray &a);
1183 virtual QByteArray read();
1184 virtual void writeIncoming(
const QByteArray &a);
1185 virtual QByteArray readOutgoing(
int *plainBytes = 0);
1186 virtual int convertBytesWritten(qint64 encryptedBytes);
1201 void clientStarted(
bool clientInit,
const QByteArray &clientInitData);
1207 void serverStarted();
1216 void nextStep(
const QByteArray &stepData);
1239 void authCheck(
const QString &user,
const QString &authzid);
1244 void authenticated();
1247 Q_DISABLE_COPY(
SASL)
1250 friend class Private;