6 #include <openssl/ssl.h>
12 std::shared_ptr<EVP_PKEY> pk;
13 std::shared_ptr<X509_REQ> req;
14 std::shared_ptr<NETSCAPE_SPKI> spki;
15 X509Req( X509_REQ* csr );
16 X509Req( std::string spkac );
18 static std::shared_ptr<X509Req> parse( std::string filename );
19 static std::shared_ptr<X509Req> parseSPKAC( std::string filename );
21 std::shared_ptr<EVP_PKEY> getPkey();
26 std::shared_ptr<X509> target;
27 std::shared_ptr<X509_NAME> subject;
30 void addRDN( int nid, std::string data );
31 void setIssuerNameFrom( std::shared_ptr<X509> ca );
32 void setPubkeyFrom( std::shared_ptr<X509Req> r );
33 void setSerialNumber( BIGNUM* num );
34 void setExtensions( std::shared_ptr<X509> caCert, std::vector<std::shared_ptr<SAN>>& sans );
35 void setTimes( uint32_t before, uint32_t after );
36 std::shared_ptr<SignedCertificate> sign( std::shared_ptr<EVP_PKEY> caKey );