#ifndef EETCA_H #define EETCA_H #include #include #include #include #include #include #include "eetcpp_global.h" struct EETCPPSHARED_EXPORT EetCaClientConfig { QUrl apiBaseUrl; QString signingPkcs12Path; QByteArray signingPkcs12Password; int timeoutMilliseconds{30000}; QSslConfiguration sslConfiguration; }; struct EETCPPSHARED_EXPORT EetCaRequestStatus { QUuid requestId; QString state; int pollAfterSeconds{0}; QString rejectedReason; }; struct EETCPPSHARED_EXPORT EetCaCertificate { QString serialNumber; QDateTime validFrom; QDateTime validTo; QString state; QString description; QString email; }; struct EETCPPSHARED_EXPORT EetCaPkcs12 { QByteArray pkcs12; QByteArray password; EetCaCertificate certificate; }; class EETCPPSHARED_EXPORT EetCaClient { public: explicit EetCaClient(EetCaClientConfig config); bool requestRenewal(QUuid *requestId, QString *error = nullptr) const; bool requestStatus(const QUuid &requestId, EetCaRequestStatus *status, QString *error = nullptr) const; bool listUnfinished(QList *requestIds, QString *error = nullptr) const; bool claimDownload(const QUuid &requestId, EetCaPkcs12 *result, QString *error = nullptr) const; bool acknowledgeDownload(const QUuid &requestId, QString *error = nullptr) const; private: EetCaClientConfig m_config; }; #endif // EETCA_H