X-Git-Url: https://code.wpia.club/?a=blobdiff_plain;f=src%2FX509.h;h=79aabc1f2333516937f89c786527a79a335bc654;hb=890efd9eb1d32033fe3afd088838bde707f3a2bb;hp=994c9d60cb73a7f7e75150ef1baba7312d5b3c21;hpb=b51ce6dd5f8941c0f5d5670ac7ee2fed94eeb601;p=cassiopeia.git diff --git a/src/X509.h b/src/X509.h index 994c9d6..79aabc1 100644 --- a/src/X509.h +++ b/src/X509.h @@ -6,6 +6,7 @@ #include #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 parse( std::string filename ); - static std::shared_ptr parseSPKAC( std::string filename ); + static std::shared_ptr parseCSR( std::string content ); + static std::shared_ptr parseSPKAC( std::string content ); int verify(); std::shared_ptr getPkey(); }; @@ -24,12 +25,14 @@ public: class X509Cert { private: std::shared_ptr target; + std::shared_ptr subject; public: X509Cert(); + void addRDN( int nid, std::string data ); void setIssuerNameFrom( std::shared_ptr ca ); void setPubkeyFrom( std::shared_ptr r ); - void setSerialNumber( int num ); - void setExtensions( std::shared_ptr caCert, std::vector>& sans ); + void setSerialNumber( BIGNUM* num ); + void setExtensions( std::shared_ptr caCert, std::vector>& sans, Profile& prof ); void setTimes( uint32_t before, uint32_t after ); - std::shared_ptr sign( std::shared_ptr caKey ); + std::shared_ptr sign( std::shared_ptr caKey, std::string signAlg ); };