6 #include <openssl/ssl.h>
8 #include "db/database.h"
9 #include "crypto/sslUtil.h"
13 std::shared_ptr<EVP_PKEY> pk;
14 std::shared_ptr<X509_REQ> req;
15 std::shared_ptr<NETSCAPE_SPKI> spki;
16 X509Req( X509_REQ* csr );
17 X509Req( std::string spkac );
19 static std::shared_ptr<X509Req> parseCSR( std::string content );
20 static std::shared_ptr<X509Req> parseSPKAC( std::string content );
22 std::shared_ptr<EVP_PKEY> getPkey() const;
27 std::shared_ptr<X509> target;
28 std::shared_ptr<X509_NAME> subject;
31 void addRDN( int nid, std::string data );
32 void setIssuerNameFrom( std::shared_ptr<X509> ca );
33 void setPubkeyFrom( std::shared_ptr<X509Req> r );
34 void setSerialNumber( BIGNUM* num );
35 void setExtensions( std::shared_ptr<X509> caCert, std::vector<std::shared_ptr<SAN>>& sans, Profile& prof, std::string crlURL, std::string crtURL );
36 void setTimes( uint32_t before, uint32_t after );
37 std::shared_ptr<SignedCertificate> sign( std::shared_ptr<EVP_PKEY> caKey, std::string signAlg );