if( res == "" ) {
bn = BN_new();
- if( !bn ) {
+ if( !bn || !BN_hex2bn( &bn, "1" )) {
throw "Initing serial failed";
}
} else {
std::shared_ptr<SignedCertificate> SimpleOpensslSigner::sign( std::shared_ptr<TBSCertificate> cert ) {
std::stringstream signlog;
+ logger::logger_set log_set_sign({logger::log_target(signlog, logger::level::debug)}, logger::auto_register::on);
logger::note( "FINE: Profile name is: ", cert->profile );
for( std::shared_ptr<AVA> a : cert->AVAs ) {
logger::notef( "INFO: Trying to add RDN: %s: %s", a->name, a->value );
-
+ if( a-> value == "") {
+ logger::notef( "INFO: Removing empty RDN: %s", a->name);
+ continue;
+ }
if( a->name == "CN" ) {
c.addRDN( NID_commonName, a->value );
} else if( a->name == "EMAIL" ) {
}
logger::note( "INFO: Setting extensions:" );
- c.setExtensions( ca->ca, cert->SANs, prof );
+ c.setExtensions( ca->ca, cert->SANs, prof, ca->crlURL, ca->crtURL );
logger::note( "FINE: Setting extensions successful." );
logger::note( "INFO: Generating next Serial Number ..." );
}
std::pair<std::shared_ptr<CRL>, std::string> SimpleOpensslSigner::revoke( std::shared_ptr<CAConfig> ca, std::vector<std::string> serials ) {
+ logger::note( "revoking" );
std::string crlpath = ca->path + "/ca.crl";
- std::shared_ptr<CRL> crl( new CRL( crlpath ) );
+ auto crl = std::make_shared<CRL>( crlpath );
std::string date = "";
+ logger::note( "adding serials" );
for( std::string serial : serials ) {
date = crl->revoke( serial, "" );
}
+ logger::note( "signing CRL" );
crl->sign( ca );
writeFile( crlpath, crl->toString() );
+ logger::note( "wrote CRL" );
return std::pair<std::shared_ptr<CRL>, std::string>( crl, date );
}