X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=blobdiff_plain;f=src%2Fcommon%2Fidentity.h;h=a71e0eeb9b9e86a4d21f72a9c49bd72771a8965d;hp=bd1eaa50bdbf00a37b3787cb9ee3009d7bb07ff6;hb=ac21cc48d22f0cf58a98b74754fa94564a8e3f45;hpb=4493458caaa821deb69a0cddf13beb98394977bb diff --git a/src/common/identity.h b/src/common/identity.h index bd1eaa50..a71e0eeb 100644 --- a/src/common/identity.h +++ b/src/common/identity.h @@ -21,6 +21,7 @@ #ifndef IDENTITY_H #define IDENTITY_H +#include #include #include #include @@ -55,6 +56,8 @@ class Identity : public SyncableObject { public: Identity(IdentityId id = 0, QObject *parent = 0); Identity(const Identity &other, QObject *parent = 0); + inline virtual const QMetaObject *syncMetaObject() const { return &staticMetaObject; } + void setToDefaults(); bool operator==(const Identity &other); @@ -153,4 +156,33 @@ QDataStream &operator>>(QDataStream &in, Identity &identity); Q_DECLARE_METATYPE(Identity) -#endif +#ifdef HAVE_SSL +#include +#include + +class CertManager : public SyncableObject { + Q_OBJECT + Q_PROPERTY(QByteArray sslKey READ sslKeyPem WRITE setSslKey STORED false) + Q_PROPERTY(QByteArray sslCert READ sslCertPem WRITE setSslCert STORED false) + +public: + CertManager(IdentityId id, QObject *parent = 0) : SyncableObject(QString::number(id.toInt()), parent) {} + inline virtual const QMetaObject *syncMetaObject() const { return &staticMetaObject; } + + virtual const QSslKey &sslKey() const = 0; + inline QByteArray sslKeyPem() const { return sslKey().toPem(); } + virtual const QSslCertificate &sslCert() const = 0; + inline QByteArray sslCertPem() const { return sslCert().toPem(); } + +public slots: + inline virtual void setSslKey(const QByteArray &encoded) { emit sslKeySet(encoded); } + inline virtual void setSslCert(const QByteArray &encoded) { emit sslCertSet(encoded); } + +signals: + void sslKeySet(const QByteArray &); + void sslCertSet(const QByteArray &); +}; + +#endif // HAVE_SSL + +#endif // IDENTITY_H