currentSession->work();
}
-
-int handlermain( int argc, const char* argv[] ) {
- ( void ) argc;
- ( void ) argv;
-
- std::shared_ptr<OpensslBIOWrapper> bio( new OpensslBIOWrapper( std::shared_ptr<BIO>( BIO_new_fd( 0, 0 ), BIO_free ) ) );
- std::string data =
- "-----BEGIN CERTIFICATE REQUEST-----\n"
- "MIIBSzCBtQIBADAMMQowCAYDVQQDDAFhMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCB\n"
- "iQKBgQDerBEpIShJlx3zzl4AOS1NcwEg4iAWknQeTtI8B5dnk+l5HkOdTxqeehZn\n"
- "iZnuIuYXA+JWmoECg/w69+N5zw2BabelgK3cSvRqycwPEU/gceGJZTaBfkkN0hBk\n"
- "rpXDiLSlox5oeR150MrsHvVc+W2e+0jW1tuhz4QLzn8/uI/toQIDAQABoAAwDQYJ\n"
- "KoZIhvcNAQELBQADgYEATQU5VrgQAkvpCvIwRUyjj9YAa9E014tNY0jMcBdv95fy\n"
- "/f49zIcVtUJuZuEwY6uDZQqfAm+8CLNpOCICH/Qw7YOe+s/Yw7a8rk5VqLtgxR4M\n"
- "z6DUeVL0zYFoLUxIje9yDU3pWmPvyVaBPdo0DguZwFMfiWwzhkUDeQgyeaiMvQA=\n"
- "-----END CERTIFICATE REQUEST-----";
-
- RecordHeader head;
- head.flags = 0;
- head.sessid = 13;
-
- //---
-
- std::shared_ptr<int> ssl_lib = ssl_lib_ref;
-
- if( argc >= 2 ) {
- std::shared_ptr<BIO> b = openSerial( "/dev/ttyUSB0" );
- std::shared_ptr<BIO> slip1( BIO_new( toBio<SlipBIO>() ), BIO_free );
- ( ( SlipBIO* )slip1->ptr )->setTarget( std::shared_ptr<OpensslBIO>( new OpensslBIOWrapper( b ) ) );
- 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;
- return 0;
- }
-
- std::shared_ptr<BIO> conn = openSerial( "/dev/ttyS0" );
- std::shared_ptr<BIO> slip1( BIO_new( toBio<SlipBIO>() ), BIO_free );
-
- ( ( SlipBIO* )slip1->ptr )->setTarget( std::shared_ptr<OpensslBIO>( new OpensslBIOWrapper( conn ) ) );
-
- try {
- DefaultRecordHandler* dh = new DefaultRecordHandler( std::shared_ptr<Signer>( new SimpleOpensslSigner( profiles[0] ) ), slip1 );
-
- while( true ) {
- dh->handle();
- }
- } catch( char const* ch ) {
- std::cout << "Exception: " << ch << std::endl;
- }
-
- return 0;
-}