]> WPIA git - cassiopeia.git/blobdiff - src/database.h
Merge branch 'libs/openssl/local'
[cassiopeia.git] / src / database.h
index e719df63628ba2923b6a7b3b0088eff0b56390e3..b438187d8be3b66c1df7a3afb68fa3b4924556a1 100644 (file)
@@ -2,6 +2,12 @@
 
 #include <string>
 #include <memory>
+#include <vector>
+
+struct Profile {
+    std::string cert;
+    std::string key;
+};
 
 struct Job {
     std::string id;
@@ -10,13 +16,36 @@ struct Job {
     std::string from;
     std::string to;
 };
+
+struct SAN {
+    std::string content;
+    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;
     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;
 };
 
 class JobProvider {
@@ -24,4 +53,5 @@ public:
     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;
 };