]> WPIA git - cassiopeia.git/blobdiff - src/X509.h
fmt: Reorganizing includes
[cassiopeia.git] / src / X509.h
index a9d60e67abd0850f81e7f62d64b97fe6c7aa901c..994c9d60cb73a7f7e75150ef1baba7312d5b3c21 100644 (file)
@@ -1,14 +1,22 @@
 #pragma once
+
 #include <memory>
+#include <vector>
+
 #include <openssl/ssl.h>
 
+#include "database.h"
+
 class X509Req {
 private:
     std::shared_ptr<EVP_PKEY> pk;
     std::shared_ptr<X509_REQ> req;
+    std::shared_ptr<NETSCAPE_SPKI> spki;
     X509Req( X509_REQ* csr );
+    X509Req( std::string spkac );
 public:
     static std::shared_ptr<X509Req> parse( std::string filename );
+    static std::shared_ptr<X509Req> parseSPKAC( std::string filename );
     int verify();
     std::shared_ptr<EVP_PKEY> getPkey();
 };
@@ -21,8 +29,7 @@ public:
     void setIssuerNameFrom( std::shared_ptr<X509> ca );
     void setPubkeyFrom( std::shared_ptr<X509Req> r );
     void setSerialNumber( int num );
-    void setExtensions( std::shared_ptr<X509> caCert );
-    void setTimes( long before, long after );
-    std::string sign( std::shared_ptr<EVP_PKEY> caKey );
+    void setExtensions( std::shared_ptr<X509> caCert, std::vector<std::shared_ptr<SAN>>& sans );
+    void setTimes( uint32_t before, uint32_t after );
+    std::shared_ptr<SignedCertificate> sign( std::shared_ptr<EVP_PKEY> caKey );
 };
-