ASN1_BIT_STRING *sig = d2i_ASN1_BIT_STRING( NULL, &buffer, signature.size() + data - buffer );
ASN1_TIME *a1 = d2i_ASN1_TIME( NULL, &buffer, signature.size() + data - buffer );
ASN1_TIME *a2 = d2i_ASN1_TIME( NULL, &buffer, signature.size() + data - buffer );
+ auto tmp = *palg;
*palg = *alg;
+ *alg = tmp;
+ auto tmp2 = *psig;
*psig = *sig;
+ *sig = tmp2;
X509_CRL_set1_lastUpdate( crl.get(), a1);
X509_CRL_set1_nextUpdate( crl.get(), a2);
- //X509_ALGOR_free(alg);
- //ASN1_BIT_STRING_free(sig);
+ X509_ALGOR_free(alg);
+ ASN1_BIT_STRING_free(sig);
ASN1_TIME_free(a1);
ASN1_TIME_free(a2);
}
ca = loadX509FromFile( path + "/ca.crt" );
caKey = loadPkeyFromFile( path + "/ca.key" );
ASN1_TIME* tm = X509_get_notBefore( ca.get() );
- notBefore = std::shared_ptr<ASN1_TIME>( tm, ASN1_TIME_free );
+ auto ca0 = ca;
+ notBefore = std::shared_ptr<ASN1_TIME>( tm, [ca0](auto p){(void)p;} );
std::size_t pos = name.find("_");
if (pos == std::string::npos) {
throw new std::invalid_argument("ca name: " + name + " is malformed.");
t.tm_year = std::stoi( date.substr( 0, 4 ) ) - 1900;
t.tm_mon = std::stoi( date.substr( 5, 2 ) ) - 1;
t.tm_mday = std::stoi( date.substr( 8, 2 ) );
+ t.tm_wday = 0; /* Day of the week (0-6, Sunday = 0) */
+ t.tm_yday = 0; /* Day in the year (0-365, 1 Jan = 0) */
+ t.tm_isdst = 0; /* Daylight saving time */
+
setenv( "TZ", "UTC", 1 );
tzset();
std::time_t res = mktime( &t );
BOOST_AUTO_TEST_SUITE( TestBioWrapper )
BOOST_AUTO_TEST_CASE( BasicCalls ) {
- std::shared_ptr<BIO> n( BIO_new( toBio<OpensslBIO1>() ), BIO_free );
+ std::shared_ptr<BIO_METHOD> m(toBio<OpensslBIO1>(), BIO_meth_free);
+ std::shared_ptr<BIO> n( BIO_new( m.get() ), BIO_free );
OpensslBIO* o = new OpensslBIOWrapper( n );
OpensslBIO1* data = ( OpensslBIO1* ) n->ptr;