]> WPIA git - cassiopeia.git/blobdiff - src/X509.h
add: Initial code to implement revocation
[cassiopeia.git] / src / X509.h
index 994c9d60cb73a7f7e75150ef1baba7312d5b3c21..79aabc1f2333516937f89c786527a79a335bc654 100644 (file)
@@ -6,6 +6,7 @@
 #include <openssl/ssl.h>
 
 #include "database.h"
+#include "sslUtil.h"
 
 class X509Req {
 private:
@@ -15,8 +16,8 @@ private:
     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 );
+    static std::shared_ptr<X509Req> parseCSR( std::string content );
+    static std::shared_ptr<X509Req> parseSPKAC( std::string content );
     int verify();
     std::shared_ptr<EVP_PKEY> getPkey();
 };
@@ -24,12 +25,14 @@ public:
 class X509Cert {
 private:
     std::shared_ptr<X509> target;
+    std::shared_ptr<X509_NAME> subject;
 public:
     X509Cert();
+    void addRDN( int nid, std::string data );
     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, std::vector<std::shared_ptr<SAN>>& sans );
+    void setSerialNumber( BIGNUM* num );
+    void setExtensions( std::shared_ptr<X509> caCert, std::vector<std::shared_ptr<SAN>>& sans, Profile& prof );
     void setTimes( uint32_t before, uint32_t after );
-    std::shared_ptr<SignedCertificate> sign( std::shared_ptr<EVP_PKEY> caKey );
+    std::shared_ptr<SignedCertificate> sign( std::shared_ptr<EVP_PKEY> caKey, std::string signAlg );
 };