if( lastCRLCheck + 30 * 60 < current ) {
// todo set good log TODO FIXME
- sign->setLog( std::shared_ptr<std::ostream>(
- &std::cout,
- []( std::ostream* o ) {
- ( void ) o;
- } ) );
+ auto ostreamFree = []( std::ostream * o ) {
+ ( void ) o;
+ };
+ sign->setLog( std::shared_ptr<std::ostream>( &std::cout, ostreamFree ) );
checkCRLs( sign );
lastCRLCheck = current;
}
return;
}
- std::shared_ptr<GENERAL_NAMES> gens = std::shared_ptr<GENERAL_NAMES>(
- sk_GENERAL_NAME_new_null(),
- []( GENERAL_NAMES * ref ) {
- if( ref ) {
- sk_GENERAL_NAME_pop_free( ref, GENERAL_NAME_free );
- }
- } );
+ auto freeGeneralNames = []( GENERAL_NAMES * ref ) {
+ if( ref ) {
+ sk_GENERAL_NAME_pop_free( ref, GENERAL_NAME_free );
+ }
+ };
+ std::shared_ptr<GENERAL_NAMES> gens = std::shared_ptr<GENERAL_NAMES>( sk_GENERAL_NAME_new_null(), freeGeneralNames );
for( auto& name : sans ) {
GENERAL_NAME *gen = GENERAL_NAME_new();
throw std::runtime_error( "Failed to retrieve certificate serial of signed certificate." );
}
- std::shared_ptr<char> serStr(
- BN_bn2hex( ser.get() ),
- []( char* p ) {
- OPENSSL_free( p );
- } ); // OPENSSL_free is a macro...
+ auto freeMem = []( char *p ) {
+ OPENSSL_free( p );
+ };// OPENSSL_free is a macro...
+ std::shared_ptr<char> serStr( BN_bn2hex( ser.get() ), freeMem );
res->serial = serStr ? std::string( serStr.get() ) : "";
return res;
}
std::shared_ptr<BIGNUM> ser( ASN1_INTEGER_to_BN( X509_get_serialNumber( pem.get() ), NULL ), BN_free );
- std::shared_ptr<char> serStr(
- BN_bn2hex( ser.get() ),
- []( char* p ) {
- OPENSSL_free( p );
- } ); // OPENSSL_free is a macro...
+ auto freeMem = []( char *p ) {
+ OPENSSL_free( p );
+ }; // OPENSSL_free is a macro...
+ std::shared_ptr<char> serStr( BN_bn2hex( ser.get() ), freeMem );
extractTimes( pem, result );
throw std::runtime_error( "Big number math failed while fetching random data for serial number." );
}
- std::shared_ptr<char> serStr = std::shared_ptr<char>(
- BN_bn2hex( serial.get() ),
- []( char* ref ) {
- OPENSSL_free( ref );
- } );
+ auto freeMem = []( char *ref ) {
+ OPENSSL_free( ref );
+ };
+ std::shared_ptr<char> serStr = std::shared_ptr<char>( BN_bn2hex( serial.get() ), freeMem );
writeFile( ca->path + "/serial", serStr.get() );
#include "crypto/CRL.h"
#include "log/logger.hpp"
+// *INDENT-OFF*
std::shared_ptr<int> ssl_lib_ref(
new int( SSL_library_init() ),
[]( int* ref ) {
EVP_cleanup();
CRYPTO_cleanup_all_ex_data();
} );
+// *INDENT-ON*
std::shared_ptr<X509> loadX509FromFile( const std::string& filename ) {
std::shared_ptr<FILE> f( fopen( filename.c_str(), "r" ), fclose );
return std::shared_ptr<X509>();
}
- return std::shared_ptr<X509>(
- key,
- []( X509* ref ) {
- X509_free( ref );
- } );
+ auto freeX509 = []( X509 * ref ) {
+ X509_free( ref );
+ };
+ return std::shared_ptr<X509>( key, freeX509 );
}
std::shared_ptr<EVP_PKEY> loadPkeyFromFile( const std::string& filename ) {
- std::shared_ptr<FILE> f(
- fopen( filename.c_str(), "r" ),
- []( FILE* ptr ) {
- if( ptr ) {
- fclose( ptr );
- }
- } );
+ auto freeFile = []( FILE * ptr ) {
+ if( ptr ) {
+ fclose( ptr );
+ }
+ };
+ std::shared_ptr<FILE> f( fopen( filename.c_str(), "r" ), freeFile );
if( !f ) {
return std::shared_ptr<EVP_PKEY>();
return std::shared_ptr<EVP_PKEY>();
}
- return std::shared_ptr<EVP_PKEY>(
- key,
- []( EVP_PKEY* ref ) {
- EVP_PKEY_free( ref );
- } );
+ auto freeKey = []( EVP_PKEY * ref ) {
+ EVP_PKEY_free( ref );
+ };
+ return std::shared_ptr<EVP_PKEY>( key, freeKey );
}
int gencb( int a, int b, BN_GENCB *g ) {
static std::shared_ptr<DH> dh_param;
std::shared_ptr<SSL_CTX> generateSSLContext( bool server ) {
- std::shared_ptr<SSL_CTX> ctx = std::shared_ptr<SSL_CTX>(
- SSL_CTX_new( TLS_method() ),
- []( SSL_CTX* p ) {
- SSL_CTX_free( p );
- } );
+ auto freeSSL = []( SSL_CTX * p ) {
+ SSL_CTX_free( p );
+ };
+ std::shared_ptr<SSL_CTX> ctx = std::shared_ptr<SSL_CTX>( SSL_CTX_new( TLS_method() ), freeSSL );
if( !SSL_CTX_set_cipher_list( ctx.get(), "HIGH:+CAMELLIA256:!eNull:!aNULL:!ADH:!MD5:-RSA+AES+SHA1:!RC4:!DES:!3DES:!SEED:!EXP:!AES128:!CAMELLIA128" ) ) {
throw std::runtime_error( "Cannot set cipher list. Your source is broken." );
}
setupSerial( f );
- return std::shared_ptr<BIO>(
- BIO_new_fd( fileno( f.get() ), 0 ),
- [f]( BIO* b ) {
- BIO_free( b );
- } );
+ auto freeBIO = [f]( BIO * b ) {
+ BIO_free( b );
+ };
+ return std::shared_ptr<BIO>( BIO_new_fd( fileno( f.get() ), 0 ), freeBIO );
}
extern std::string crlPrefix;
this->signer = signer;
ssl = std::shared_ptr<SSL>( SSL_new( ctx.get() ), SSL_free );
- std::shared_ptr<BIO> bio(
- BIO_new( BIO_f_ssl() ),
- [output]( BIO * p ) {
- BIO_free( p );
- } );
+ auto freeBIO = [output]( BIO * p ) {
+ BIO_free( p );
+ };
+ std::shared_ptr<BIO> bio( BIO_new( BIO_f_ssl() ), freeBIO );
SSL_set_accept_state( ssl.get() );
SSL_set_bio( ssl.get(), output.get(), output.get() );
BIO_set_ssl( bio.get(), ssl.get(), BIO_NOCLOSE );
if( std::isdigit( *it ) ) {
const auto w_end = std::find_if_not( it, end,
- []( char c ) {
- return std::isdigit( c );
- } );
+ []( char c ) {
+ return std::isdigit( c );
+ } );
retval.width = std::stoul( std::string{it, w_end} );
it = w_end;
}
m_loggers{lst}, m_min_level{default_level} {
if( lst.size() > 0 ) {
m_min_level = std::min_element( lst.begin(), lst.end(),
- []( const log_target& l, const log_target& r ) {
- return l.min_level < r.min_level;
- } )->min_level;
+ []( const log_target & l, const log_target & r ) {
+ return l.min_level < r.min_level;
+ } )->min_level;
}
if( r == auto_register::on ) {
const auto length = prefix.length();
const auto fmt = replace_newlines( format, length );
std::transform( args.begin(), args.end(), args.begin(),
- [length]( const std::string & str ) {
- return replace_newlines( str, length );
- } );
+ [length]( const std::string & str ) {
+ return replace_newlines( str, length );
+ } );
auto msg = prefix;
auto arg_index = std::size_t {0};