X-Git-Url: https://code.wpia.club/?a=blobdiff_plain;ds=sidebyside;f=src%2FX509.h;h=dbc6d0a0df470a76a4dceea1691ddce034f85d1f;hb=fca2260d735fe65cf5376449ba93b6a9148a97b9;hp=a9d60e67abd0850f81e7f62d64b97fe6c7aa901c;hpb=cdd9db03550f3aa151f44a2cf2a31db9388df9dd;p=cassiopeia.git diff --git a/src/X509.h b/src/X509.h index a9d60e6..dbc6d0a 100644 --- a/src/X509.h +++ b/src/X509.h @@ -1,14 +1,22 @@ #pragma once + #include +#include + #include +#include "database.h" + class X509Req { private: std::shared_ptr pk; std::shared_ptr req; + std::shared_ptr spki; X509Req( X509_REQ* csr ); + X509Req( std::string spkac ); public: - static std::shared_ptr parse( std::string filename ); + static std::shared_ptr parse( std::string content ); + static std::shared_ptr parseSPKAC( std::string content ); int verify(); std::shared_ptr getPkey(); }; @@ -16,13 +24,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 ); - void setTimes( long before, long after ); - std::string sign( std::shared_ptr caKey ); + void setSerialNumber( BIGNUM* num ); + void setExtensions( std::shared_ptr caCert, std::vector>& sans ); + void setTimes( uint32_t before, uint32_t after ); + std::shared_ptr sign( std::shared_ptr caKey, std::string signAlg ); }; -