3 #include <openssl/ssl.h>
5 #include "db/database.h"
6 #include "crypto/signer.h"
8 #include "io/opensslBIO.h"
12 class RemoteSigner : public Signer {
14 std::shared_ptr<BIO> target;
15 std::shared_ptr<SSL_CTX> ctx;
16 std::shared_ptr<std::ostream> log;
18 void send( std::shared_ptr<OpensslBIOWrapper> bio, RecordHeader& head, RecordHeader::SignerCommand cmd, std::string data );
20 RemoteSigner( std::shared_ptr<BIO> target, std::shared_ptr<SSL_CTX> ctx );
22 std::shared_ptr<SignedCertificate> sign( std::shared_ptr<TBSCertificate> cert );
23 std::pair<std::shared_ptr<CRL>, std::string> revoke( std::shared_ptr<CAConfig> ca, std::vector<std::string> serial );
25 void setLog( std::shared_ptr<std::ostream> target );