#include <memory>
#include <vector>
+struct Profile {
+ std::string cert;
+ std::string key;
+};
+
struct Job {
std::string id;
std::string target;
std::string type;
};
+struct AVA {
+ std::string name;
+ std::string value;
+};
+
struct TBSCertificate {
- std::string CN;
- std::string subj;
std::string md;
std::string profile;
+ /**
+ * CSR path
+ */
std::string csr;
std::string csr_type;
std::string csr_content;
std::vector<std::shared_ptr<SAN>> SANs;
+ std::vector<std::shared_ptr<AVA>> AVAs;
+};
+
+
+struct SignedCertificate {
+ std::string certificate;
+ std::string serial;
+ uint32_t before;
+ uint32_t after;
+ std::string pkHash;
+ std::string certHash;
+ std::string crt_name;
+ std::string log;
};
class JobProvider {
virtual std::shared_ptr<Job> fetchJob() = 0;
virtual bool finishJob( std::shared_ptr<Job> job ) = 0;
virtual std::shared_ptr<TBSCertificate> fetchTBSCert( std::shared_ptr<Job> job ) = 0;
+ virtual void writeBack( std::shared_ptr<Job> job, std::shared_ptr<SignedCertificate> res ) = 0;
};