- std::cout << "Initing tlsv1_2" << std::endl;
- std::shared_ptr<SSL_CTX> ctx = generateSSLContext( false );
- SSL* ssl = SSL_new( ctx.get() );
- BIO* bio = BIO_new( BIO_f_ssl() );
- SSL_set_connect_state( ssl );
- SSL_set_bio( ssl, slip1, slip1 );
- BIO_set_ssl( bio, ssl, BIO_NOCLOSE );
- std::shared_ptr<OpensslBIOWrapper> conn( new OpensslBIOWrapper( bio ) );
- send( conn, head, RecordHeader::SignerCommand::SET_CSR, data );
- send( conn, head, RecordHeader::SignerCommand::SET_SIGNATURE_TYPE, "sha256" );
- send( conn, head, RecordHeader::SignerCommand::SET_PROFILE, "1" );
- send( conn, head, RecordHeader::SignerCommand::ADD_AVA, "CN,commonName" );
- send( conn, head, RecordHeader::SignerCommand::ADD_SAN, "DNS,*.example.com" );
- send( conn, head, RecordHeader::SignerCommand::SIGN, "" );
- send( conn, head, RecordHeader::SignerCommand::LOG_SAVED, "" );
- std::vector<char> buffer( 2048 * 4 );
-
- for( int i = 0; i < 2; i++ ) {
- try {
- int length = conn->read( buffer.data(), buffer.size() );
- RecordHeader head;
- std::string payload = parseCommand( head, std::string( buffer.data(), length ) );
- std::cout << "Data: " << std::endl << payload << std::endl;
- } catch( const char* msg ) {
- std::cout << msg << std::endl;
- return -1;
- }
- }
-
- std::cout << "sent things" << std::endl;
-
+ std::shared_ptr<RemoteSigner> sign( new RemoteSigner( slip1, generateSSLContext( false ) ) );
+
+ std::shared_ptr<TBSCertificate> cert( new TBSCertificate() );
+ cert->csr_type = "csr";
+ cert->csr_content = data;
+ cert->md = "sha256";
+ cert->profile = "1";
+ std::shared_ptr<AVA> ava( new AVA() );
+ ava->name = "CN";
+ ava->value = "Dummy user certificates";
+ cert->AVAs.push_back( ava );
+ std::shared_ptr<SAN> san( new SAN() );
+ san->type = "DNS";
+ san->content = "n42.example.com";
+ cert->SANs.push_back( san );
+
+ auto res = sign->sign( cert );
+ std::cout << "log: " << res->log << std::endl;
+ std::cout << "cert things: " << res->certificate << std::endl;