4 #include <openssl/ssl.h>
6 #include "db/database.h"
7 #include "crypto/signer.h"
9 #include "io/opensslBIO.h"
10 #include "io/record.h"
13 class RemoteSigner : public Signer {
15 std::shared_ptr<BIO> target;
16 std::shared_ptr<SSL_CTX> ctx;
17 std::shared_ptr<std::ostream> log;
19 void send( std::shared_ptr<OpensslBIOWrapper> bio, RecordHeader& head, RecordHeader::SignerCommand cmd, std::string data );
21 RemoteSigner( std::shared_ptr<BIO> target, std::shared_ptr<SSL_CTX> ctx );
23 std::shared_ptr<SignedCertificate> sign( std::shared_ptr<TBSCertificate> cert );
24 std::pair<std::shared_ptr<CRL>, std::string> revoke( std::shared_ptr<CAConfig> ca, std::vector<std::string> serial );
26 void setLog( std::shared_ptr<std::ostream> target );