X-Git-Url: https://code.wpia.club/?a=blobdiff_plain;f=src%2FX509.h;h=dbc6d0a0df470a76a4dceea1691ddce034f85d1f;hb=fca2260d735fe65cf5376449ba93b6a9148a97b9;hp=db82dafd93d610135e16494bf78970f5b2622f22;hpb=aef2ba57f652658f3bebfa24e706c0083a56e6bf;p=cassiopeia.git diff --git a/src/X509.h b/src/X509.h index db82daf..dbc6d0a 100644 --- a/src/X509.h +++ b/src/X509.h @@ -11,9 +11,12 @@ 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(); }; @@ -21,12 +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 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::shared_ptr sign( std::shared_ptr caKey, std::string signAlg ); };